About this article
Table of contents
Stock is the number of available products for sale on marketplaces. It is very important that the stock known to ChannelEngine (i.e.: the stock exported to channels) is correct. Selling products that are no longer in stock results in cancelations, negative ratings, and poor metrics on marketplaces. There are several places on ChannelEngine where you can manage stock-related settings, and they are all mentioned in this document.
Regardless of frequent stock updates and/or disabling stock reservation, it is advised to use a stock filter in your product selections for fast-moving products. There is a good chance of products being oversold because synchronization between all connected systems takes at least 10-15 minutes – especially if you are selling these products across multiple marketplaces and via your own webshop.
Stock can be updated via multiple methods, all of which are explained below. It is also possible to manually manage stock on ChannelEngine, which is covered in the Manual stock management section.
If you use product feeds to update your product data, make sure that at least one feed has the stock mapped. Otherwise all stock is set to zero.
It is possible to provide a specific stock feed to update stock more frequently. By default, feeds are imported hourly. This stock feed can also contain incremental updates (e.g.: containing only the products with a change in stock, checked against the last time the feed was imported). If you do choose to provide a stock feed, make sure that:
- The stock feed is set to type Additional
- The stock feed also has the Merchant product no (SKU) for the product that needs to be updated
- The stock is not mapped in other feeds, or the stock in those feeds is fully up-to-date as well
More information on product feeds and how to set them up can be found on the article ChannelEngine: product feeds.
If you use the ChannelEngine Merchant API to manage your stock, there are two bulk endpoints you can use:
This is the endpoint you used to create products, if you are not using an alternative route. Note that this endpoint is purge-and-replace. That is, if you update products via this endpoint, you need to include all the default product data, such as the stock and price. If you leave the CE:Stock attribute out, the stock is reset to zero. Therefore, it is crucial that the stock submitted via this endpoint is up-to-date and submitted.
This endpoint allows for the frequent update of the stock or price. All you need to provide are:
- the corresponding Merchant product number
- the value of the stock, price, or stock and price you want to update
- the stock location
This endpoint is not purge-and-replace, so values left out are not set to zero. It is still a bulk endpoint, so you are advised to bundle offer updates in batches to limit the number of calls to ChannelEngine's API.
If you use a plugin which does not use a product feed for product information containing the stock value, the stock values are usually fetched by a custom task you have no direct influence over.
There are two specific plugins worth mentioning:
- Magento 2
- Prestashop 1.7
In both cases, the stock is retrieved via the webshop's internal API by various API calls. If you have many products and incremental updates are not possible (e.g.: because product/stock updates are imported via an alternative route), you might want to consider using a separate feed or plugin for stock updates. Because both Magento and Prestashop offer stock data in single calls, many calls are required to fetch the stock for all products – resulting in a a task that may run for a long time.
Stock locations can be found on the Product detail page, when viewing the details of a product on ChannelEngine under the section Stock locations. Other than sending additional stock to the marketplace's warehouse, you do not have any influence in these stock numbers, as they are imported directly from the marketplace. This is done by the task Import fulfillment stock from channel, if you want to check when the last import was done.
Note that to use the Automatic fulfillment option for marketplace offers, it is important that this stock is imported and updated as this function relies on the stock number from the marketplace.
If you do not have a system or feed that has the option to provide automatic stock updates to ChannelEngine, you can manually manage the stock on ChannelEngine.
To do so, go to Settings > Settings > Advanced settings.
Enable the ChannelEngine manages stock setting and save it.
To manually manage your stock, go to the product detail page and select the pencil icon next to the current stock number. It changes to an input field, and you can set the stock to a different value.
Your own stock is represented by your account name and a blue asterisk when checking a product on the product details page. In the product overview, this is the stock that is shown. It is also possible to see the marketplace fulfillment stock, if there is any for that product. Those are represented by the name of the marketplace, followed by the label of this type of fulfillment.
Stock locations can also be imported by ChannelEngine's API via
GET /v2/stocklocations . The known stock can be fetched via
It is not possible to use multiple warehouses on ChannelEngine. While this is an often requested feature, making multiple warehouses possible has an impact on how most parts of ChannelEngine function.
Once ChannelEngine receives an order for a specific product, the stock for that product is reserved. E.g.: if you have a stock of 17 vases and two of these are sold, ChannelEngine exports a stock of 15 to all connected channels. As long as the status is New or In progress, this reservation remains – until the status changes to Shipped or Canceled. At that point, the stock from your product feed or other stock connection becomes leading again.
If you use ChannelEngine for offers but do not handle orders and/or shipments via ChannelEngine, you can use the option to automatically close imported orders.
To do so, go to Settings > Settings > Advanced settings.
Enable the Set orders to closed after import setting and save. All new orders are set to Closed right away, and no stock reservation is applied.
You can check if this feature is enabled by checking orders: the status is Closed, instead of the usual Shipped and there is an order comment stating "This order is auto closed by general settings".
If you are absolutely certain that your stock updates toward ChannelEngine are fast enough and you have stock filters in place, it is possible to disable ChanneEngine's stock reservation. This is not a feature to enable lightly, as there is some extra latency added by exporting the order to your system and receiving a stock update in return. Check out Can this reservation be disabled, my stock is updated very fast? for a projected time sheet between enabling and disabling stock reservation.
To disable stock reservation, go to Settings > Settings > Advanced settings.
Enable the Turn off stock reservation for open orders setting and save. No stock reservation is applied and whatever stock you submit to ChannelEngine is what is exported to marketplaces.
Channel stock is the actual stock exported to a channel, which is also the stock ChannelEngine receives from the channel. This is the stock received from your system minus any stock reservations, if applicable. Some channels also have stock reservation options, which can usually be disabled in their back-ends.
In the example pictured above, the stock known to ChannelEngine is 310. However, there are 61 items in open orders, resulting in the export of a stock number equal to 249.
On ChannelEngine it is also possible to see the stock reported by the channel, although there is a delay in that data – which can be 1-2 hours behind.