Guides › Shopify inventory discrepancy
Shopify inventory discrepancy: how to find it, fix it and keep it from coming back
Updated 9 November 2026 · 6 min read · ShelfTrue team
A Shopify inventory discrepancy is a product where Shopify's number and your warehouse's number disagree: Shopify shows 12, the shelf has 9, or Shopify shows 0 while the warehouse could ship 30. Whether your stock lives with a 3PL, in inventory software or in a spreadsheet, the way to find and fix it is the same. This guide walks through it in order: confirm, find, fix, keep it from coming back.
Why it costs money either way
- Shopify higher than the warehouse: customers can buy units you can't ship. You find out when the order can't be fulfilled, refund it, and sometimes lose the customer.
- Shopify lower than the warehouse: the product shows sold out while stock sits on the shelf. No error, no complaint, just sales that never happen.
The first kind is louder, so it gets fixed. The second kind is usually bigger over a year, because nobody notices it.
Step 1: compare the right two numbers
Most "discrepancies" people find are two numbers that were never meant to match. Shopify shows On hand, Committed, Unavailable and Available for every product at every location. Your warehouse or inventory software has its own set: on hand, allocated or committed, available or fulfillable, on order. Only one pair answers the same question on both sides: how many more units can go to new customers right now.
Compare Shopify Available with your warehouse's available (sometimes called fulfillable, or on hand minus allocated). Don't compare Shopify Available with the warehouse's on hand: the warehouse will look higher by every unit already promised to an order, even when nothing is wrong. Which Shopify number to trust, if the names are new to you.
Step 2: get one export from each side
- In Shopify, go to Products → Inventory, pick the location, and click Export. You get one row per product per location with Available, On hand and Committed.
- In your warehouse system or inventory software, export the stock report for the same location at about the same time. Most systems have a stock, availability or inventory report with the product code and the quantities.
- Put both in a spreadsheet, match rows on the product code (SKU), and subtract. Anything that isn't zero is a difference.
Take both exports within the same hour. Stock moves all day, and two exports taken hours apart will differ for timing alone.
Step 3: sort out the differences that aren't problems
Before fixing anything, take out the rows that only look wrong:
- Orders in flight. An order paid in Shopify a few minutes ago has taken its units out of Shopify Available, but the warehouse hasn't received it yet. The gap equals the units in those orders and closes by itself.
- Returns in flight. The opposite: the warehouse has put a returned unit back; Shopify hasn't yet.
- Safety stock on purpose. Many stores keep Shopify a few units below the warehouse so they never oversell. If Shopify is lower by the same amount on every product, that's a setting, not a problem.
- Different product codes. A product with no SKU in Shopify, or a SKU written differently on each side, can't be matched at all. It shows as "missing" on one side when it's really unlinked.
Step 4: find the cause for what's left
| What you see | Usual cause | Where to look |
|---|---|---|
| Shopify higher on a few products | The warehouse counted fewer than it thought it had: damage, picking errors, a miscount at receiving | The warehouse's adjustment or cycle-count history for those products |
| Shopify higher on many products at once | The warehouse app stopped updating Shopify, or a sale in another channel wasn't passed on | Shopify's inventory adjustment history: when did the warehouse app last write? |
| Shopify lower, often 0 | Units marked Unavailable in Shopify, an old oversell that left Available negative, or stock recorded at a location that doesn't sell online | The product's inventory section in Shopify, per location |
| Off by a round number (12, 24, 48) | Cases and units: the warehouse counts cases, Shopify counts units, or the reverse | How the product is set up on each side |
| Two apps keep changing the same product | Two systems both think they own Shopify's number | Adjustment history: the Created by column names each app |
Shopify's adjustment history is the most useful tool here. Open the product, find the Inventory section, click View adjustment history, and read who changed what and when.
Step 5: fix in the right order
- Fix the cause first. If the warehouse app stopped updating Shopify, restart it before you correct numbers, or they'll drift again tonight.
- Correct Shopify to what the warehouse can ship. For a handful of products, edit Available on the product page. For many, use Shopify's inventory CSV import with the same file layout the export gave you.
- Start with the products that cost most. Units at risk times price. A 2-unit gap on an expensive product matters more than a 20-unit gap on a cheap one.
Step 6: keep it from coming back
- Pick one day and time a week to repeat the two exports and the subtraction. Twenty minutes, same spreadsheet.
- Give every product a SKU, written the same way on both sides. Most unlinkable differences start here.
- Write down the safety stock you keep on purpose, so next time you don't chase it.
- Before a big sale, run the check the day before and the morning after. Most oversells come from a gap that was already there.
Related guides
- Why Shopify stock doesn't match ShipBob (and how to find which products)
- How to find paid Shopify orders that never reached ShipBob
- Shopify oversold but ShipBob has none: what to check first
- Shopify says sold out but ShipBob has stock
- ShipBob orders on hold, and why they make stock numbers differ
- Available, on hand, fulfillable: which stock numbers to compare
- How to check Shopify stock against ShipBob after Black Friday
- Shopify Available vs On hand vs Committed: which number to trust
- Cin7 Core and Shopify stock don't match: what to check
- Katana and Shopify stock don't match: what to check
- Mintsoft and Shopify stock don't match: what to check
- Inventory reconciliation for a Shopify store: a routine you can keep
- How to move Shopify inventory to a third-party warehouse, step by step
ShelfTrue does this check for you. Upload your warehouse's stock file, or have your warehouse email it to ShelfTrue, and it compares the matching pair of numbers for every linked product, takes out the differences that are only timing, and lists what's left with the money at risk and what to change. We can look, but never change anything at the warehouse.
Your first check is free.
Get my free stock check