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.
How Shopify Handles Multi-Location Inventory
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:
- Location priority — which location Shopify routes orders to first when multiple locations have stock
- Available inventory — units on hand minus units committed to unfulfilled orders
- Committed inventory — units reserved for orders that have not yet been fulfilled
Setting Up Multiple Locations Correctly
Step 1: Define your location types
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.
Step 2: Allocate stock to each location
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.
Step 3: Set location priority
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
Step 4: Activate inventory tracking per location
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.
Managing Stock Transfers Between Locations
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:
- Initiated — stock removed from source location
- In transit — stock is physically moving; not available at either location
- Received — stock added to destination location
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.
The Overselling Risk at Multiple Locations
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
Reporting Across Locations
Standard Shopify inventory reports show stock per location, but they do not easily surface cross-location insights like:
- Which location has the most dead stock?
- Which SKUs are imbalanced (too much at Location A, too little at Location B)?
- What is the total value of inventory in transit across all transfers?
- Which location has the highest shrinkage rate?
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.
Stock Balancing: Moving Inventory to Where It Is Needed
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:
- A location's days of stock falls below the replenishment threshold
- Another location has more than 60+ days of stock of the same SKU
- The cost of transfer is lower than the cost of a new order (usually true for inter-warehouse transfers)
Set a regular review cadence (monthly) to identify and action imbalances before they cause either stockouts or excess at specific locations.
3PL Integrations: What to Watch For
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?
Summary
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.