How to Manage Shopify Inventory Across Multiple Warehouses and Sales Channels
How Shopify handles stock across warehouses, stores and 3PLs: location limits, inventory states, order routing, transfers, Stocky's shutdown and setup checks.
Can Shopify manage inventory across warehouses and channels on its own?
For many growing stores, yes. Shopify tracks stock per location, splits each location's stock into five states, routes online orders to locations by rules you control, and moves stock between locations with transfers and purchase orders. It runs out of road when you need demand forecasting, kitting or bundles across warehouses, complex marketplace allocation, or routing logic beyond the admin's rules, which only Plus stores can extend, and only on request.
This guide is for founders and operations leads adding a second warehouse, a retail shop or a 3PL. It covers what Shopify itself does, where it stops, and how to set locations up so stock counts match reality. For the theory behind order management and inventory systems, see the difference between an OMS and an IMS and how distributed order management works. This page sticks to Shopify's mechanics.
Everything here was checked on Shopify's own help centre, developer docs and changelog on 15 October 2026. Shopify changes these features often, so recheck anything you are about to rely on.
Key takeaways
- Location limits: 2 on Starter, 10 on Basic, Grow and Advanced, 200 on Plus. 3PL app locations do not count toward the limit.
- Only Available units can be sold. On hand equals Committed plus Unavailable plus Available; Incoming is not sellable until received.
- Order routing needs at least two active locations. The default rules minimise split shipments, stay within the destination market, then ship from the closest location.
- Custom routing through a Shopify Function is Plus-only, by request, and does not support subscriptions.
- Stocky is no longer available after 31 August 2026. Purchase orders now live in the admin and create linked transfers.
- Shopify Fulfillment Network is now a marketplace of 3PL partners, not Shopify-run warehouses.
Locations: what counts and what the limits are
A location is any place you stock products, fulfil orders or sell in person: a warehouse, a shop, a pop-up or a supplier that ships for you. Shopify's location setup page lists these limits on active locations:
| Plan | Active locations | Notes |
|---|---|---|
| Starter | 2 | Shopify Flow is not available on this plan |
| Basic | 10 | |
| Grow | 10 | |
| Advanced | 10 | |
| Shopify Plus | 200 | Also the only plan that can request custom routing Functions |
Locations: settings that change what you can sell
Three details catch most stores out. First, deactivated locations do not count toward the limit, but you cannot deactivate your default location without changing the default first. Second, apps that physically stock inventory for you, such as 3PL, dropshipping and custom fulfilment service apps, are treated as locations but do not count toward the limit. Third, each location has a setting that makes its inventory available to fulfil online orders. It is on by default for new locations. Turn it off for a shop whose stock should not be promised to web customers, and that stock stops counting toward online sales.
If you hold the same product in your own warehouse and at a 3PL, Shopify's multi-managed inventory page says fulfilment services are being migrated, from February 2026, to support stock for one product at your locations and the fulfilment app at the same time. Older services are updated automatically. Confirm with your 3PL app that it handles split stock before you rely on it.
The five inventory states, and why stock seems to disappear
Shopify's inventory states page splits each location's stock into five states:
| State | What it means | Sellable? |
|---|---|---|
| On hand | All units at the location. Equals Committed + Unavailable + Available. | Partly |
| Available | Units you can sell: not committed and not set aside. | Yes |
| Committed | Set aside for unfulfilled orders, reserved in draft orders, or in a transfer marked ready to ship. | No |
| Unavailable | Set aside by apps or held for other reasons, such as damaged, quality control or safety stock. | No |
| Incoming | On the way from a transfer, purchase order or app. Becomes Available only when received. | Not yet |
Worked example: how much can you actually sell online?
Hypothetical example: a skincare brand stocks one serum in a main warehouse and a retail shop. The numbers are invented to show the arithmetic.
| Line | Main warehouse | Retail shop |
|---|---|---|
| On hand | 120 | 14 |
| Committed (unfulfilled online orders) | 18 | 0 |
| Committed (transfer to the shop, marked ready to ship) | 6 | 0 |
| Unavailable: damaged | 4 | 1 |
| Unavailable: safety stock held back | 10 | 0 |
| Available (on hand minus committed minus unavailable) | 82 | 13 |
| Incoming (purchase order not yet received) | 40 | 6 (the transfer) |
| Location set to fulfil online orders? | Yes | No |
| Units online customers can buy | 82 | 0 |
Key takeaway
In this example the team thinks it has 134 units, plus 40 on order. Online customers can buy 82. The gap is not a bug: it is committed orders, a transfer in progress, damaged and safety stock, a purchase order not yet received, and a shop that does not sell online. Check those five things before raising a support ticket.
Order routing: who ships which order
When an online order arrives, Shopify picks the fulfilling location using order routing. Routing needs two or more active locations. It applies rules in sequence, and the default strategy is: minimise split fulfilments by choosing locations that can fulfil every item, stay within the destination market where possible, then ship from the closest location. You can change the order of rules and add custom rules that prioritise particular warehouses or balance stock. You can also base rules on location metafields, for example a warehouse's capacity or fulfilment speed. New locations go to the bottom of the routing list, so review it every time you add one.
If the admin rules cannot express your logic, Shopify Plus stores can request access to the Order Routing Location Rule Function API and run their own code. The documentation states it is available only by request for Plus merchants. It does not support subscriptions (recurring orders), pre-orders or Try Before You Buy, or order edits at checkout. Admin order edits are supported only for new items, and POS only when shipping to a customer. If a large share of your revenue is subscriptions, custom routing will not cover those orders.
In plain English: routing decides where an order should ship from. It does not create stock. If the best location is empty, routing falls back to the next rule, which may mean a split shipment or a more distant warehouse.
Local delivery and pickup: per-location limits
Both are set up per location, so they interact with your stock data. From Shopify's local delivery and pickup in store pages:
- Local delivery allows up to 10 delivery zones per location, with a radius of up to 160 km (100 miles) or postal code lists of up to 3,000 characters, and up to 3 extra price rules per zone.
- Local delivery is not supported at B2B checkout. It is not offered when the customer chooses Apple Pay, Google Pay, Amazon Pay or PayPal in the first checkout step, though it works with Shop Pay.
- Shipped and locally delivered items cannot be combined in one order. Zones do not cross a country border.
- By default, pickup is offered only when the entire order is in stock at the pickup location. You can enable store transfers to move stock to the pickup location, with its own processing time.
- Customers see pickup locations only in their own country, and each pickup location needs a shipping zone.
3PLs, and what happened to Shopify Fulfillment Network
Shopify once ran its own fulfilment business. That changed in 2023: Flexport completed its acquisition of Shopify's logistics business, including Deliverr, on 6 June 2023, with Shopify taking an equity stake (FreightWaves report). Older guides that describe the network as Shopify's own warehouses are out of date.
Today the Shopify Fulfillment Network app connects you with third-party logistics providers that store your stock and fulfil orders for you, managed from the admin. On 26 August 2025 Shopify's changelog announced five new partners: Amazon Multi-Channel Fulfillment, DHL Fulfillment Network, Bigblue, Mayple and GoBolt. Pricing, minimum volumes and countries served are set by each partner, so check them directly.
Whether your 3PL comes through that app or its own integration, the inventory questions are the same: which system is the source of truth for counts, how often counts sync, and what happens to orders the 3PL rejects. Our guide to 3PL and fulfilment integration covers the message flows.
Transfers and purchase orders after the 2026 changes
Transfers move stock between your locations, or to and from external locations such as suppliers. Shipments are created automatically, and you can receive all or part of a shipment. Two changelog updates matter this year:
- 6 January 2026: you can add, remove or adjust items in a shipment even after it is in transit or received; leave the origin blank to record stock arriving from outside Shopify; leave the destination blank to write stock off or send it to an untracked location.
- 22 June 2026: purchase orders create a linked transfer when you are ready to receive them. Stock can be received in the admin or in POS, one transfer can hold several shipments, line items can be imported by CSV, and costs pre-fill from previous purchase prices or the product's cost per item.
Pro tip
Use a write-off transfer (blank destination) for damaged stock you are disposing of, rather than editing the on-hand count. You keep a record of what left and why.
Stocky is gone: what to do now
Shopify's Stocky page says the app "will no longer be available after August 31st, 2026" and that merchants need to move to the inventory management features in the admin. It can no longer be installed. Shopify also advises against uninstalling it because data might not be retrievable afterwards. If you still have access, keep it installed until you have your records.
The replacement options fall into three groups. Native admin inventory, with purchase orders, transfers and counts, suits stores whose Stocky use was mainly POs and receiving. Inventory planning apps add forecasting, reorder suggestions and supplier management on top of Shopify. A full inventory management or ERP system suits stores that also need manufacturing, kitting, multi-entity accounting or many marketplaces. Pick based on the workflows you actually used, not on feature lists.
- List every Stocky workflow your team used: purchase orders, receiving, stocktakes, supplier records, reorder points, reports.
- Export what you can of open and historical purchase orders, supplier details, cost history and stocktake results, and store them outside Shopify.
- Recreate open purchase orders in the admin so receiving creates transfers.
- Decide where reorder logic now lives: a person, a Flow workflow, or a planning app.
- Run one full receiving and one stock count in the new process before your next busy period.
Automating alerts with Shopify Flow
Shopify Flow is a free automation app on the Basic, Grow, Advanced and Plus plans. It is not on Starter. Inventory workflows are triggered when a product variant's inventory quantity changes. Typical uses are a low-stock email or chat alert, tagging items when they are restocked, or hiding a product when it reaches zero. Test each workflow on a single product first: a loose condition can hide a whole collection.
Location setup checklist
Use this when adding a warehouse, shop or 3PL. Each item is something Shopify lets you configure; none needs an app.
- Name each location for what it is ("Main warehouse", "Shop: High Street", "3PL: partner name"), not for a person or a project.
- Check the plan's active location limit before signing a lease or a 3PL contract. Remember 3PL app locations do not count.
- Decide for each location whether its stock should be available for online orders, and set it.
- Confirm which location is the default, and that it is one you will not need to deactivate.
- Enter opening stock as on-hand counts, then move damaged, quality control and safety stock into Unavailable so Available is honest.
- Review the order routing rule order. New locations go to the bottom of the list.
- Run four test orders: one each to near and far addresses, one with items held at different locations, and one to another market if you sell abroad.
- If offering pickup or local delivery, set zones, a shipping zone for each pickup location, and decide whether store transfers are allowed.
- Decide which system is the source of truth for each location's counts (Shopify, the 3PL or an IMS) and write it down.
- Set up low-stock alerts (Flow, or an app on Starter) and a monthly count for each location.
When native Shopify is not enough
Native features are usually enough with a few locations, one or two channels and simple products. Look beyond them when one of these applies:
| Situation | Why native features struggle | Typical next step |
|---|---|---|
| Bundles or kits built from shared components | Stock is tracked per variant, not per component | Bundle app, or IMS with bill of materials |
| Several marketplaces with their own stock pools | Marketplace sync depends on each channel app | Multichannel IMS as source of truth |
| Reordering needs forecasting | The admin records POs but does not forecast | Inventory planning app |
| Routing depends on rules the admin cannot express | Custom Functions are Plus-only, by request | Plus with a custom Function, or an OMS |
| Subscriptions with complex routing | Custom routing Functions do not support subscriptions | Keep routing simple, or route in an OMS |
| Finance needs landed cost and multi-entity stock | Accounting depth is outside Shopify's scope | ERP integration |
Before adding another system
Adding a system brings sync delays, mapping work and another source of truth to argue with, so do it for a specific gap, not by default. The patterns are in our guide to inventory management integration and the wider Shopify business systems integration guide. If you need help mapping locations, routing and 3PL sync, ZSpace Labs offers Shopify development and integration work.
A note for India-based stores
Shopify's Shopify Payments country list does not include India, and Shopify says the Shop channel is available only in countries where Shopify Payments is supported. Features that depend on Shopify Payments or Shop will be limited for India-based stores. The inventory features in this guide (locations, states, routing, transfers, purchase orders) carry no country restriction on the pages we checked. The pages we checked do not say which 3PL partners serve India, so confirm with the partner.
Common mistakes
- Adding a shop as a location without switching off online fulfilment, so web orders get promised stock that is on the shop floor.
- Editing on-hand numbers to hide damaged stock instead of marking it Unavailable or writing it off with a transfer.
- Adding a location and forgetting that it sits at the bottom of the routing list.
- Relying on old guides that describe Shopify Fulfillment Network as Shopify's own warehouses, or that quote location limits from third parties.
- Uninstalling Stocky before exporting purchase orders and supplier data.
- Planning custom routing for a subscription business without checking the Function's limits.
Conclusion and next steps
Shopify's multi-location tools are stronger than many guides suggest. Locations, five honest stock states, rule-based routing, and transfers linked to purchase orders cover most growing stores. Start by making Available mean what it says, then set routing deliberately, then automate alerts. Add an inventory app or IMS only when you hit a gap from the table above. If you are moving off Stocky, export first and rebuild your purchase order process in the admin before your next peak.
Adding a warehouse, shop or 3PL?
ZSpace Labs is a remote-first technology studio that works with clients globally on Shopify builds and integrations. If useful, we can talk through your locations, routing rules and 3PL sync before you add the next one.
Sources
Shopify Help Center: Setting up your locations; Inventory states; Multi-managed inventory; Order routing; Local delivery; Pickup in store; Transfers; Stocky; Shopify Flow; Shopify Fulfillment Network; Shopify Payments supported countries; Shop channel.
Shopify developer docs and changelog: Order Routing Location Rule Function API; Greater flexibility for inventory transfers (6 January 2026); Purchase orders now create transfers (22 June 2026); New partners join Shopify Fulfillment Network (26 August 2025).
Industry: FreightWaves: Flexport completes acquisition of Shopify logistics business.
Accessed 15 October 2026. Plan limits, features and partner lists change; check Shopify's current pages before relying on them.
Common questions.
Shopify's help centre lists active location limits of 2 on Starter, 10 on Basic, Grow and Advanced, and 200 on Shopify Plus (checked 15 October 2026). Deactivated locations do not count, and apps that physically stock inventory for you, such as 3PL apps, are treated as locations but do not count toward the limit. Limits can change, so check the current page.