Understanding Order Routing
Let’s first take a look at what we call things since we will be using this terminology throughout this article. Our support team may also use this terminology when speaking with you.
The ShipWorks Hub – This is what we call the web component of ShipWorks for Warehouse. You access it at hub.shipworks.com and is where you will manage all of your warehouses and order routing.
ShipWorks - The ShipWorks software. This is the software installed at each warehouse location.
Default warehouse – If no routing rules apply to an order, or if there is more than one order to which the order can be routed, the order is routed to the default warehouse.
ShipWorks intelligently routes orders using a combination of:
Let’s take a close look at each. It is important to understand that the above types of routing are not exclusive, but rather, they work together to make sure that orders are routed correctly. For example:
Did ChannelAdvisor tell ShipWorks to what warehouse to route the order? No? ….
OK, do any warehouses have all of the items on the order in stock? No? ...
Well, then let’s figure out if the order can be split and shipped from multiple warehouses.
By adding warehouses in the ShipWorks Hub and linking warehouses in the ShipWorks software at each warehouse location, ShipWorks will automatically route the orders to the warehouse that is closest, geographically, to the shipping address of the order.
ShipWorks does this by calculating the USPS Shipping Zone for the order based upon each warehouse’s address when compared with the order’s shipping address. The closest warehouse is assigned the order.
But what happens if two warehouses are in the same USPS Shipping Zone?
Take a look at the following flow-cart:
By importing a list of products into ShipWorks and associating the products to a warehouse, ShipWorks can intelligently route the orders to the correct warehouse by the product SKUs contained on the order.
But what if the product(s) on the order are in more than one warehouse? This is where things can get a little complicated. The below flow-chart outlines the logic ShipWorks will use to route the order.
click image to view fullsize
Can ShipWorks route orders to the correct warehouse based on current inventory levels?
Yes. By enabling the Use inventory when routing orders option in The ShipWorks Hub, ShipWorks can take into account which warehouse can fulfill an order based upon current, available inventory levels.
The Use inventory when routing orders option looks for warehouses that can fulfill the entire order based upon currently available inventory levels and will not split orders across multiple warehouses.
For example, if an orders is placed for:
1 of SKU 123
3 of SKU 456
Only warehouses that can fulfill all 4 items will be considered for routing. Click here to learn how orders can be split so that a single SKU can be fulfilled across multiple warehouse locations.
What if there is more than one warehouse that has the inventory to fulfill the order?
In the event that more than one warehouse has the available inventory to fulfill the order, the order routing logic outlined in the Product Level Routing section previously in this article will take affect.
What if no warehouse has the current inventory to fulfill the order?
In the event that no warehouse has the available inventory to fulfill the order, one of two things will happen:
If the Automatically split orders across multiple warehouses based on SKUs option is enabled and the order contains more than one SKU, the logic describe below in the Automatically Split Orders Across Multiple Warehouses section will be applied.
Otherwise, the order routing logic outlined in the Product Level Routing section previously in this article will take affect.
Can I have ShipWorks automatically split orders based upon what SKUs are located at which warehouse?
Yes. By configuring The Hub to attempt to automatically split orders across warehouses based upon SKUs, orders can be intelligently split and routed to the appropriate warehouse(s) automatically so that you do not have to manually split orders in the ShipWorks software.
Orders will be split across warehouses when:
Automatic splitting of orders has been enabled in The ShipWorks Hub.
The order contains more than one SKU.
Products have been assigned and enabled in more than one warehouse.
More than one SKU on the order matches products at more than one warehouse.
Can you give me an example of how an order might be split across warehouses?
ShipWorks will attempt to split orders so that any given, single SKU will be shipped from a single warehouse even if the SKU is on multiple lines of the order. For example:
Order number 6002 contains three line items:
Line item 1: SKU A, quantity 3
Line item 2: SKU A, quantity 2
Line item 3: SKU B, quantity 1
The resulting split could be:
Warehouse A: SKU A, quantity 5
Warehouse B: SKU B, quantity 1
What if a single SKU on an order is stocked at more than one warehouse?
In this case, ShipWorks will fall back on the routing rules we have looked at previously in this article. For example:
Can only one warehouse ship the entire quantity for that SKU?
Is one of the warehouses set as the default warehouse?
Which of the warehouses is closest to the ship to address by zone?
Review the flow chart for Product Level Order Routing above for full details.
Yes. If you would like for ShipWorks to intelligently split and route orders based upon available inventory, including splitting single SKUs across multiple warehouses, enable both the Use inventory when routing orders and the Automatically split orders across multiple warehouses based on SKUs settings.
With both options selected, ShipWorks will : (Note that ShipWorks will always attempt to split and route orders so that the minimum number of warehouses are used to fulfill the order.)
Look to see if all SKUs can be filled from a single warehouse location. If not...
Then, ShipWorks will look to see if the order can be split across warehouse locations based on the SKUs on the order:
Can the quantity for any single SKU(s) on the order be filled from a single warehouse? Yes? Split the order and route the SKU(s) to the warehouse that can fulfill the SKU in its entirety.
If a single SKU cannot be filled from a single warehouse, ShipWorks will determine which warehouses, combined, have enough inventory to fulfill the order. ShipWorks will split the order based on inventory levels so that the SKU can be fulfilled from multiple warehouses.
Can you give me an example of how an order might be routed?
Let's assume that no single warehouse has enough inventory to fill SKU A or SKU B. However, the St. Louis and New York warehouses, combined, have enough inventory to fill the order.
Order 6002 contains three line items:
Line item 1: SKU A, quantity 4
Line item 2: SKU B, quantity 6
Line item 3: SKU C, quantity 1
The resulting split may look like:
St. Louis Warehouse: Order 6002
Line item 1: SKU A , quantity 2
Line item 2: SKU B, quantity 4
Line item 3: SKU C, quantity 1
New York Warehouse: Order 6002
Line item 1: SKU A, quantity 2
Line item 2: SKU B, quantity 2
What if there is not enough inventory across all warehouse locations to fulfill the order?
In the event that there is not enough inventory across all warehouse locations to fill the order, ShipWorks will route the order to the most logical warehouse location based upon the product level routing explained earlier in this article.
While the majority of platforms and sales channels will have orders routed by one of the previous two methods (Automatic Intelligent Routing or Product Level Routing), some platforms offer more functionality that can be utilized when routing orders to the correct warehouse.
ChannelAdvisor offers two additional options for order routing:
Orders can be routed in ChannelAdvisor using routing rules. When orders are routed to a specific distribution center in ChannelAdvisor, ShipWorks can be configured to honor this order routing.
Orders can be routed by configuring warehouse aliases associated to warehouses in the ShipWorks Hub. Warehouse aliases tie ChannelAdvisor Distribution Center Codes to warehouses in ShipWorks. When configured, the orders are routed to the correct warehouse by the associated warehouse alias.
But what happens when there are multiple ChannelAdvisor Distribution Center Codes assigned to items on an order?
Again, this is where things can get a little complicated. The below flow-chart outlines the logic ShipWorks will use to route the order.
When developing your own integration, it is possible to specify to which warehouse an order should be routed by including the warehouse or warehouse alias in the GetOrders call. When an order is imported into ShipWorks through your custom integration with a warehouse or warehouse alias specified, all default ShipWorks order routing is overwritten and the order is routed to the specified warehouse.
Click here to see out Generic Module Integration Guide - The warehouse is designated in the GetOrders call (page 20 of the guide) using the RequestedWarehouse element. (page 25 of the guide).
If the requested warehouse matches a warehouse or warehouse alias configured in the ShipWorks Hub, ShipWorks will disregard all default routing and route the order to the specified warehouse.
If there is no matching warehouse or warehouse alias configured in the ShipWorks Hub, the default ShipWorks order routing rules will be used.
Still Need Help?
Please feel free to reach out to one of our awesome Technical Support Representatives in St. Louis. We are happy to help.
Have a comment to share about this article? We'd love to hear from you. You must be logged in to your Support Portal account to leave a comment.