Magento 2: order not exported due to product not available
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 / no longer available, submitting an order for that product will result in an error and Magento will reject the order. This in turn results in the order remaining on 'New' in ChannelEngine until the product is available (again).
As with all order exports to Magento 2, in case an error occurs this will automatically log a notification in ChannelEngine stating what the cause of the error was. Unfortunately, a lot of Magento error messages may be a bit cryptic and unclear what they mean right away.
Should you get an error concerning products not being available or known, this will almost certainly be due to the product stock, stock status, or enabled state of a product.
By selection ' View order' the order in question will be opened. Please take note of the SKU / MerchantProductNo on the order.
A common reason an order is rejected by Magento is simply that there is no remaining stock left. This usually happens if you sell low stock items (stock = 1 or 2) on multiple marketplaces and your own webshop. In that case, due to the latency that order and stock updates will always have, a product can be ordered more than is available.
As soon as a product has stock again in Magento, the order should be accepted and processed. However, depending on the time it will take to resupply stock, you may want to consider canceling the order to prevent bad metrics or auto cancellations (in case of bol.com).
Backorders allowed or not
The above situation only applies if backorders are disabled (which by default will be the case). You can enable or disable backorders globally by performing the following steps (for more info on backorder configuration check the Magento help docs):
- On the Admin sidebar, go to Stores > Settings > Configuration.
- Set Store View to
- In the left panel, expand Catalog and choose Inventory.
- Expand the Product Stock Options.
- For Backorders, deselect the Use system value checkbox and select an option:
OPTION DESCRIPTION No Backorders To not accept backorders when the product is out of stock. Allow Qty Below 0 To accept backorders when the quantity falls below zero. Allow Qty Below 0 and Notify Customer To 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
0allows for infinite backorders.
Negative amount With Backorders enabled, we recommend entering a negative amount. The amount is added to the Salable Quantity. For example, enter
-50to 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 will need to disable 'Use Config Settings' to apply an individual override.
Next to the actual stock number, Magento also has a stock status. Normally a stock of 0 will also result in the stock status being 'Out of stock', and a positive stock a stock status of 'In stock'. However, sometimes this stock status may differ resulting in orders with a positive stock still being rejected due to this status. Therefore, 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 always only fetches products that have an enabled status. This means that products that are disabled in Magento, will be deactivated in ChannelEngine and removed from marketplaces. Orders for these 'deactivated' products are not common, however, just as with low stock numbers, there is always a latency that needs to be taken account. During the whole 'import product data' --> 'remove products from marketplace' period, an order might be placed for this inactive product.
Please check the 'Enable Product' status if an order for a product is not accepted, maybe it's deactivated when it shouldn't.
This is not a very common situation, but sometimes 'old' products with old SKU's are left online on marketplaces. When switching to new SKU's or a new (Magento 2) system, this may result in orders for products that are unknown to Magento with the SKU as supplied on the order.
In that case, you are strongly recommended to clear your marketplace account and / or contact ChannelEngine support as this means there are 'ghost products' (products ChannelEngine does not know and manage) online. Ghost products always lead to issues (the primary reason being that its stock will never be updated).