ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides17 min read

Inventory management in Shopify: the complete guide

How inventory management in Shopify actually works — the native tools, a setup that scales to 1,000 SKUs, the weekly rhythm, and the gaps to fill.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Inventory management in Shopify covers the operational core natively: per-variant tracking, multiple locations, purchase orders, transfers, physical counts, ABC analysis (plan-dependent — Basic and Lite plans need an app for it), CSV exports and imports, and a set of on-hand and sell-through reports. What it doesn't cover is the thinking — no demand forecasting, no reorder recommendations, no tracking of how long suppliers actually take to deliver, and no record of what a day out of stock cost you. Shopify's own documentation sends merchants to third-party apps for those jobs (Shopify Help Center, "Inventory management", accessed Oct 2026).

This guide covers the native toolkit as it actually works in October 2026, a setup sequence that holds up at 1,000 SKUs, the daily/weekly/monthly rhythm that keeps a store of that size honest, and a straight answer on where native ends and apps begin.

What native Shopify inventory gives you — and where it ends

If you run a Shopify store with inventory tracking turned on, every sale decrements stock, every purchase order receipt increments it, and every manual adjustment is logged. Multiply that by locations and channels — web, POS, draft orders — and you have a system that reliably answers one question: what do I have, right now, and where is it?

That's the honest scope. Here's the full native toolkit:

Capability What it does natively What it doesn't do
Inventory tracking Per-variant, per-location counts with available/committed/on-hand states No history of why a number drifted beyond the adjustment log
Locations Separate stock per warehouse, store, or stockroom; fulfillment priority ordering No per-location demand forecasting or automatic rebalancing
Purchase orders & transfers Create POs, receive against them, move stock between locations No reorder suggestions, no lead-time measurement
Counts Native count tool with barcode scanning via the Shopify mobile app No cadence management — the schedule is on you
ABC analysis Grades variants A/B/C by selling rate Grades, but doesn't act — no count or reorder plan attached
CSV export/import Bulk edits, stock snapshots, migration between tools Snapshots are manual; nothing accumulates automatically
Inventory reports On-hand quantities, sell-through rate (plan-dependent) No forecast, no lost-sales estimate, no reorder recommendation

One recent change worth knowing: Shopify's free Stocky app — the planning layer for POS Pro merchants — was retired on August 31, 2026. As of October 2026, planning happens in the native admin tools plus whatever apps you add (Shopify Help Center, accessed Oct 2026). Native POS merchants who were counting on Stocky are part of why third-party planning apps now crowd this category.

The native toolkit, accurately

Inventory tracking: per variant, per location

Tracking is a checkbox on each variant. With it on, Shopify maintains three quantities per variant per location: available (sellable), committed (ordered, not yet shipped), and on-hand (the sum). As of an August 2026 platform change, draft orders and outgoing transfer shipments also count as committed (Shopify developer changelog: Draft order and transfer/shipment inventory is moving from reserved to committed).

The per-variant design matters in practice. Tracking is not a store-wide switch, so variants created by CSV import, by an app, or by a teammate who missed the checkbox can sit untracked — selling forever, never decrementing. Stores with large catalogs almost always find a few of these on their first audit. The fix is a products CSV export with the tracking columns, scanned for "off" rows, plus a standing rule: new product means tracking on and a real quantity entered.

A quick read of the three states, with numbers. Say a candle variant has 100 units on the shelf and 12 units in open orders. Shopify shows available: 88 (what the storefront will keep selling), committed: 12 (claimed by orders, not yet shipped), on-hand: 100 (what physically exists). Every report and every export uses these states, so knowing which one you're looking at prevents most "the numbers don't match" confusion — the shelf matches on-hand; the sellable promise matches available.

Locations

Locations are where stock physically lives — warehouse, retail store, stockroom, returns shelf. Each location holds its own counts, channels draw from them (you choose which locations fulfill online orders and in what priority order), and POS sells from the store's location. Three setup habits prevent most location problems:

  • Don't create a location for anything nobody reconciles. A "returns" location that isn't counted becomes a black hole.
  • Check which locations fulfill online orders in Settings → Locations — a location excluded from online fulfillment holds sellable-looking stock the webstore will never show.
  • Move stock with transfers, not by typing corrections. A transfer creates a paper trail; a silent edit doesn't.

Purchase orders, transfers, counts, and supplier records

Purchase orders are native: you create a PO against a supplier and location, receive it fully or partially, and stock increments as you receive. Transfers move stock between your own locations with in-transit tracking. The native count tool (see below) closes the loop on drift. Supplier records store who you buy from. One 2026 development: Shopify shipped a Purchase Order Read API on September 17, 2026, letting apps read your PO history — a sign native POs are becoming connective tissue rather than a dead end (Shopify developer changelog: Purchase Order Read API).

What native POs don't do: suggest what to order, track whether a supplier actually delivers in the time they promise, or cost out landed goods. They record intent and receipt. The judgment stays with you.

ABC analysis

The admin's ABC analysis (where your plan includes it — Basic and Lite need an app) grades your variants into A, B, and C buckets by selling rate — your 20% of SKUs that drive 80% of revenue land in A. Two practical uses: count A items more often (they move fastest, so they drift fastest and hurt most when wrong), and spend your reorder attention where it pays. It's a grading tool, not a workflow — nothing automatically counts, reorders, or alerts based on the grade. You supply the cadence. (We give one below.)

To make the grading concrete, take a hypothetical 1,000-SKU store: its A lines might be around 190 SKUs driving the large majority of revenue, with B and C sharing the rest — the exact split is yours to measure, but the shape (revenue concentrated at the top) is why uniform treatment fails. Counting all 1,000 SKUs on one schedule wastes effort on the tail that barely moves; reordering all of them on the same cadence ties cash up in C items nobody is asking for. The grade is what makes a two-hour weekly rhythm possible instead of a two-day one.

Inventory CSV export and import

Products → Export gives you a CSV with quantities per variant per location; import applies changes in bulk. Three uses that matter week to week:

  1. Bulk corrections after a count or a bad import.
  2. Snapshots — export every Monday, save with a date, and you've built a stock history native Shopify doesn't keep for you. (We build on this in the inventory reports guide.)
  3. Audits — the fastest way to find untracked variants or phantom stock.

Inventory reports and demand visibility

The Analytics section carries inventory reports — on-hand quantities by location and a sell-through rate report among them. Exact availability varies by plan; check your own admin's Analytics section, since Shopify gates some reports by subscription tier (Shopify Help Center, "Shopify reports and analytics", accessed Oct 2026). If you've entered cost per item on each variant, profit reports can calculate margin per product rather than pretending everything costs nothing.

What the reports won't show: how many days each SKU spent at zero, what those days cost, or when anything needs reordering. More on that in the gap section.

A setup sequence that scales

Order matters here. Done in sequence, each step makes the next one cheap. Done out of order — usually by turning on tracking before fixing locations — you end up re-entering counts.

1. Get locations right first. Create one location per place stock physically lives and will be counted. Turn off online fulfillment for locations that can't ship (a stockroom behind a retail store doesn't need its own web orders). Delete nothing with stock on it; transfer it out first.

2. Turn tracking on for every variant. Not most — every. Export the products CSV, filter for variants with tracking off, fix them in one import, and enter real quantities as you go. Untracked variants are the leading cause of the worst kind of overselling: the kind that looks like a Shopify bug but is a checkbox (the full failure list lives in the overselling guide).

3. Enter cost per item. On each variant, in the pricing section. It takes an afternoon for 1,000 SKUs and it buys two things permanently: profit reports that mean something, and inventory valuation you can hand to an accountant without apologizing for.

4. Set up suppliers and start raising POs. Enter supplier records, then run your first purchase orders through the native tool even if your reorder quantities are gut-feel. Receiving against POs keeps increments honest, and PO history becomes the raw material for better reorder math later (the formulas live in the reorder point guide).

5. Pick a count cadence before you need one. Decide now: A items counted monthly, B quarterly, C twice a year — the ABC grading from the last section gives you the buckets. Write the schedule down. A count system you improvise is a count system you skip (the full workflow, including a worked 500-SKU schedule, is in the inventory counts guide).

6. Set low-stock alerts. As of October 2026 there is no built-in low-stock email alert in the core admin — Settings → Notifications covers customer, staff, and webhook notifications only. Your native options are saved low-stock views on the Inventory page (a manual tripwire you check yourself) and Shopify Flow automations that email you when inventory crosses a threshold you define. Set the threshold generously — alerts are a tripwire, not a reorder plan, because a threshold knows nothing about how fast you sell or how slow your supplier ships. (Why alerts alone fall short is its own discussion — the short version is that an alert tells you a number got small, never what to do about it.)

Steps 1–6 take a working week for a 1,000-SKU store if you do them cold, less if your data is clean. From there, the system runs on rhythm rather than setup.

The operating rhythm for a 1,000-SKU store

Assume the usual ABC shape: in a 1,000-SKU store, that's the roughly 190 A items the grading example above puts at the top of the revenue concentration, with B and C sharing the tail. Here's a time budget that keeps the numbers trustworthy without eating your week:

Cadence Time What happens
Daily 10–15 min Receive POs same day; scan for negative or zeroed stock on A items; check overnight oversells
Weekly 45–60 min Reorder review on A items (days of cover × lead time); this week's cycle count batch; update any supplier lead-time notes
Monthly 2–3 hrs Finish the A-item count cycle; re-grade ABC; review slow movers and dead stock; export and file a stock snapshot

The daily block is mostly receiving. Unreceived POs are the quiet killer: stock arrives, sits unrecorded, and the next count looks like shrinkage. Receive everything the day it lands.

The weekly block is where buying happens. For each A item: days of cover left, lead time, order quantity. If that review runs on gut feel, it stalls the moment things get busy — which is exactly when stockouts happen. A written formula beats intuition under pressure, even a rough one.

One worked row from a real weekly review, to show how little math is involved: an A-item vase sells 2.4 units a day (last 30 in-stock days), shows 38 available, and your supplier's lead time is 45 days. Days of cover = 38 ÷ 2.4 ≈ 16 days. Sixteen is nowhere near 45 — order now, at roughly lead-time demand (2.4 × 45 = 108 units) plus whatever buffer you keep. The whole A-list review is that calculation repeated, and a spreadsheet column or an app can do all of it; the point is that the native system gives you the inputs (reports, exports) but never runs it.

The monthly block is hygiene. Re-grade ABC because velocity shifts with seasons; a former A item nobody re-graded becomes a B item that's now miscounted. This is also where dead stock gets caught — SKUs with no sales in 90+ days belong in a deliberate review, not in a corner of the warehouse where they quietly consume rent and insurance.

Total honest cost: about 12–15 hours a month for a 1,000-SKU store, mostly in the daily 15 minutes. That's the price of trusting your own numbers — and it's the floor, because the native system tracks but doesn't think.

Where native inventory management ends

Four gaps matter at this store size. None of them are bugs; Shopify's docs explicitly route merchants to third-party apps for planning and forecasting (Shopify Help Center, accessed Oct 2026).

No demand forecasting. Native reports describe the past. Nothing projects next month's demand, adjusts for growth or seasonality, or tells you that a bestseller will run dry in 11 days.

No reorder intelligence. The low-stock alert fires at a threshold you set once. It doesn't know your lead times, your supplier's reliability, or your sales velocity — so it can't tell you when to order, only that a number got small.

No lead-time awareness. You can store supplier records, but nothing measures how long they actually take. A supplier quoted at 30 days who delivers in 41 will silently break every reorder plan built on the quote — 11 days of demand arrives with no stock ordered to cover it, and the first symptom is a bestseller at zero with nothing inbound. This is one of the most expensive unknowns in small-store buying, and native Shopify has no place where the answer lives.

No stockout-loss visibility. When a variant sells out, Shopify records zero sales that day — the same as a day of no demand. Nothing tallies the days you were dark, and nothing estimates the revenue those days cost. We checked Shopify's developer changelog through October 2026: no stockout or lost-sales analytics have shipped. The stakes are real: in the landmark 2002 out-of-stock study commissioned by the Grocery Manufacturers of America, 31% of shoppers who hit an empty shelf bought the item at another store, and 26% bought a different brand — the demand doesn't wait for your restock.

A worked example of what that blindness costs. Say one $28.99 candle SKU sells 3.2 units a day when in stock, and it sat at zero for 9 days after a promo. Native Shopify shows that period as flat — zero demand, nothing to see. In reality it's roughly 29 estimated lost sales, or an estimated ~$839 of revenue, based on velocity measured from in-stock days only. Native reporting cannot produce that sentence; the data isn't kept.

When to add a tool

Add software when the manual rhythm breaks, not before. The usual breaking points: you miss a reorder and eat a stockout, or you over-order and eat the cash. More specifically, these are the signals operators report at the boundary:

  • The weekly reorder review gets skipped twice in a row — it's grown past what one person can eyeball.
  • A supplier changed their delivery time and the first warning was an empty shelf.
  • You ran a promo, sold out, and can't say what the dark days cost.
  • Two people now make buying decisions and disagree, with no shared number to arbitrate.

The category splits into price bands (App Store listings, accessed Oct 2026):

  • $0 — native admin plus disciplined CSV snapshots. Works to a few hundred SKUs, breaks on reorder math.
  • $5–15/mo — lightweight counting and tracking apps (Stockroom is free; Stockie runs $4.99–59.99; Tallyfold is $5 read-only).
  • $10–30/mo — planning light. This is where InventoryX is being built: a stockout-days ledger per SKU, reorder points built on in-stock-only velocity, and a weekly buying list — it deliberately doesn't touch markdowns, bundles, or multichannel sync.
  • $50–200/mo — full demand planners (Prediko $49–199 GMV-gated, Sumtracker $59–119, Fabrikatör $99–199, Assisty free–$199).
  • $349+/mo — ERP territory (Cin7 Core), more system than a sub-$2M store usually needs.

If you're comparing apps, the honest rundown is in the best Shopify inventory apps roundup, and the price-band math in what Shopify inventory software actually costs. If your store runs heavily on POS, read the POS-specific inventory guide first — retail-first stores have failure modes D2C stores never see.

Common questions

Does Shopify have inventory management built in? Yes — per-variant tracking, multiple locations, purchase orders, transfers, physical counts, ABC analysis (plan-dependent), CSV export/import, and on-hand and sell-through reports are all native as of October 2026. What it doesn't cover is the thinking: no demand forecasting, no reorder recommendations, no lead-time measurement, and no record of what a day out of stock cost you.

How does inventory tracking work in Shopify? With tracking on, Shopify maintains three quantities per variant per location: available (sellable), committed (claimed by orders, not yet shipped), and on-hand (the sum). Every sale decrements stock, every PO receipt increments it, and every manual adjustment is logged. Tracking is a per-variant checkbox, so variants added by CSV import or an app can sit untracked — worth auditing with a products CSV export.

Is Shopify's ABC analysis useful for a small store? It's a grading tool, not a workflow — it grades variants A, B, and C by selling rate but attaches no count schedule or reorder plan. Its practical uses: count A items more often (they drift fastest and hurt most when wrong) and spend reorder attention where it pays. Pair it with a cadence you set yourself, like A monthly, B quarterly, C twice a year.

Does Shopify have low stock alerts? Not a built-in email alert, as of October 2026. Settings → Notifications covers customer, staff, and webhook notifications only, and the Inventory page has no threshold setting. Your native options are saved low-stock views on the Inventory page (a tripwire you check yourself) and Shopify Flow automations that email you when inventory crosses a threshold you define.

When should I move from spreadsheets to inventory software? When the manual rhythm breaks, not before. The usual signals operators report: the weekly reorder review gets skipped twice in a row, a supplier's changed delivery time surfaces as an empty shelf, or you ran a promo, sold out, and can't say what the dark days cost. Those are the points where recording stops and deciding needs help.

Where to go next

For the monthly cadence that ties these tools together, see the inventory planning process.

Three paths out of this guide, depending on what's loudest right now:

The native toolkit is genuinely good at what it does: one source of truth for what you have and where. Everything beyond that — the forecasting, the reorder timing, the cost of being dark — is a layer you add deliberately. Now you know exactly where the floor is.