Skip to content
Store slow, dated, or hard to edit? Request a Store Diagnostic
Running B2B on spreadsheets or email? Plan Your B2B Project
Integrations

Managing Multi-Warehouse Shopify Inventory Without Overselling

If you’ve recently split your stock between an Australian warehouse and an overseas one, usually the US, sometimes China, and started seeing orders come through for items that are actually out of stock at the location that’s meant to fulfil them, you’re not alone. This is one of the most common threads we see repeated, in slightly different words, across the Shopify Community forums: a merchant adds a second location, turns on inventory tracking at both, and within a few weeks starts overselling items that show as “in stock” on the storefront.

The short answer is that Shopify’s native multi-location inventory system was built to track stock levels, not to intelligently manage fulfilment risk across locations with different lead times, different currencies, or different sales channels feeding off the same product. It does exactly what you tell it to do. The problem is that most merchants don’t realise what they’re telling it to do until stock starts vanishing from the wrong warehouse.

This post walks through how Shopify actually decides which location fulfils an order, where the overselling risk specifically comes from when you’re running AU + overseas warehouses on one store, and the point at which native settings stop being enough and you need a dedicated inventory tool or ERP integration.

How Shopify Multi-Location Inventory Actually Works

Shopify’s location and inventory settings live under Settings > Locations in your admin. Every location you add, a warehouse, a 3PL, a retail store, a fulfilment centre, gets its own inventory count per product variant. A product isn’t “in stock” as a single number; it’s a set of numbers, one per location, that Shopify adds together to show the storefront total.

A few mechanics matter here:

  • Each variant’s total available stock is the sum across all active, stocked locations. If your Sydney warehouse has 20 units and your US warehouse has 15, the product page shows 35 available, even though 15 of those units are on the other side of the world.
  • Locations can be set to “not fulfil online orders” (in the location’s settings) if you want a location to hold stock without being eligible for fulfilment, useful for a location that’s purely for retail POS or quarantine stock.
  • Fulfilment priority is set per location via drag-and-drop ordering in Settings > Locations, or in more granular form through shipping profiles and delivery zones. Shopify tries to fulfil from the highest-priority location that has stock for all line items in the order, so it doesn’t split a single order across two warehouses unless it has to.
  • Local delivery, pickup, and shipping zones can be tied to specific locations, which is how Shopify decides that an Australian customer’s order should route to the Sydney warehouse rather than the US one, assuming you’ve set the shipping profiles up that way.

None of this is inherently broken. The mechanics are sound. The overselling risk shows up in the gaps between what the system is capable of and what most merchants actually configure.

Where the Overselling Risk Actually Comes From

1. Combined stock counts don’t reflect real availability

Because Shopify shows a combined total, a product can display “in stock” when the only units left are sitting in a warehouse that can’t realistically fulfil that customer’s order in an acceptable timeframe, or worse, in a location you’ve deprioritised for a reason (damaged stock, stock earmarked for a wholesale order, stock awaiting quality check). The storefront doesn’t know the difference between “in stock and ready to ship” and “in stock somewhere on the planet.”

2. Multiple sales channels reading the same pool

This is the pattern that comes up again and again in the Community forums: a merchant sells on their Shopify storefront, plus Instagram/Facebook Shop, plus sometimes a marketplace channel, and all of those channels pull from the same combined inventory number. If your US warehouse holds the bulk of stock for a fast-moving product and a wholesale customer or a bulk order clears it out overseas, every channel reflects that shortfall, but only after Shopify’s inventory sync catches up, which isn’t always instant, particularly with third-party channel apps that poll on a schedule rather than reacting in real time.

3. Fulfilment priority doesn’t equal stock protection

Setting location priority controls which warehouse Shopify prefers to fulfil from, it doesn’t stop a location from being oversold. If your AU warehouse is top priority but its actual stock count hasn’t been reconciled recently (common after a stocktake delay, a damaged-goods write-off, or a supplier short-shipment that hasn’t been logged yet), Shopify will happily keep allocating orders to it until the count hits zero, and by then you may have already taken orders for stock that doesn’t exist.

4. No native safety stock buffer

Shopify doesn’t have a built-in concept of “always keep 5 units back as a buffer” or “stop selling this variant online when combined stock drops below 10 because we need it for wholesale.” Native inventory tracking is a literal count-down. Anything that requires a buffer, a reserve, or a different stock rule per channel needs either manual discipline or an app.

5. Overseas warehouse lead time isn’t factored into “in stock”

A unit sitting in a US warehouse is still “in stock” as far as Shopify’s product page is concerned, even if getting it to an Australian customer takes three weeks and a customs process. This isn’t overselling in the strict sense, but it produces the same outcome from a customer experience standpoint, a promise the fulfilment side can’t back up on the timeframe implied.

For example, imagine a 150-SKU homewares store with a Melbourne warehouse and a secondary supplier-run warehouse in the US used for a handful of imported lines. A best-selling ceramic set has 4 units left in Melbourne and 18 in the US. The product page shows 22 available, so it keeps selling through both the Shopify storefront and an Instagram Shop feed. Six local orders come in over a weekend, Shopify allocates all of them to the Melbourne location because it’s set as top priority, even though only 4 units physically exist there. Two customers get an oversold notice on Monday, and the fix, a partial refund, an apology email, and an expedited air freight top-up from the US, costs more in staff time than the margin on the entire order. None of this required a system fault. It’s what the default configuration does when nobody has explicitly told it otherwise.

A Practical Checklist for Multi-Location Setup

Before you add a second location to a Shopify store, work through this:

  1. Map out fulfilment logic first, not after. Decide which shipping zones route to which location, and set this up in your shipping profiles before you go live with two locations, not after orders start misrouting.
  2. Set location priority deliberately in Settings > Locations, don’t leave it in the order Shopify assigned by default.
  3. Turn off “fulfil online orders” for any location that shouldn’t be sold from, quarantine stock, retail-only stock, wholesale-reserved stock.
  4. Reconcile stock counts on a fixed schedule, not ad hoc. Weekly at minimum for fast movers; more often around promotions or sale periods.
  5. Decide your buffer policy per product tier. High-velocity SKUs need a bigger safety margin than slow movers.
  6. Audit every sales channel connected to your store and confirm how each one syncs inventory, real-time webhook versus scheduled poll makes a real difference during a flash sale.
  7. Stress-test with a real scenario: place a test order that would exhaust the last unit at one location while the other still shows stock, and watch what actually happens end to end.

When Native Settings Aren’t Enough

For a straightforward setup, one AU warehouse, occasional overseas restock, low order volume, Shopify’s native location and priority settings are genuinely enough if configured properly. Where we consistently see merchants outgrow native settings:

  • Running three or more active locations with genuinely different fulfilment rules
  • Selling across multiple channels where sync speed matters (flash sales, drops, high-velocity SKUs)
  • Needing safety stock buffers that differ by product or by channel
  • Wanting real-time two-way sync with a warehouse management system, 3PL, or ERP rather than manual CSV updates
  • B2B or wholesale allocations that need to be walled off from the online storefront’s available count

At that point, a dedicated inventory management app or an ERP/WMS integration becomes the more reliable path, something that can enforce buffers, sync in real time across every channel, and give you a single source of truth that isn’t just “whatever the last CSV import said.” If you’re already seeing oversells creep in, or you’re about to add a second location and want the fulfilment logic and safety buffers set up correctly the first time, it’s worth getting a second set of eyes on the setup before it becomes a support-ticket problem. That’s the exact kind of work covered under Shopify inventory management integrations, connecting the right tools so stock counts, locations, and sales channels stay in sync without you manually policing it.

Frequently Asked Questions

Does Shopify automatically stop selling a product when one location runs out of stock?
No. Shopify combines stock across all active locations into a single available number, so a product stays purchasable as long as any location still shows units, even if the specific location that should fulfil that order is empty. This is the core mechanic behind most multi-location oversell issues.

Can I stop a specific warehouse from being used for online orders?
Yes. In Settings > Locations, open the location and disable “This location can fulfil online orders.” That location’s stock still counts unless you also stop tracking inventory there, so use this alongside fulfilment priority and shipping profile rules, not instead of them.

Do I need an app to prevent overselling, or can I do it with native Shopify settings?
For simple two-location setups with careful manual reconciliation, native settings can work. Once you’re running multiple sales channels, need safety stock buffers, or want real-time sync with a warehouse or ERP system, a dedicated app or integration becomes the more reliable option, manual reconciliation doesn’t scale past a certain order volume.

Why does my inventory count look right in Shopify admin but wrong on Instagram or Facebook Shop?
Third-party sales channels sync inventory on their own schedule, which isn’t always instant. If stock sells out on your storefront or another channel first, there can be a lag before the connected channel reflects the new count, which is exactly the window where oversells happen during busy periods.

Should I keep separate SKUs for AU and overseas stock instead of combining them at one location group?
Generally no, splitting SKUs breaks your reporting and makes reordering harder. The better fix is usually getting fulfilment priority, shipping profiles, and stock buffers configured correctly so the existing multi-location structure routes and protects stock the way you need it to.

Ready for a proper look at your setup?

If oversells are already happening, or you’re planning a second warehouse and want it configured right from day one, book a Shopify audit and we’ll go through your locations, channels, and fulfilment logic together. It’s a practical, no-hype way to find out exactly where the risk is before your customers do.

Niraj Raut
Written by Niraj Raut SEO Manager

Niraj Raut is the SEO Manager and co-founder at Nexly. He helps Australian Shopify and Shopify Plus brands earn durable organic growth through technical SEO, search-led store architecture and content that ranks. He writes about what actually moves rankings for ecommerce.

Connect on LinkedIn
Have a Shopify project? Chat with us, takes 30 seconds.