Inventory Management9 min readJune 1, 2026

Shopify Inventory Audit: How to Count Stock and Fix Discrepancies

Shopify's stock count is only as accurate as the last time someone checked it against reality. Returns get processed incorrectly, purchase orders get received in the system before physical stock arrives, and damaged units disappear without a Shopify adjustment. Over months, these errors compound into a gap between what Shopify shows and what you actually have. A structured inventory audit closes that gap — and a cycle counting schedule prevents it from reopening.

Shopify inventory audit dashboard showing discrepancies between physical and digital stock counts

Why Shopify Inventory Counts Drift From Reality

A Shopify inventory count starts perfectly accurate the moment you set it. Over time, without active maintenance, it drifts. The drift is not random — it comes from predictable, repeatable sources:

1–3%
typical inventory shrinkage rate for product-based businesses annually
65%
of retailers report inventory accuracy below 75% without regular audits
more likely to stockout if inventory records are more than 10% inaccurate

Full Stocktake vs Cycle Counting — Which to Use

You have two approaches to inventory auditing. They are not mutually exclusive — most merchants use both.

Full stocktake

Count every single SKU at every location in a single session. Shopify is usually paused for new orders during the count to prevent discrepancies from in-transit inventory. Full stocktakes are accurate but operationally disruptive — they require staff time, may require closing the store, and produce a point-in-time snapshot that starts drifting immediately after.

Best for: annual or semi-annual reconciliation, pre-season preparation before peak demand, or post-acquisition due diligence.

Cycle counting

Count a rotating subset of SKUs on an ongoing basis — for example, 10–15 products per week. Over the course of a year, every product gets counted at least once. High-velocity (A) items get counted more frequently because they have higher transaction volume and therefore higher discrepancy risk.

Best for: ongoing accuracy maintenance, catching discrepancies before they compound, and avoiding the disruption of an annual shutdown count.

Recommended approach

Run one full stocktake per year (typically before or after peak season). Supplement with weekly cycle counts — your top 20% of SKUs by velocity every 4–6 weeks, the rest quarterly. This catches most discrepancies quickly without requiring a full operational shutdown.

Step-by-Step: How to Run a Shopify Inventory Audit

  1. Export your current Shopify inventory

    Go to Shopify Admin → Products → Inventory. Click Export in the top-right corner. Select "Current inventory quantities" and your preferred format (CSV). This file is your expected count — what Shopify thinks you have at each location. Save it as your baseline before you touch anything else.

  2. Count physical stock

    Count every unit physically, by SKU and location. For a full stocktake: pause new order fulfillment during the count period (or count before business hours). For cycle counting: count only the selected SKUs for this week's rotation. Record physical counts in a separate column in the exported spreadsheet. Do not adjust Shopify yet — you need the comparison first.

  3. Compare physical vs digital counts

    Add a Discrepancy column to your spreadsheet: Physical Count − Shopify Count. Positive numbers mean you have more than Shopify shows (often from unreceived POs counted early in Shopify, or returns that weren't restocked). Negative numbers mean Shopify is overstating your stock (theft, damage, data entry errors). Flag every non-zero row for investigation.

  4. Investigate before adjusting

    Before changing any Shopify quantities, find out why the discrepancy exists. Check: open purchase orders (stock received physically but not yet marked received in Shopify?), recent returns (physical return disposed but inventory restored?), recent transfers between locations. Understanding the root cause prevents the same error from recurring after you fix the number.

  5. Adjust inventory in Shopify

    Go to Products → Inventory, search for the product variant, click the quantity for the relevant location, enter the correct quantity, and select an adjustment reason (Received, Return restock, Damage, Theft, Correction, or Other). Shopify logs every adjustment with a timestamp, reason, and quantity change. This audit trail is important for bookkeeping and for tracking which reason codes appear most frequently.

  6. Set a cycle count schedule and prevent recurrence

    The adjustment fixes the current number. The schedule prevents future drift. Classify your SKUs by velocity: A items (top 20% by sales) — count monthly. B items (middle 30%) — count quarterly. C items (bottom 50%) — count annually. Schedule it in your team calendar as a recurring task. Review your most common adjustment reason codes quarterly to identify systemic process problems (e.g., if "Received" discrepancies are common, your PO receiving process needs tightening).

How EZStock Reduces Inventory Discrepancies at the Source

Most inventory discrepancies in Shopify start at the purchase order receiving stage. When stock arrives, merchants often mark a PO as fully received in their system regardless of whether the physical count matches what was ordered. Over time, these small receive-quantity errors — 48 units received, 50 recorded — compound into significant inaccuracies.

EZStock's purchase order workflow addresses this at the point of receipt. When you mark a PO as received in EZStock, you can enter the actual received quantity for each line item — not just confirm the ordered quantity. EZStock then updates Shopify inventory with the real received quantity, not the ordered quantity. This prevents the most common source of drift before it starts.

EZStock also supports partial receipts: if a supplier ships 3 of 5 line items, you can receive only those 3, keeping the other 2 as "outstanding" on the original PO. Shopify inventory reflects what actually arrived, not what you expected to arrive.

Keep Shopify Inventory Accurate at the Source

EZstock's PO receiving workflow updates Shopify inventory with real received quantities — preventing the most common source of discrepancies before they accumulate.

Start Free 14-Day TrialNo credit card required · Installs in 60 seconds · Cancel anytime

Frequently Asked Questions

Does Shopify have a stocktake feature?
Shopify does not have a guided stocktake or cycle count workflow. You can manually adjust inventory quantities in Products → Inventory with a reason code and timestamp, but there is no native process for comparing physical counts to digital records. Most merchants export the inventory CSV, count physically, compare in a spreadsheet, and re-enter corrections into Shopify manually.
How do I fix inventory discrepancies in Shopify?
Go to Shopify Admin → Products → Inventory. Find the product variant, click the quantity number for the relevant location, enter the correct quantity, and select a reason (Received, Return restock, Damage, Theft, Correction, or Other). Always investigate the root cause of the discrepancy before adjusting — fixing the number without fixing the process means it will recur.
What is cycle counting for Shopify inventory?
Cycle counting is counting a rotating subset of SKUs on a recurring schedule instead of counting everything at once. You count 10–20 products per week throughout the year, rotating through your full catalog. High-velocity products get counted more frequently. By year-end, every SKU has been counted at least once without requiring a full operational shutdown.
How often should I audit Shopify inventory?
Run one full stocktake per year (before or after peak season). Use ongoing cycle counting for the rest of the year — count your top 20% of SKUs monthly, the middle 30% quarterly, and the remaining 50% annually. If you have high-theft product categories or multiple warehouses, increase frequency for those specific items.
What causes inventory discrepancies in Shopify?
The most common causes: purchase orders marked as fully received when partial quantities arrived, customer returns processed as restocked but items discarded, theft and damage not recorded as inventory adjustments, manual data entry errors, and multi-location transfers not recorded correctly. Review your Shopify inventory adjustment history and filter by reason code to identify which cause is most frequent in your operation.
EZStock

EZStock ‑ Inventory & Purchase Orders

Shopify inventory management with real purchase orders

Check it out on Product Hunt →
Share