 the situation we all currently find ourselves in, eventually we’ll hopefully return to some form of normality. When this time comes, you’ll want to ensure you can pick up where you left off.
Google has released an article that guides how to pause your site with minimal to no impact search rankings, which essentially warns against blocking access some or all of your website. From an e-commerce/Magento point of view, what Google is saying is don’t disable products, categories, or any other landing pages in an attempt to stop customers ordering.
If you did disable them, the search rankings for these pages would be negatively impacted. When regular life/trading resumes and the pages are re-enabled, bare in mind it could take substantial time for that damage to be undone (i.e., for the pages to regain their previous search ranking/visibility). The delay could be a significant hindrance to getting back to previous trading levels and therefore impact your revenue further.
Provide clear global messaging across the site.
Changing product availability, in theory, is a straightforward change to make, in that you have full control of all products stock statuses and quantities from within the Magento admin panel already. There are tools at hand to update these in bulk also, via import or using the mass actions on the product grid to update attributes.
The complexity comes if, like many merchants, you manage stock control via an external system on a frequent schedule. In this scenario, making manual changes to stock within the Magento admin panel will be short-lived, as the external integration will revert them whenever it runs. Unless you can disable this integration running or make changes within the external system, you may need to get creative in Magento.
The best, or cleanest, way to do this would be to install an additional module. Fooman has released an extension that allows you to mark products as essential and then apply a global toggle that overrides any stock statuses, making all nonessential products unavailable.
If you don’t have time for code changes, then the best workaround to consider is to set the “Out-of-Stock Threshold” for products to a value higher than that is currently in stock. This forces Magento to mark the items as out of stock, and it’s unlikely your external inventory system synchronizes this data (so shouldn’t be reverted when stock updates run). This setting can be applied on a per-product basis under the “Advanced Inventory” section (below the “Quantity” field), via mass actions and the import tool, or globally from the “STORES > Configuration” area of the admin panel, under the “CATALOG > Inventory” section.
If you utilize Google Shopping, then ensure your feed (if used) is updated to reflect your new product availability, or if you have it configured, Magento’s built-in structured data (schema) for products should do this job for you.
For more details on the above inventory settings, and others, see Magento’s User Guide.
You’ll only want to undertake this measure if you’re ceasing all trading, whether intermittently or for the foreseeable future.
You may be wondering whether it’s required to implement both this and the stock availability above. If you just want to restrict orders, this step is enough. But as per Google’s advice, updating the availability of your products and keeping them active is recommended.
To disable the checkout, you’ll simply need to turn off either your available shipping methods, payment methods, or both. I’d advise both, just to be safe, unless you have a unique scenario. For example, such as disabling shipping to restrict the purchase of all physical goods and leaving payments active for any virtual/download products you may sell that are unaffected by COVID-19.
If you need to take either of these measures, head over to the “STORES > Configuration” area of the Magento admin panel. Under the “SALES” area, you’ll then need to navigate into the “Shipping Methods” and “Payment Methods” sections and disable the appropriate methods (i.e., those you currently have active).
Both of the above measures will help you effectively stop customers from ordering. Still, without clear messaging, you’re likely to confuse and frustrate customers, especially if the first time they realize you have restrictions in place is after they make it to the checkout following browsing.
Most merchants are updating the homepage CMS controlled areas with a banner explaining their current trading situation. This is good, but not all customers land on the site via the homepage or visit it during their stay. What would be much better is a standout global messaging panel, in the header of the website, that appears on every page, including checkout.
Thankfully, this is again something that can be implemented purely from the Magento admin panel, using a combination of a CMS (Static) Block and a Widget (a tool that allows placement of various content types almost anywhere on-site).
First off, head over to the “CONTENT > Blocks” area of the admin panel, and click on the orange “Add New Block” button in the top right of the page. In this block, add the content you want to display in the header on every page. Magento only comes with a basic WYSIWYG, so if you’d like to add a splash of color like in the example below, you’ll need to add a bit of custom HTML/CSS. If you’re lucky enough to have a content editor like Page Builder or BlueFoot, then you’ll have much more control.
Once you’re done, save the block then navigate to “CONTENT > Widgets” and click on the orange “Add Widget” button in the top right of the page. Select “CMS Static Block” as the “Widget Type” and then select the theme* you want to add the message, too, as well as a title (this is for admin use only) and the storefronts you wish to apply this to.
*If you have more than one theme across storefronts, you’ll need to create multiple widgets: one for each theme.
The key part is setting the “Layout Updates,” which determines the pages and position in which your message will show. To make this sitewide, set “Display On” to “All Pages,” and to make the message appear at the top of the page above all other content, select “Page Top” for the “Container” option.
Lastly, in the left-hand tab section, select “Widget Options,” click “Select Block...” and choose the CMS (Static) Block that was created previously, before saving the widget.
You’ll then need to refresh the invalidated caches under “SYSTEM > Cache Management” to see the changes on the frontend.
If you have further content/updates that you need to provide customers on your current trading status during this time, then create a new “CMS Page” with all the details and link to it from your newly created global messaging panel.
If you’re facing issues with a high demand for certain goods (like supermarkets/grocery stores are having with toilet roll/paper and pasta), then you may feel a moral obligation to limit customers to buy up to a set quantity of a given item only.
Thankfully, Magento’s “Maximum Qty Allowed in Shopping Cart” setting has you covered and is simply a case of setting the maximum value you want to allow customers to purchase. You can set this either globally (to apply to the same maximum amount all products) or per product. Remember, you can utilize mass actions or the data import tool to help implement this in bulk.
The only shortcoming of this method is that there is nothing to stop customers from placing multiple orders to try and obtain more goods. You can decline these orders, but it requires manual intervention, which at scale may not be realistic. Alternatively, you could add a deterrent via shipping costs, so that placing multiple orders is not an attractive/affordable proposition, but consider that you could also be out pricing out those with lesser financial resources.
I won’t cover setting this up in any further detail, as Magento’s documentation provides a useful guide. The only thing to bear in mind is that when no rates are available (i.e., the customer has not met or exceeded a threshold), then the default “Sorry, no quotes are available for this order at this time” message displays in place of shipping rates.
This message isn’t particularly helpful to customers. Without development work/deployment to replace the wording, the simplest and most effective method would again be to ensure you have clear global messaging setup.
If you, like many other Magento merchants, already have a third-party shipping solution, such as ShipperHQ, it’s highly likely it too will be able to manage these scenarios. Speak to the service provider/extension vendor or look through their user guides for more detail.
Setting a minimum order amount may be less a demand issue, it could be more logistical, perhaps to aid helping warehouse workers keep their distance, or to dissuade customers from placing small convenience or gift orders. Regardless, if you need to limit the minimum order amount, default Magento functionality is again available to help out.
Magento’s Minimum Order Amount functionality can be enabled within the “STORES > Configuration” area of the admin panel, under the “SALES > Sales” section. From here, you can enable the feature, set the minimum monetary value to allow customers to checkout, whether tax and discounts are considered in the calculations, as well as a custom message to display on the cart page when the minimum amount is not met.
Once in