Skip to content
stackworx

Routing Shopify orders across warehouses, suppliers, and drop-ship partners

Share this blog with your network

Route every order to the right place: one order split across warehouse and supplier

Shopify can route orders across multiple locations on its own. Its default strategy tries to fulfill all items from one location, stay within the destination market, and ship from the closest location, and you can customize the rules. Custom routing becomes worth considering when some of your stock sits with suppliers or manufacturers who ship directly, when routing depends on cost or capacity data Shopify does not have, or when one order needs to be split across partners that each need their own instructions.

This article explains where the native tools end, what a custom routing layer adds, and how to tell which one your business needs.

What Shopify order routing does today

Shopify's order routing documentation says routing requires two or more active locations. The default rules, in order, are:

  1. Minimize split fulfillments by choosing locations that can fulfill all items.
  2. Stay within the destination market when possible.
  3. Ship from the closest location.

You can customize these rules, and Shopify describes advanced rules based on location metafields, such as warehouse capacity or fulfillment speed. For a business with a few warehouses and its own stock, this is often enough. Test it with your real order mix before building anything.

Routing apps in the Shopify App Store add rules for vendor-based routing, splitting by product tag, or routing to a 3PL. These fit well when the rule can be expressed with data Shopify already holds.

Signs you need more than the built-in rules

  • Some products are shipped by the manufacturer or a drop-ship supplier, and staff forward those lines by email.
  • Your routing rule depends on shipping cost, carrier cutoffs, or warehouse workload that lives outside Shopify.
  • Supplier stock is known only through a daily feed, so routing to a supplier is a guess.
  • Customers get one tracking number when their order actually ships in three parts.
  • Orders that should ship together are split, or orders that should be split wait on the slowest item.
  • Staff override routing decisions by hand every day.

Manual overrides are the clearest signal. If people correct the routing on a large share of orders, the rules in your system do not match the rules in your operation.

What makes routing hard once suppliers are involved

You do not control their stock number

Supplier and manufacturer stock is often reported through a file or portal, and it may be hours old. Routing to a supplier needs a confidence rule: for example, only route if the supplier reported a quantity above a threshold in the latest feed, otherwise hold or route to your own warehouse.

Each partner needs its own message

Your warehouse reads orders from Shopify. A supplier may need a purchase order by email, an EDI message, or an API call, with their own product codes. The routing layer has to translate each order line into the partner's format and track whether they accepted it.

Tracking comes back from several places

Each partner sends tracking at a different time and in a different format. The customer should see each shipment with the items it contains. Shopify's fulfillment orders model supports multiple fulfillments per order, so the integration can report each shipment separately rather than marking the whole order shipped.

Failures happen between systems

A supplier rejects a line, an API times out, or a feed arrives late. Without a queue and an alert, the order line waits silently until the customer asks where it is.

If part of your catalog ships from suppliers or manufacturers and routing is handled by email or spreadsheets, bring a list of your fulfillment partners and how each receives orders to a Systems Discovery Call.

What a custom routing layer looks like

A routing layer sits between Shopify and your fulfillment partners. It does not replace Shopify's order management. It decides who ships what, sends the instructions, and reports back.

  1. Receive the order from Shopify and record it once, even if the webhook arrives twice.
  2. Evaluate each line against your rules: stock by location, supplier confidence, cost, market, and any product-specific constraints.
  3. Choose the split that meets your priorities, such as fewest shipments, lowest cost, or fastest delivery, in the order you define.
  4. Send instructions to each partner in its format and wait for acknowledgement.
  5. Handle rejection by rerouting the line or flagging it for a person, with the reason recorded.
  6. Collect tracking and create fulfillments in Shopify per shipment, so customers see accurate status for each item.
  7. Log every decision so staff can see why an order went where it did.

The decision log matters more than it seems. When a customer complains or a cost spikes, the first question is always "why was this routed there?" A routing system that cannot answer it will be overridden by hand again.

Proof from a real build

For Midway Sports, we built an order and inventory system for a catalog of more than 200,000 SKUs across multiple brands and suppliers. It supports manufacturer-direct shipments, organizes inventory by exact warehouse location for picking and packing, and provides item-level order tracking so customers can see the status of each product. Item-level tracking only works if routing knows where each line went, which is why the two were designed together.

Choosing your approach

SituationStart with
Own stock in two or more locations, simple prioritiesShopify order routing rules
Routing by vendor or product tag to a known 3PLA routing app
Drop-ship or manufacturer-direct lines with their own formatsCustom routing layer, or an app proven with those suppliers
Routing by cost, capacity, or carrier cutoffs from other systemsCustom routing layer

Mistakes to avoid

  • Optimizing for one metric only. The cheapest route can produce three shipments and a worse customer experience. Rank your priorities explicitly.
  • Trusting stale supplier stock. Route to suppliers only when their data is recent enough, and define "recent" in the rule.
  • No manual override path. Staff will need to reroute occasionally. Give them a way that records the reason, instead of editing orders directly.
  • Launching without replaying history. Run the new rules against last month's orders and compare the results with what actually happened before going live.

Common questions

Can Shopify split one order across warehouses?

Yes. With multiple locations, Shopify can assign items to different locations, and its default rules try to avoid splits when one location can fulfill everything.

Do we need an OMS instead?

An order management system is worth evaluating when you also need purchasing, receiving, and complex allocation. If routing is the main gap, a focused routing layer or app is usually faster to adopt.

Next step

If orders are routed by hand or supplier lines are forwarded by email, book a Systems Discovery Call. It is 45 minutes on your locations, fulfillment partners, and the routing decisions your team makes each day. Bring a sample of recent orders that were split or rerouted. You leave with a clear picture of what to build, whether you hire us or not.

Farooq Ch, CEO & Founder of Stackworx

Farooq Ch

Oct 2026