Use this article when Shopify assigns orders to a 3rd party fulfillment location instead of a location ShipHero fulfills from. To sync locations and choose which warehouse pushes inventory to each location, see How to Manage Shopify Locations in ShipHero.
Why Shopify Fulfillment Service Rules Affect ShipHero
Shopify introduced a platform change affecting third-party fulfillment apps. Order management apps can no longer create fulfillments for orders assigned to a different app's fulfillment service (Shopify changelog).
In practice, this means a warehouse or fulfillment app may only mark an order as fulfilled if that order (or its fulfillment order) is assigned to the location or fulfillment service associated with that app.
Apps can still read and manage orders globally, but Shopify's API now prevents fulfillment creation if the order's items are assigned to another app's location. Fulfillment service apps can only fulfill orders assigned to them, while orders assigned to merchant-managed (in-house) locations remain fulfillable by order management apps as usual.
ShipHero Requirement for Shopify Merchant Locations
All orders to be fulfilled by ShipHero need to be assigned to a merchant location.
Starting on June 6th, 2025: If a fulfillment-order line is assigned to a location not owned by ShipHero, ShipHero sets the fulfillable_quantity to 0 or calculates the right fulfillable quantity based on the allocation.
How to Set Up Shopify Order Routing for ShipHero Locations
To assign whole orders or order lines to ShipHero based on available inventory, rank your default merchant locations first in your Shopify order routing rules. These are the general steps. For the current steps in Shopify, see Setting up order routing in the Shopify Help Center.
- In Shopify, go to Settings > Shipping and delivery and select Order routing.
- Select Add rule.
- Select Use ranked locations.
- Create a new location group for the 3rd party locations, move those locations into it, and select Done. Locations in the first group rank above the second group.
- Move the new rule so it is the second priority.
- Select Save.
Shopify now routes orders to ShipHero first when inventory is available and ShipHero is the closest location to the destination address. Shopify routes to the 3rd party location when it is not.
Shopify Order Routing Screenshots
Shopify's interface may differ from these screenshots. Use them as a general guide to where each setting is.
| Step 1: Open Order routing | Step 2: Select Add rule | Step 3: Select Use ranked locations | Step 4: Group the locations | Step 5: Rank the rule second |
|---|---|---|---|---|
How to Route Shopify Orders to a Location by Destination with Shopify Flow
If you need to map orders or line items to a location based on destination country or other conditions, use Shopify Flow. Flow helps you build custom automations without code, including inventory tasks like reordering and restocking and managing fraud concerns.
For example, a customer needs to assign orders that are not going to the US or CA to a location in China. MX orders would usually go to US or CA locations because of proximity, so a different approach is needed. These are the general steps. For the current steps in Shopify, see Creating workflows in Shopify Flow in the Shopify Help Center.
- Set the trigger to run when an order is created.
- Add a condition that checks the shipping address country code against US and CA.
- Because more than one fulfillment order can be created per order, get the order's fulfillment orders and loop through them with a For each step.
- Add the action that assigns each fulfillment order to the location you want, then review the finished flow.
On order creation, when the country is not US or CA, this flow assigns the fulfillment orders to the location defined in the last step.
Shopify Flow Screenshots
Shopify's interface may differ from these screenshots. Use them as a general guide to what the flow looks like.