Magento 2: order not exported due to product not available
About this article
This article explains why orders on Magento 2 are not exported due to the product not being available.
Table of contents
When forwarding orders to Magento 2 via their internal API, orders follow the same logic as if it was an order directly placed on your Magento 2 store. Therefore, if for whatever reason a product is not available, submitting an order for that product results in an error – and Magento rejects the order. This in turn results in the order remaining on New on ChannelEngine until the product is available again.
As with all order exports to Magento 2, when an error occurs a notification is automatically logged on ChannelEngine, stating what the cause of the error was. Unfortunately, many Magento error messages may be unclear at first.
If you get an error concerning products not being available or known, chances are it is due to its stock, stock status, or enabled state. Click View order to open the order and take note of its SKU/Merchant product number.
The product has no stock
One of the most common reasons is that there is no remaining stock left. This usually happens if you sell low-stock items (i.e.: stock of one or two units) on multiple marketplaces and your own webshop. In that case, due to the latency that order and stock updates have, a product can be ordered more times than it is available.
As soon as a product has stock again on Magento, the order should be accepted and processed. However, depending on the time it takes to resupply stock, you may want to consider canceling the order to prevent bad metrics or auto-cancelations (in case of bol.com).
Are backorders allowed?
The above situation only applies if backorders are disabled, which is the case by default. You can enable or disable backorders globally by performing the following steps:
- On the Admin sidebar, go to Stores, Settings, Configuration.
- Set Store View to Default config.
- In the left panel, expand Catalog and click Inventory.
- Expand the Product stock options.
- For Backorders, deselect the Use system value checkbox and select one of the options below:
Option Description No backorders Accept backorders when the product is out of stock. Allow qty below 0 Accept backorders when the quantity falls below zero. Allow qty below 0 and notify customer Accept backorders when the quantity falls below zero, and notify the customer that the order can still be placed.
- For Out-of-stock threshold, deselect the Use system value checkbox and enter a different amount.
Option Description Positive amount With backorders disabled, enter a positive amount. Zero With backorders enabled, entering 0 allows for infinite backorders. Negative amount With backorders enabled, it is recommended to enter a negative amount. The amount is added to the sellable quantity. E.g.: enter -50 to allow orders up to this amount.
- Click Save Config.
You can also set allowing backorders for individual products by looking up the product, selecting the Advanced inventory setting. You need to disable Use config settings to apply an individual override.
For more information on backorder configuration, check out the Configure backorders article on Magento's website.
Next to the actual stock number, Magento also has a stock status. Normally a stock equal to zero also results in the stock status being Out of stock, and a positive stock results in a stock status of In stock. However, sometimes the stock status may differ – resulting in orders with a positive stock still being rejected due to this status. If you see this error in a notification, make sure to check the stock status for that product.
When importing products from Magento 2, ChannelEngine only fetches products that have an enabled status. This means that products that are disabled in Magento are deactivated on ChannelEngine and removed from marketplaces. Orders for 'deactivated' products are not common, though. As with low-stock numbers, there is a latency that needs to be taken into account. During the 'import product data' --> 'remove products from marketplace' period, an order might be placed for this inactive product.
Check the Enable product status if an order for a product is not accepted, as it could be deactivated when it should not.
Although it is not a very common situation, sometimes products with 'old' SKUs are left online on marketplaces. When switching to new SKUs or a new Magento 2 system, that may result in orders for products that are unknown to Magento with the SKU as supplied on the order.
In that case, it is recommended to clear your marketplace account and/or contact ChannelEngine Support as this means there are 'ghost products' (i.e.: products ChannelEngine does not know and manage) online. Ghost products always lead to issues, mainly because their stock is never updated.