Managing inventory across multiple locations is one of the most operationally complex things a Shopify merchant can take on. This guide covers everything from initial setup to ongoing reconciliation.
Running inventory from a single location is straightforward. The moment you add a second — a second warehouse, a 3PL, a pop-up store, a fulfilment centre — the complexity compounds.
You now have the same SKUs in multiple places. An order might be fulfilled from any of them. Stock transfers need tracking. Your total available inventory is the sum across locations, but overselling from one location is still an oversell.
Shopify supports up to 1,000 locations. This guide explains how to manage inventory across them without losing control.
Shopify tracks inventory per variant per location. Each product variant has a separate stock level for each location you activate it at.
When a customer orders, Shopify checks stock availability across all locations and routes the order to a location with available stock. If you have configured order routing rules (available in Shopify Plus), orders route based on priority or proximity. For standard Shopify plans, the routing priority is set in Settings → Shipping and delivery → Location priority.
Three key concepts:
Before adding locations in Shopify, clarify what each one is:
| Location type | Examples | Shopify setting |
|---|---|---|
| Retail store | Physical shop, pop-up | Fulfils online orders: yes or no |
| Warehouse | Own warehouse, rented space | Fulfils online orders: yes |
| 3PL | ShipBob, Fulfil.io, etc. | Fulfils online orders: yes |
| Supplier | For in-transit tracking | Fulfils online orders: no |
| In-transit | Goods moving between locations | Fulfils online orders: no |
Getting this right upfront prevents overselling from locations that cannot actually fulfil.
For existing inventory, you need to allocate quantities to each location. Shopify does not automatically distribute stock — you must enter the quantity at each location manually (or via bulk import).
Export your products, add columns for each location, populate quantities, and reimport via the Shopify products CSV.
In Settings → Shipping and delivery → Locations, order your locations by fulfilment priority. Shopify routes orders to the highest-priority location that has available stock.
Set this based on your cost structure: - If one location has lower shipping costs to your primary customer base, prioritise it - If one location is a retail store you do not want to deplete for online orders, set it lower
For each product, confirm that inventory tracking is enabled and that stock is assigned to the correct locations. New locations added after a product is created start with zero stock — easy to miss.
When stock needs to move from one location to another — warehouse to retail, 3PL to own warehouse, supplier to fulfilment centre — you need to record this as a transfer, not just an inventory adjustment at each end.
A transfer has three stages:
The "in transit" stage is where most multi-location merchants have problems. Stock is physically on a truck but the system shows it as available at the source. If an order is placed during transit, fulfilment fails.
Best practice: remove stock from the source location when the transfer is initiated, not when it arrives. Use an "in-transit" location in Shopify (marked as not fulfilling online orders) to hold the units until they are received.
Overselling becomes more likely with multiple locations because of two failure modes:
Failure mode 1: Location deactivated mid-order If a location is deactivated or paused while it has committed (reserved) orders, those orders lose their fulfilment assignment. Shopify does not automatically reassign them.
Failure mode 2: Inventory sync lag from 3PL integrations Third-party fulfilment centres sync inventory via API at intervals — typically every 15–60 minutes. If you sell 50 units in 20 minutes during a flash sale, and your 3PL sync has not run, Shopify may oversell.
Mitigation: - Set a buffer quantity at each location (hold back 5–10% of stock as a safety buffer against sync lag) - Monitor committed vs available inventory in real time - Configure low-stock alerts per location, not just total
Standard Shopify inventory reports show stock per location, but they do not easily surface cross-location insights like:
You need either custom Shopify reports (available on Advanced and Plus plans) or a third-party inventory tool that aggregates across locations.
The most common multi-location mistake is thinking about locations separately. Total available inventory is what a customer sees. A stockout at the fulfilment location closest to your primary customer base is a problem even if another location 500 miles away has 300 units.
As demand patterns emerge, you will find imbalances: Location A has 300 units of a fast-mover, Location B has 20. Rather than reordering for Location B, transfer from A.
A stock balancing policy should trigger when:
Set a regular review cadence (monthly) to identify and action imbalances before they cause either stockouts or excess at specific locations.
If you use a 3PL like ShipBob, Deliverr, or a regional fulfilment partner, the Shopify integration is critical. Key things to verify:
Sync frequency: How often does your 3PL push inventory updates to Shopify? Anything above 30 minutes is a risk during high-velocity periods.
Discrepancy handling: What happens when 3PL inventory and Shopify inventory diverge? Which system wins? (Answer: your 3PL should be the source of truth for locations they manage.)
Returns processing: When a customer returns an item to your 3PL, how quickly does it appear back in Shopify inventory? A 48-hour lag means phantom deficits.
Damage reporting: Does your 3PL automatically report damaged or lost units to your inventory system, or do you need to reconcile manually on a monthly bill?
Multi-location inventory management is fundamentally about keeping multiple representations of truth — one per location — in sync with physical reality at each site.
Get the setup right (location types, priority, transfer workflow). Monitor for the failure modes (sync lag, deactivated locations, imbalanced stock). Review your cross-location reports on a regular cadence.
The merchants who do this well do not experience dramatically more complexity than single-location operations. They just have better processes for the additional variables.
CoreCaptain detects phantom stock, sync errors, and inventory discrepancies automatically. 14-day free trial, no credit card required.
Start Free Trial