ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides9 min read

Shopify order routing: why an order ships from the 'wrong' location

Shopify order routing explained: the rules that pick your fulfillment location, why splits and surprise ships happen, and how to override an order.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Short answer: order routing is a stack of rules Shopify runs top-to-bottom at the moment of checkout, and the "wrong" location almost always turns out to be one of five legitimate eliminations — the location was out of stock at order time, wasn't in an active shipping zone, had an unverified address, tied with an older location, or doesn't fulfill online orders at all. The other thing worth saying up front: routing has never prevented overselling, so an order can arrive assigned to a location with zero stock on purpose.

This article walks the rules the way Shopify applies them — on one real order, so you can see each elimination happen — then covers the diagnostic table for "why did THAT order go THERE," and the manual overrides you have after the fact. Where the second-location decision itself belongs to strategy (do you even want a warehouse plus stores fulfilling online?), that's the multi-location decision guide's territory; here we're past the decision, inside the machine.

Where routing lives and when it fires

Order routing settings are in Settings > Shipping and delivery > Order routing, and they only matter when your store has two or more active locations — with a single location, every order goes there and your rules do nothing (Shopify Help Center, "Setting up order routing," as of November 2026). When rules fire, they run in sequence, each rule working on the survivors of the previous one, until one or more locations remain to fulfill the order.

The default strategy ships with three rules in this order:

  1. Minimize split fulfillments — locations holding every item in the order outrank those that don't; if nobody has everything, the fewest-packages arrangement wins; and when nothing else distinguishes candidates, the location with the highest available inventory for the order takes priority.
  2. Stay within the destination market — same-market locations outrank cross-market ones.
  3. Ship from closest location — measured in a straight line from the customer's address, which is why the pick occasionally defies your mental map of highways. Applied last, as a tie-breaker, which is exactly what Shopify recommends.

Two more rules you can add, and re-order: Use ranked locations (you define location groups — all warehouses above all storefronts, for instance) and Use location metafields (prioritize on a boolean or numeric location metafield, like has_capacity). One behavior of the closest rule produces a surprising number of "wrong location" tickets: if two locations end up ranked equally, the older location wins — and if a location's address was never verified, the closest rule can't measure to it and skips it entirely.

One order, five lessons

Watch the rules work. A coffee roastery runs three locations: the Roastery in Aurora (warehouse, fulfills online), a Downtown cafe (fulfills online), and a Mall kiosk (retail-only — online fulfillment switched off). An order arrives from Boulder, Colorado: two bags of ETH-PEA-12.

  • Lesson 1 — retail-only locations never compete. The kiosk holds 60 bags of ETH-PEA-12, more than anywhere else, and it is eliminated before any rule runs: locations without "Fulfill online orders from this location" enabled aren't candidates (Shopify Help Center, order routing troubleshooting, as of November 2026). Its 60 bags count toward total inventory but can't ship a single online order.
  • Lesson 2 — stock-at-order-time is the only stock that counts. The cafe had 6 bags this morning and sold them by noon. The 2 p.m. Boulder order sees the Roastery's 40 and the cafe's 0 — and the Roastery ships, even though the cafe restocked at 2:15. Routing reads the inventory at the moment of order, not now. This is the single most misunderstood behavior in the whole feature.
  • Lesson 3 — the market rule is regional, not global. A Vancouver warehouse holds stock, but a US shipping address filters it out under "stay within the destination market."
  • Lesson 4 — distance is a straight line. Between the Roastery and a store across town, the straight-line winner may be the one with the worse highway access. It's a proximity proxy, not a promise.
  • Lesson 5 — ties go to age. Two locations, same rank, after every rule: the older location fulfills. If you care which one, say so with a ranked-locations rule.

Now the same order, darker variant: a customer in Boulder orders two bags of a seasonal roast where the Roastery has 0 and the cafe has 4. The order routes to the cafe, sells it out, and the next Boulder customer's order assigns to the Roastery anyway — with zero stock. That's not a malfunction. Routing is allowed to assign an order to a location with no available inventory so the sale isn't lost, on the theory that you can move inventory or change the fulfillment location before shipping (Shopify Help Center, "Troubleshoot an order assigned to a location without enough inventory"). Order routing, verbatim from the same page, doesn't prevent overselling — the continue-selling setting governs whether those orders even exist, and allowing overselling on purpose is its own decision.

Why the order split into two packages

Splits feel like routing failures but usually aren't. An order arrives as multiple fulfillments when any of these is true (Shopify Help Center, "Fulfilling your own orders individually," as of November 2026):

  • No single location had everything. Minimize splits reduces splits; it can't conjure a location that doesn't exist. Two bags from the Roastery plus a hand grinder only the cafe stocks ships as two packages, and the customer gets two shipping confirmations.
  • Items can't ship together. Preorder items, subscription items, and items in different shipping profiles are split by checkout itself, before routing.
  • The customer chose mixed delivery. Ship some, pick up some — that's the ship-and-pickup feature, currently a Plus/Enterprise test drive as of November 2026 — and mixed orders generate separate fulfillments by design.
  • Weight or shipping options force it when one location's options can't carry the order.

The split you can prevent is the profile-driven one: a SKU sitting in its own shipping profile splits from its siblings every time. Consolidating profiles is the fix, and it's a settings chore, not a routing rule.

The diagnostic table

Symptom Most likely cause Fix
Shipped from the "wrong" city Stock at the expected location was zero at order time Nothing to fix — or add a ranked-locations rule if priority matters more than proximity
Oldest location keeps winning Tie broken by age, or address unverified / coordinates unmatched (common outside the US — the closest rule skips and the oldest location fulfills) Verify location addresses; add ranked locations
Location ignored entirely Doesn't fulfill online orders, or isn't in an active shipping zone covering the destination (zone needs to exist; rates don't) Location settings; shipping profile zones
Order split when stock exists Different shipping profiles, or items that can't ship together Consolidate shipping profiles
Assigned to a location with no inventory Routing doesn't block zero-stock assignment Change the fulfillment location before shipping
Rules "not working" at all Single active location Two or more locations, or accept the behavior

One more cause that outranks all of these: your settings changed after the order was placed. Rules, locations, and shipping profiles all apply at order time — before deep-diving an anomaly, check whether anything was edited that day.

Changing the outcome: the manual overrides

Routing is a suggestion machine with a veto button. For any unfulfilled order, from the order page: … > Change location, select the items and the new location, confirm. If routing is active, Shopify recommends the next-best location based on your settings — you can accept it or ignore it (Shopify Help Center, "Change the location of a fulfillment," as of November 2026). Three boundaries on the override:

  • Unfulfilled only. Once a fulfillment is marked shipped, the location is history.
  • Pickup and local delivery orders are different animals — their fulfillments don't take location changes the way shipped orders do, and pickup orders additionally can't have the customer's chosen location altered at all.
  • Changing the location changes who ships, not where stock lives. If the Roastery fulfills an order sitting in Boulder's stock, the units still owe Boulder. The fix for the resulting imbalance is a native transfer — moving stock between locations so the ledgers re-align — which is the transfer workflow's whole job, covered properly in the inventory transfers guide.

Between the routing suggestion and your veto sits one more read worth learning: each order's assigned location is visible before you fulfill anything, and the order-status translation guide maps how statuses and fulfillments correspond to committed stock at each location — the reading skill that makes manual overrides quick instead of forensic.

Common questions

Why did Shopify split my order across two locations? Because no single location had every item in stock, the items can't ship together (different shipping profiles, preorder or subscription items), or the customer mixed shipping with pickup. The minimize-splits rule reduces splits but can't prevent them when one location genuinely can't complete the order.

Can I change which location fulfills an order? Yes, while it's unfulfilled: open the order, click the … menu, choose Change location, and pick the items and new location. With routing active, Shopify suggests the next-best location from your own settings. Pickup and local delivery fulfillments don't take location changes like shipped orders do.

Does Shopify order routing prevent overselling? No — Shopify's own documentation states routing doesn't prevent overselling, and it will deliberately assign an order to a location with no available inventory rather than lose the sale. What governs whether customers can buy below zero is the continue-selling-when-out-of-stock setting, not routing.

Why does the closest rule skip my newest location? Two usual reasons: the address was never verified, so the rule can't measure a straight-line distance to it, or the location isn't in an active shipping zone covering the destination — the zone must exist, though it needs no rates. Verify the address and check the shipping profile.

How do I force orders to ship from my warehouse first? Add the Use ranked locations rule, drag it to the top, and put warehouse locations in the top group and storefronts below — everything in a group shares its rank. Add ship-from-closest as the last rule to break ties within a group.

Next step

Open Settings > Shipping and delivery > Order routing today and write down your rule stack in order — then check every location's "fulfill online orders" flag and address verification while you're there. Those three checks resolve most "wrong location" mysteries in ten minutes; for the stock imbalances the overrides leave behind, the inventory transfers guide covers the move-back workflow.