ChannelEngine: advanced order management [add-on]
About this article
This article describes ChannelEngine's advanced order management feature.
Table of contents
Acknowledging multi-line orders
Enable the advanced order management feature
- Configure stock locations
- View stock location data
- Update stock locations via the Merchant API
- Delete stock locations
Introduction
If you have stock locations spread across different countries (e.g.: a Dutch warehouse and a Belgium warehouse), in different locations within a single warehouse (e.g.: shelf A and shelf B in the same warehouse), or even different parts of the same country (e.g.: different states in the United States), you can benefit from ChannelEngine's advanced order management feature.
With advanced order management, you can configure stock in multiple locations and allocate your stock accordingly. This feature allows you to set up rules to define the default behavior when stock is depleted in one of your locations, and automatically allocate inventory from a specific location to fulfill your orders.
Limitations
The following setups are currently out of scope:
- Merchant plugins - BigCommerce, Adobe Commerce (née Magento), Shopify, etc. If you want to use advanced order management in combination with a merchant plugin, you need to prevent stock updates from your merchant system. To opt out of stock updates via your merchant plugin, disable the Update stock on product import setting in Setup, Advanced settings in your merchant plugin.
-
Marketplaces with sales channels - unlike country-specific marketplaces, such as Amazon Italy or bol Belgium, marketplaces with support for sales channels are not supported. E.g.: several Mirakl-based marketplaces (e.g.: Alltricks, Decathlon), Zalando, etc.
NB: while it is not possible to use this feature on marketplaces with sales channels to fulfill orders from different stock locations, it is possible to use it to aggregate stock divided across multiple stock locations.
Acknowledging multi-line orders
When you manage fulfillment from multiple stock locations on ChannelEngine, you must ensure that ChannelEngine receives a single acknowledgement on the order level. If multiple parties process order lines in a multi-line order, then there are two ways to handle this:
Method 1 - via a centralized merchant system, the merchant warehouse and third-party warehouse separately acknowledge different order lines within a multi-line order, and the centralized system sends the full acknowledgement to ChannelEngine.
In the scenario below, one order line is fulfilled by the merchant's warehouse, while the other order line is fulfilled by a third-party warehouse. These two systems send their acknowledgements to the centralized system, which in turn sends a single acknowledgement for the whole order to ChannelEngine (after all lines have been acknowledged by the other systems). This is the simplest workflow, as your centralized system (e.g.: ERP or middleware) sends one acknowledgement to ChannelEngine.
Method 2- the merchant warehouse and third-party warehouse separately handle different order lines within a multi-line order, but only one of the warehouses does a full order acknowledgement.
In the scenario below, one order line is fulfilled by the merchant's warehouse, while the other order line is fulfilled by a third-party warehouse. However, there is no intermediary centralized system between those systems and ChannelEngine. ChannelEngine expects an acknowledgement on the whole order level. This means one of the connected systems must be in the lead to provide full acknowledgement for multiline orders. The secondary order systems can still fulfill order lines, but those systems do not acknowledge the full order.
ChannelEngine's order routing features and Merchant API can be leveraged to successfully implement this setup.
For guidance on fulfilling multi-line orders from multiple warehouses that communicate independently with ChannelEngine, check out Merchant API: order line acknowledgement.
Enable the advanced order management feature
Contact your customer success manager or the Support team at ChannelEngine to enable the advanced order management feature on your tenant.
If you would like to enable the advanced order management feature on a tenant that has an active merchant plugin, ChannelEngine checks if the Update stock on product import setting is enabled in that plugin. If so, ChannelEngine disables the setting to avoid stock synchronization issues between the plugin and the advanced order management feature.
Configure stock locations
Once the advanced order management feature is enabled, configure your stock locations:
- Go to Products, Stock locations. If you do not see that option, log out and then log back in to ChannelEngine.
- You are then presented with an overview of your existing stock locations, showing their names, the country where they are based, whether they are the default, or if they fall back to the default.
- You can add, edit, or delete stock locations, as well as view the products related to each stock location.
Add a stock location
To add a stock location:
- Click the Add button at the bottom of the overview.
- In the pop-up that appears, enter a name for the stock location.
- Choose optional settings:
- You can set the stock location as the default by ticking the Default stock location box. The Default stock location always remains on ChannelEngine and cannot be deleted.
- Or you can set the location to fall back to the default location's stock once its stock is depleted by selecting the Fallback to default box.
- Although you do not have to provide the full address of the stock location, you do need to select a country.
- When you are done, click Add to save the stock location.
StockLocationId. You can replace a stock location by deleting it and creating a new one, which results in a new ID.Map a stock location
To map different stock quantities from your product feed to each of your configured stock locations:
- Go to Products, Product feeds.
- Click the pencil icon of a feed to edit the feed's settings.
- In the Product feed details page, click on Mappings, Stock locations.
- Map each of the configured stock locations to a unique stock attribute in your product feed.
- Once you map your stock locations to your stock attributes, the stock quantity per location becomes visible on ChannelEngine.
View stock location data
View stock per product per stock location
To see a breakdown of the stock per product per location:
- From the side menu on ChannelEngine, go to Products, Products. In the product overview, the stock shown per product is the Overall stock (i.e.: aggregated stock) – not the stock at a specific stock location.
- Click on a product to view its stock per stock location.
- On the Product details page, scroll down to the Stock locations section. You are presented with an overview of the stock locations and the corresponding stock.
View all products per stock location
To see a list of all products stored in a specific location:
- From the sidebar menu, go to Products, Stock locations.
- Click the link icon on the line of a given stock location to see an overview of products stored in that location.
- In the pop-up that appears, you can export the list of products in this stock location to a CSV file.
Update stock locations via the Merchant API
To update your stock per stock location via the API:
- Retrieve your StockLocationId via the
GET /v2/stocklocationsendpoint. - Update the stock for each specific location via the
PUT /v2/offer/stockendpoint. E.g.:
[ {
"MerchantProductNo": "ABCDE12345",
"Stock": 15,
"Price": 25,
"StockLocationId": 35
} ] Using the /v2/offers endpoint
It is possible to send a request via the /v2/offers endpoint without the StockLocationId field, but this is not recommended – especially if you also use a product feed to update your stock. If you send a request via /v2/offers, it is recommended that you specify a single location by sending the StockLocationId field in your request.
If no stock location is specified in the API request, ChannelEngine places the update on the default stock location.
Examples: stock updates when no StockLocationId is specified
The examples below cover three possible stock update scenarios, when the StockLocationId field is not specified, with the default stock location indicated by an asterisk (*):
Scenario 1
-
Location 1* - intended stock update sent via
PUT /v2/offerswithout StockLocationId. - Location 2 - stock update sent via a product feed.
- Location 3 - stock update sent via a product feed.
The StockLocationId is not specified in the API request, but ChannelEngine still updates Location 1 because Location 1 is the default stock location. Neither Location 2 nor Location 3 is updated via the API request.
Scenario 2
-
Location 1 - intended stock update sent via
PUT /v2/offerswithout StockLocationId. - Location 2* - stock update sent via a product feed.
- Location 3 - stock update sent via a product feed.
ChannelEngine updates Location 2 with your API request. The stock update that you intended to send via API for Location 1 is applied to Location 2 because Location 2 is the default stock location.
Scenario 3
-
Location 1* - intended stock update sent via
PUT /v2/offerswithout StockLocationId. -
Location 2 - intended stock update sent via
PUT /v2/offerswithout StockLocationId. - Location 3 - stock update sent via a product feed.
ChannelEngine only updates Location 1 with the API request because Location 1 is the default stock location. Location 2 is not updated with your API request.
For details on the Merchant API, check out our Swagger documentation.
Delete stock locations
If a stock location is not used in order routing and is not set as your Default stock location on ChannelEngine, you can delete the stock location via the web interface. The related stock moves to the Default stock location.
It is not possible to delete a stock location via API.
Order routing
When working with different stock locations, you can use predefined business rules that assign incoming orders to specific stock locations. This is the process of order routing, which is managed in Orders, Routing on ChannelEngine.
To set up an order route on ChannelEngine:
- From the side menu, click Orders, Routing. Then, click the Add button.
- In the Add: Order routing pop-up, enter the following fields:
- Name - the order routing’s name.
- Select channels - click the dropdown box to select the channels to which to apply this routing. Note that you can only select channels that are not already active in other order routings. Channels are grouped according to how they handle order lines.
- Select stock locations - the stock locations you want to use. The combined stock of the selected locations, minus the reserved stock, is then exported. If you make use of the Amazon MCF plugin, you can select a stock location with a 'blank box' indication, which ensures that your orders are fulfilled in unbranded packaging.
- Prioritize shipping multiple items from one stock location - enable this setting to try to minimize shipping label costs. After applying your routing rules, ChannelEngine checks if one stock location can fulfill the order.
- Use the default stock location as a fallback - enable this setting to use your tenant's default stock location to fulfill the order if it is not possible to fulfill the order according to your order routing rules. If disabled, then ChannelEngine uses your default order route to fulfill the order.
- Click Next.
-
Set up conditional rules for your routing. These rules are applied when orders are imported into ChannelEngine. When creating your advanced rules, you can filter on fields from the order, e.g.: Shipment region, Delivery country, GTIN, etc., as well as ChannelEngine’s default product data and custom attributes. For guidance on setting up conditional rules, check out the section Order routing rules below.
NB: shipment regions must be abbreviated. E.g.: New Jersey = NJ, Massachusetts = MA. - In the Use field, select to which stock location(s) to route the order if the given condition(s) is met.
- In Default value, select to which stock location to route the order if none of the conditions are met.
-
Click Add to save the order routing. Order routing rules are applied to orders placed after saving your rules.
NB: once established, it is not possible to change the order of your routing rules.
Order routing rules
Configure routing rules when more than one stock location relates to a given item in an order. In order to avoid conflicts, routing rules are applied top-to-bottom, meaning the first rule in the list that correctly applies to the given scenario is used to route the order. You should, therefore, pay particular attention to the order of your routings, particularly because the ordering of the rules cannot be changed after the order routing rules are created.
For example, you have created the following two rules:
- If Customer delivery country is equal to Belgium, use (stock location) Belgium.
- If Brand contains Sony, use (stock location) Germany;
- Else use (default value) Default warehouse.
The logic for this set of rules is as follows:
- If an incoming order has the delivery country Belgium, the stock is routed from the stock location named Belgium.
- If an incoming order has the delivery country Netherlands, but the brand of the item is Sony, the stock is routed from the stock location named Germany.
- If an incoming order has the delivery country Netherlands, but the brand is not Sony, the Default warehouse stock location is used.
For more guidance on setting up order routing rules, check out the general instructions for setting up advanced rules in ChannelEngine: advanced rules for channel mappings.
Channels with no order routing
- Click the pencil icon on an existing order routing item.
- At the bottom of the pop-up, click Set as default.
Comments
0 comments
Article is closed for comments.