All guides

InventoryAugust 26, 20269 min read

Manage Inventory Across Multiple Shopify Locations

Running more than one Shopify location? Here's how to set up locations, move stock between them, and prioritize fulfillment without losing count of anything.

The moment a store opens a second location (a second warehouse, a retail floor alongside the online store, a 3PL), Shopify's inventory stops being one number per product. It becomes one number per product per location, and every workflow that assumed a single stock count quietly needs rethinking: where a product is stocked, which location fills which order, and how stock gets from one place to another when the numbers say it should.

This is the mechanics of running more than one: setting locations up, keeping per-location stock straight, deciding which location fills an order, and moving units between them when the numbers say you should. If you haven't turned on inventory tracking at a single location yet, start with the setup guide first. Everything here assumes tracking is already on.

Setting up locations

You manage locations from Settings → Locations in your admin — the same screen where you'd later deactivate one. How many you can add depends on your plan:

10

locations on Basic

10

locations on Grow

10

locations on Advanced

200

locations on Shopify Plus

Deactivated locations don't count against that limit, so retiring a closed store or a warehouse you've moved out of frees up room without deleting its history — its inventory stays visible and adjustable, and returns can still restock it, it just stops appearing as an active option for new stock or fulfillment.

Adding a location doesn't automatically stock every product there. When you turn on tracking for a product, you pick which locations it's stocked at from an "Inventory will be stocked at" list — a new location starts with nothing assigned to it until you deliberately add products to it, either one at a time or through the bulk editor.

Per-location stock levels

One product, three locations, one storefront numberA single variant holds a separate stock level at each location: forty units in the main warehouse, twelve in the retail shop, and none at a third-party fulfilment partner, which is deactivated for online orders. The storefront does not show these separately. It adds the levels of every location enabled for online selling into one available figure, fifty-two, so a shopper never sees where the stock physically sits. Fulfilment priority then decides which location is asked to ship first.One variant — “Cedar & Fig, 250g”Main warehouse40 on handpriority 1 for fulfilmentRetail shop12 on handpriority 23PL partner0 on handnot selling onlineexcludedStorefront shows52 available40 + 12, not 52from one place.The 3PL’s 0 isexcluded entirely.A shopper never sees which location holds the stock.Fulfilment priority decides who is asked to ship it,after the order exists — not before.
The single number on the product page is a sum. That is why a location you forgot to deactivate can advertise stock nobody can actually pick.

Once a product is stocked at more than one location, Shopify tracks a separate on-hand, available, committed, and incoming count for each one — the same four states covered in how Shopify's tracking actually works, just per location instead of a single global number.

To adjust a quantity at a specific location, go to Products → Inventory, select the location from the filter, then click the on-hand or available number for the variant you want to change and choose Set to or Adjust by. If you manage several locations, get in the habit of checking which location is selected before you edit a number — it's an easy way to accidentally correct the wrong warehouse's count.

Fulfillment priority

When an order comes in and more than one location could fulfill it, Shopify's order routing decides which one does. A new location is added to the bottom of the routing list by default, so it won't get picked over your existing locations unless you move it up or it's the only one that has stock.

The default logic runs in this order: minimize split shipments by preferring a single location that can fill the whole order, stay inside the order's destination market where possible, then ship from whichever eligible location is closest to reduce delivery time. If that default doesn't match how you actually want orders routed (say, you want a specific warehouse to always take priority for a certain product line), you can set custom routing rules, including rules based on location metafields for capacity or shipping cost.

Stock transfers between locations

Say your main warehouse is holding 400 units of a SKU and your retail location is down to 15 with a weekend rush coming. You create a transfer from Products → Transfers, set the warehouse as origin and the store as destination, and specify 60 units to move.

Those 60 units sit in the Incoming state at the retail location, not yet sellable there, until someone at that location accepts the transfer, at which point they move into Available. A transfer can also be rejected, which is recorded but doesn't change quantities anywhere, or canceled before it ships, which returns the inventory to the origin location and makes it available there again. A transfer's status reads "In progress" until every unit has been received, then "Transferred."

Reporting by location

The Inventory page itself is filterable by location, so you can pull up "everything at Warehouse B" as a working view rather than scrolling a combined list. For after-the-fact investigation, the Inventory adjustment changes report lets you filter by SKU, location, staff member, app, and adjustment reason — useful when a number at one specific location looks wrong and you need to see what actually moved it and who or what did it.

Choosing an app for multi-location

Native Shopify gets you the mechanics above (locations, per-location quantities, transfers, routing), but none of it is proactive. Nothing tells you a specific location is about to run out; you find out by looking, location by location, or by a customer telling you. That manual checking is what most dedicated inventory apps are built to remove, with varying degrees of location awareness. It's worth confirming exactly what a given app does and doesn't do per location before you commit to it. A lot of listings gloss over the difference between "supports multiple locations" and "actually treats each location as its own inventory problem."

Our own app, StockCue, is upfront about that line rather than blurring it: stock counts are location-scoped starting on the Starter plan, transfers between locations are a Scale-plan feature, and per-location reorder points and alerts aren't built yet. The app currently forecasts and alerts at the SKU level across your store, not location by location, and we'd rather say that plainly than have a merchant discover it after paying.

STOCKCUE

Running more than one location means more manual checking, not less. StockCue's stock counts are location-scoped from Starter, and Scale adds tracked transfers between locations — with honest limits on what's per-location today and what isn't.

Install StockCue on Shopify →

Once locations, transfers, and routing are set up the way you want them, the next question is usually whether the numbers at each location are actually right — which is where running a count at each location comes in, and deciding how often to do it before you start. For the concepts this all builds on, see inventory management fundamentals.

Frequently Asked Questions

How many locations can a Shopify store have?

It depends on your plan. Basic, Grow, and Advanced all allow up to 10 locations; Shopify Plus allows up to 200. Shopify's $5/month Starter plan (the social-selling plan with no online store) is capped at 2. Deactivated locations don't count against the limit, so you can retire an old warehouse without losing room to add a new one.

How do I transfer stock between two Shopify locations?

Go to Products → Transfers, create a new transfer, choose the origin and destination locations, and add the items and quantities you're moving. The units sit in the Incoming state at the destination until someone accepts the transfer there, at which point they become Available.

Can I set different reorder points for the same product at different locations?

Not natively. Shopify's own admin has a per-variant low stock threshold, but no per-location reorder point field. Third-party apps vary on this too; StockCue, for example, doesn't yet support per-location reorder points or alerts and says so plainly rather than letting a merchant assume it works that way.

How does Shopify decide which location fulfills an order?

Order routing applies rules in sequence: it tries to fill the whole order from one location to avoid split shipments, prefers a location inside the order's destination market, and then prefers the closest location to shorten delivery time. Merchants can override the default sequence with custom rules, including location metafields for capacity or cost.

Devmerx

Devmerx is a Shopify and WordPress development agency helping DTC brands build faster stores, cleaner migrations, and higher-converting experiences. Based in London, UK, serving clients worldwide.

See our work

Need help with your Shopify store?

Devmerx builds and optimises Shopify stores for DTC brands. Book a free 20-minute consultation.