Shopify inventory tracking is the setting that makes Shopify decrement stock automatically on every sale, instead of a merchant editing quantities by hand after the fact. It lives at the variant level — Track quantity, ticked or not, per SKU — and it only works as a system once locations, the Continue selling when out of stock toggle, and transfers between warehouses are configured to match how the business actually holds and moves stock. Most of what looks like a Shopify inventory bug is one of those settings left at its default on a SKU where the default was wrong.
What Do You Need Before You Turn On Shopify Inventory Tracking?
Shopify inventory tracking needs three things in place before the first setting change: a current physical count at every location that will report stock, admin access to Settings → Locations and to each product’s Inventory section, and a decision — made once, not per SKU as problems come up — about which products are genuinely backorderable and which should hard-stop at zero.
A store moving from spreadsheet or POS-native stock counts should not treat this as a Shopify configuration problem to solve after the fact. Every variant’s opening count has to be entered or CSV-imported before tracking goes live, because Shopify has no way to infer a starting quantity — a variant with tracking turned on and no count entered simply shows 0 Available until someone sets it, and a store that skips this step launches tracking into an immediate false stockout.
Step 1: How Do You Turn On Shopify Inventory Tracking for a SKU?
Turn on Track quantity in each variant’s Inventory section, and set Continue selling when out of stock per variant based on whether that specific SKU can genuinely be backordered.
Both settings live in the same place — Products → the individual product → Variants → Inventory — and they answer two different questions. Track quantity decides whether Shopify counts the SKU at all; off, it behaves as if stock were infinite and nothing on the inventory page ever moves for it. Continue selling when out of stock decides what happens once the count hits zero: on, the SKU keeps selling and its count goes negative; off, Shopify removes the buy button the moment Available reaches zero.
The mistake that causes most of the oversells traced back to Shopify is applying one of those settings uniformly across a catalogue instead of per SKU. A make-to-order or drop-shipped variant genuinely has no reason to stop selling at zero — Continue selling on is correct there. A finished-goods SKU with a fixed unit count does not have that property, and leaving Continue selling on for it converts a real stockout into an order the business has committed to but cannot fulfil on time.
Step 2: How Do You Set Up Locations So Multi-Warehouse Counts Stay Accurate?
Add every physical stock-holding site as its own location under Settings → Locations, and set which locations are enabled to fulfil online orders, so Shopify only offers stock from a place an order can actually be picked and shipped.
A Shopify location is not just a shipping address on file — it is the unit inventory is tracked against. A brand running a primary warehouse, an overflow space, and a retail store all report Available separately per location, and Shopify sums them for the storefront’s stock display but allocates a specific order to a specific location behind the scenes. A location left active for online fulfilment after it stops holding stock — an old 3PL relationship, a closed pop-up — keeps showing as sellable inventory until someone deactivates it, which is a common source of orders assigned to a place with nothing left to pick.
Location priority also decides which warehouse an order draws from when more than one holds stock. Under Settings → Shipping and delivery, the location order sets which site Shopify tries first; a store shipping mostly from one coast should have that location ranked above a smaller secondary site, or fulfilment defaults to whichever location happens to be listed first regardless of shipping cost or transit time.
Step 3: How Do You Read Committed, Available and Incoming Stock?
Read Available, not On hand, as the number that governs what a shopper can currently buy, and use Committed and Incoming to explain the gap between the two.
Shopify’s inventory page reports four figures per SKU per location: On hand is the physical count as entered or last adjusted. Committed is the portion of that count already allocated to orders that have not yet been fulfilled. Available is On hand minus Committed, and it is the figure the storefront actually checks before allowing a sale. Incoming is stock expected on an open transfer that has not yet arrived and does not count toward Available until it is marked received.
A SKU showing 60 On hand and 20 Available is not a discrepancy — it means 40 units already belong to unfulfilled orders. Reading On hand as if it were sellable stock is a common reporting mistake at $3M–$30M scale, where a merchandising or buying team pulls the wrong column into a reorder spreadsheet and ends up short, because the number they used was never the number available to sell in the first place.
Step 4: How Do You Transfer Stock Between Locations Without Losing the Count?
Create a transfer under Products → Transfers with an origin location, a destination location and an expected arrival date, then mark units received as they physically arrive rather than editing each location’s quantity by hand.
A transfer moves stock from Incoming at the destination to On hand only once it is received — partially or in full — which keeps a shipment in transit visible without prematurely making it sellable at the destination before it has actually arrived. Editing quantities manually instead of using a transfer breaks that visibility: the origin location’s count drops immediately, but nothing shows as Incoming anywhere, so a stock report pulled mid-transfer looks like inventory has simply vanished rather than being in a truck between two warehouses.
Partial receiving matters at volume. A transfer of 500 units that arrives as 480, with 20 damaged or lost in transit, should be received as 480 and the shortfall logged as a separate inventory adjustment with a reason — not force-received as 500 and quietly corrected later, which is how a damaged-goods discrepancy turns into an unexplained inventory write-off nobody can trace back to a specific shipment.
Step 5: How Do You Automate Low-Stock Alerts and Reorder Points?
Build a Shopify Flow workflow triggered on Inventory quantity changed, with a condition against each SKU’s real reorder point, rather than relying on someone opening the inventory page on a schedule.
Shopify’s native inventory page supports filtering to a low-stock view, but it has no built-in email or Slack alert — that has to be built, either in Shopify Flow (included on Shopify and Shopify Plus) or a third-party inventory app. A Flow workflow watching Inventory quantity changed, with a condition comparing the new Available figure to a stored reorder threshold per SKU, closes that gap without adding a separate inventory-management platform: the trigger fires on every relevant stock movement, and the condition step is what keeps it from notifying on every sale rather than only the ones that cross a threshold that matters.
Automating the alert is the point where inventory tracking stops being a reporting exercise and becomes an ops-automation problem: the setting is only as good as the workflow that reacts to it. A store that tracks accurately but checks the report weekly finds out about a stockout after it has already cost sales, not before.
Step 6: How Do You Connect POS or a 3PL Without Breaking the Count?
Give a Shopify POS location its own location record with Point of Sale enabled, and connect a 3PL as a distinct location whose Available count is written by the 3PL’s own sync rather than edited by hand in the admin.
Shopify POS shares the same inventory system as online — a register at a store location decrements the same Available count a website checkout would, in real time, provided that location is correctly enabled for Point of Sale under Settings → Locations. A register accidentally pointed at the wrong location, or a second till added without its own location assigned, sells against a count the storefront never sees change, which is how a product goes out of stock in the store while still showing as available online.
A 3PL relationship works the same way structurally: most 3PL integrations create a Shopify location representing the 3PL’s warehouse, and that location’s count is meant to be driven entirely by the integration’s sync from the 3PL’s own warehouse management system. Manually adjusting a 3PL location’s count in Shopify admin creates a second source of truth the sync will eventually overwrite, so any correction belongs in the 3PL’s own system first, with Shopify’s count following it rather than leading it.
What’s the Step Most Shopify Teams Get Wrong With Inventory Tracking?
The step most teams get wrong is leaving Continue selling when out of stock on for every SKU by default, instead of restricting it to the SKUs that are genuinely backorderable — which makes a real stockout and a planned backorder look identical on the inventory page.
Shopify’s inventory report shows the same thing for both cases: a negative or zero Available count, an active buy button, orders still coming in. Nothing in the admin distinguishes “this is a pre-order we can fulfil in three weeks” from “this SKU is out of stock and nobody has noticed yet” — that distinction lives entirely in whether the toggle was set deliberately per SKU or left at whatever it defaulted to when the product was created or duplicated. A catalogue where every product was cloned from a template with Continue selling already on inherits that setting silently, and the first sign anything is wrong is a customer emailing to ask where their order is.
The fix costs nothing to run — it is a review, not a new tool. Filter the inventory page to SKUs with Continue selling on, then check each one against the actual fulfilment promise for that product: genuinely backorderable stays on; everything else gets turned off so a real stockout removes the buy button instead of silently taking an order the business cannot ship.
How Do You Verify Shopify Inventory Tracking Is Actually Working?
Verify tracking by placing one real test order per fulfilment path — online checkout, POS, and 3PL if one is connected — and confirming Available drops by exactly one unit at the correct location within a minute of the sale.
A tracking setup that looks correct in the admin can still fail silently at one of three points: a variant where Track quantity never actually got ticked, a location not properly linked to the sales channel that sold from it, or a 3PL sync running on a delay long enough that Shopify’s count and the warehouse’s real count disagree for hours at a time. A single test transaction per channel catches all three faster than reading the settings screens, because it tests what actually happens on a sale rather than what the configuration claims will happen.
Repeat the same test after any theme change, app installation, or POS device swap — each of those has, in practice, been the point where a previously correct inventory setup silently stopped decrementing stock, usually because a new app claimed control of the same inventory API endpoint Shopify’s own checkout was already using.
Getting Shopify inventory tracking right is an ops-automation problem before it is a settings problem — every toggle in this guide only holds if something checks it and reacts to what it reports, rather than a person remembering to look. Pointerflow’s ops-automation work builds exactly that layer: workflows triggered on real inventory events, reorder points tied to actual sell-through instead of a guessed threshold, and a POS-to-3PL sync tested with a real transaction on every fulfilment path, not assumed to be working because nothing has broken yet. The catalogue-governance side of the same problem — keeping a product’s canonical record consistent once a second channel is involved — is covered in what a Shopify PIM actually does; the cost side of paying someone else to build the automation itself is covered in what a Shopify automation agency really costs.
Sources
No external figures are quoted; this article is written from how Shopify’s inventory settings, locations, transfers and Flow automation are configured and operated, cross-checked against Shopify’s own documentation for the terminology used for On hand, Committed and Available stock.