— 2026 — AUG 22, 2026 —

Why Your Shopify Inventory Is Wrong and How to Find Out

Shopify says 40. The warehouse counted 31. Somebody suggests the sync app is broken and somebody else suggests switching apps. Both are guesses. Inventory drift has a small number of causes, they leave different fingerprints, and you can identify which one you have in about an hour without writing any code. Work through them in this order, because the cheap checks eliminate the expensive explanations.

First, decide which number is actually wrong

Before diagnosing a sync, confirm there is one to diagnose. Do a physical count of five or six fast moving SKUs and compare against Shopify.

If the physical count matches Shopify but disagrees with your ERP or warehouse system, the problem is downstream and Shopify is fine. If the physical count disagrees with both, you have a receiving or picking accuracy problem and no software will fix it. Only when Shopify and the physical count disagree, with the other system matching reality, are you looking at a sync issue. A surprising share of "sync problems" turn out to be counting problems, and this check costs twenty minutes.

Second, read the adjustment history

This is the single most useful screen in the admin for this problem and most merchants have never opened it. For an affected product variant, look at the inventory adjustment history. It shows what changed, when, and what caused it.

You are looking for a pattern, not a value:

  • Rapid back and forth changes from different sources. One app sets 100, another sets 95, the first sets 100 again. That is two apps fighting, covered below.
  • A large correction at a fixed time each day. A batch sync overwriting rather than reconciling.
  • Nothing at all since a certain date. A sync that silently stopped. Check the app's connection status and its authentication.
  • Manual adjustments. Someone in the admin fixing numbers by hand, which usually means the real fix never happened.

Nine times out of ten the history names your culprit before you have opened anything else.

Cause one, two apps writing to the same inventory

This is the most common cause in stores with a mature app stack, and it is invisible until you look for it. Count how many installed apps can write inventory: a fulfilment or 3PL app, a returns app, a marketplace connector, a forecasting tool, a POS integration, a bundling app. Each believes it knows the correct quantity.

Two systems that disagree will keep overwriting each other indefinitely, and the number you see depends on which one wrote last. The fix is not technical. It is deciding which single system is the source of truth for stock and removing write access from everything else. Almost every store with this problem has never made that decision explicitly.

Cause two, bundles that do not deduct components

If you sell bundles or kits, check this before anything else. Shopify does not automatically deduct component stock when a bundle sells unless the bundle is built with something that handles it.

The fingerprint is distinctive. Component SKUs show healthy stock in Shopify while the shelf is empty, and the gap grows in proportion to bundle sales. Stores selling combo packs, festive hampers and gift sets in India hit this constantly, usually discovering it during the season when it costs the most.

Cause three, location mapping

Multi-location is where quiet failures live. Stock exists, but at the wrong location, so Shopify's routing will not allocate it to the orders you expect.

Check that every location in Shopify maps to exactly one real place, that no legacy location is still active from a 3PL you stopped using, and that your integration writes to the location it thinks it does. A store running a warehouse, a retail counter and a 3PL has three chances to get this wrong, and a store that added a dark store last quarter has four.

Cause four, missed events with no reconciliation

Most integrations are event driven, and merchants assume events are reliable. Shopify does not make that promise. Its webhook documentation states that "Webhook delivery isn't always guaranteed, and your app can miss or mishandle events," and separately that "Shopify doesn't guarantee ordering within a topic, or across different topics for the same resource."

So events can be lost and events can arrive out of order. A single missed inventory event produces a gap that never closes on its own, because nothing goes back to check. The fingerprint is drift that appears without any visible adjustment, and that grows slowly rather than jumping.

The fix is a reconciliation job that pulls current state on a schedule and compares it against the other system. Shopify's own documentation recommends exactly this rather than trying to make webhooks perfect.

Cause five, you are reading the wrong number

Sometimes nothing is broken and the report is lying. Shopify tracks quantities per location across several named states, including on_hand, available, committed and reserved. On hand equals committed plus unavailable plus available, so a product can show plenty on hand while very little is sellable.

This bites hardest when someone compares a warehouse total against Shopify's available figure and concludes there is a sync problem. There is not. There is an unfulfilled order backlog. This got more confusing in August 2026 when draft order holds moved from reserved to committed, which changed what bucket-level reports show without changing what is sellable.

Cause six, SKU mismatches

Last on the list because it is easy to check and boring, but it is the leading cause in stores with any external integration. Export SKUs from both systems and compare exactly. Look for case differences, trailing spaces from spreadsheet pastes, duplicates, and products with no SKU at all.

An integration cannot match what it cannot identify, so unmatched SKUs simply do not sync and nothing raises an error. If your match rate is below 95 percent, stop diagnosing and fix the data. We go deeper on this in our piece on what breaks in Shopify ERP integrations.

What a store that does not drift looks like

Once you have fixed the immediate problem, three things keep it fixed, and none of them require new software.

One system owns stock and everything else reads from it. That decision is written down somewhere, so the next app anyone installs does not quietly become a second writer. A scheduled reconciliation compares the two systems and reports the gap to a person, not just to a log file nobody opens. And someone counts a rotating sample of SKUs on a schedule rather than waiting for the annual stocktake, because a physical count is the only check that catches errors both systems share.

Stores with those three habits still get drift. They just find it in a day, when it is a rounding problem, instead of in a quarter, when it is a purchasing decision made on bad numbers. That difference is worth more than any app on the list.

How do I check inventory adjustment history in Shopify?

Open the product, select the variant, and view its inventory history. It lists adjustments with the time and the source that made them. Comparing the source column against your installed apps is usually enough to identify which system is overwriting the others.

Why does Shopify show stock when the warehouse is empty?

The usual causes are bundles that never deducted their components, a sync that stopped without alerting anyone, stock sitting at a different location than you expect, or a SKU that never matched between systems so it was never being updated at all. Check the adjustment history first, since a variant with no recent entries points straight at a stopped sync.

Can two apps overwrite each other's inventory?

Yes, and it is common. Any app with inventory write permission can set quantities, and two apps with different views will keep correcting each other. Pick one source of truth and remove write access from everything else. This is a configuration decision, not a bug in any of the apps.

Does Shopify deduct bundle components automatically?

Not on its own. Unless your bundles are built with something that handles component deduction, selling a bundle will not reduce the stock of its parts. Verify this with a test order before your next campaign rather than after it.

How often should inventory reconcile?

Daily is enough for most Indian D2C brands, and hourly during peak periods or campaigns. The point is not frequency, it is that a scheduled comparison exists at all, so a gap is caught in a day instead of at the next stock count.

Get your inventory drift diagnosed

Free diagnosis. Email hello@exactwhy.com with subject "Inventory drift" and a screenshot of the adjustment history for one affected variant, plus a list of apps with inventory access. We tell you within 4 hours which of the causes above you have. Most of the time it is one of the first three and you can fix it yourself.

Paid integration work, Rs 40,000 to Rs 1.5 lakh. We establish a single source of truth, fix location and SKU mapping, handle bundle deduction properly, and add a reconciliation job so the next gap surfaces in a day.

Ongoing Shopify development, Rs 20,000 to Rs 50,000 a month. Including monitoring so drift is caught before a customer finds it.

The reason to work through this in order is that the expensive answer, replacing your integration, is almost never the right one. Most drift traces back to two apps disagreeing or a few hundred SKUs that never matched, and both are configuration problems you can solve this week.

Parth Sojitra
Parth Sojitra

Other Blogs

2026
Returns and Exchanges That Do Not Destroy Your Margin
Aug 25, 2026
Parth Sojitra
2026
Six Shopify Changes That Already Broke Something on Your Store
Aug 24, 2026
Parth Sojitra
2026
Selling Overseas From India on Shopify Without Duty Surprises
Aug 23, 2026
Parth Sojitra
2026
Fixing Shopify Customer Account API Errors in Hydrogen
Aug 21, 2026
Parth Sojitra
2026
The Shopify Login Popup Is Gone and What Replaces It
Aug 20, 2026
Parth Sojitra
2026
Shopify Has No Phone Login and Indian D2C Feels It Most
Aug 20, 2026
Parth Sojitra
2026
Why Your Shopify Customers Never Get Their Login Code
Aug 20, 2026
Parth Sojitra
2026
Best Way to Upgrade Shopify Legacy Customer Accounts
Aug 20, 2026
Parth Sojitra
2026
Shopify Legacy Customer Accounts and Where Auth0 Fits In
Aug 20, 2026
Parth Sojitra
CAREER
Why I Traded Cricket at Fifteen for Freedom at Twenty Five
Aug 20, 2026
Parth Sojitra
2026
How to Read a Shopify Quote Before You Sign Anything
Aug 20, 2026
Parth Sojitra
2026
What Actually Breaks When You Connect Shopify to an ERP
Aug 19, 2026
Parth Sojitra
2026
Your Shopify Inventory Buckets Changed on 5 August 2026
Aug 14, 2026
Parth Sojitra
2026
Why Your Shopify Checkout Validation Needs to Move to Functions
Aug 13, 2026
Parth Sojitra
2026
Your Shopify Store Became an AI Agent Endpoint on 5 August
Aug 12, 2026
Parth Sojitra
2026
How to Rebuild What Shopify's Checkout Deadline Removes
Aug 11, 2026
Parth Sojitra
2026
What Breaks on Shopify's August 26 2026 Checkout Deadline
Aug 06, 2026
Parth Sojitra
2026
How to Cut COD RTO Losses on Shopify India in 2026
Aug 06, 2026
Parth Sojitra
2026
Shopify Analytics Setup for Growth 2026 (What Matters)
Aug 05, 2026
Parth Sojitra
2026
Shopify to Shopify Plus Migration in 2026 (Upgrade Guide)
Aug 04, 2026
Parth Sojitra
2026
Best Shopify Agencies for B2B and Wholesale in India in 2026
Aug 03, 2026
Parth Sojitra
2026
Shopify Speed Optimization Services Cost India 2026 Compared
Aug 02, 2026
Parth Sojitra
2026
BigCommerce to Shopify Migration in 2026 (Complete Cost Guide)
Aug 01, 2026
Parth Sojitra
2026
Shopify Theme Customization Cost India 2026 (Real Pricing)
Jul 31, 2026
Parth Sojitra
2026
BFCM 2026 Emergency Prep (120 Days Left, Critical Checklist)
Jul 30, 2026
Parth Sojitra
2026
Shopify Landing Page Design Cost India 2026 (Real Numbers)
Jul 29, 2026
Parth Sojitra
2026
Shopify Plus vs Advanced (Which One Do You Need in 2026)
Jul 28, 2026
Parth Sojitra
2026
Shopify Custom App Development Cost India 2026 (Real Numbers)
Jul 27, 2026
Parth Sojitra
2026
Shopify SEO Services Cost in India 2026 (Pricing Guide)
Jul 21, 2026
Parth Sojitra
2026
WooCommerce to Shopify Migration India 2026 (Cost Guide)
Jul 21, 2026
Parth Sojitra
2026
Book a Free Shopify Strategy Call in 2026 (What Happens)
Jul 20, 2026
Parth Sojitra
2026
Shopify Store Redesign Cost in India in 2026 (Real Numbers)
Jul 19, 2026
Parth Sojitra
2026
What Is the Best Solution After Magento End of Life in 2026
Jul 18, 2026
Parth Sojitra
2026
What Is the Best Solution After Adobe Commerce End of Life
Jul 18, 2026
Parth Sojitra
2026
Shopify Emergency Support in India (24-Hour Response Guarantee)
Jul 18, 2026
Parth Sojitra
2026
GST Setup for Indian Shopify Merchants in 2026 (Complete Guide)
Jul 17, 2026
Parth Sojitra
2026
BFCM 2026 Prep Booking Window Is Closing (133 Days Left)
Jul 17, 2026
Parth Sojitra
2026
WhatsApp Business API for Shopify India in 2026 (Complete Guide)
Jul 16, 2026
Parth Sojitra
2026
Adobe Commerce End of Support 2026 (What Merchants Must Do)
Jul 15, 2026
Parth Sojitra
2026
Shopify Audiences vs Meta and Google Ads for DTC Brands in 2026
Jul 15, 2026
Parth Sojitra
2026
Shopify Subscription Commerce in 2026 (What Works for Brands)
Jul 14, 2026
Parth Sojitra
2026
Shop Pay in India 2026 (What Actually Works for Indian Merchants)
Jul 13, 2026
Parth Sojitra
2026
Best Shopify Agency for Beauty Brands in India in 2026
Jul 12, 2026
Parth Sojitra
2026
Shopify Flow Automation Recipes for Indian DTC Brands in 2026
Jul 12, 2026
Parth Sojitra
PLUS FEATURES
Shopify Winter 2026 Editions Predictions (What Ships in January)
Jul 11, 2026
Parth Sojitra
2026
Shopify Premium Website Development Company India 2026 Guide
Jul 10, 2026
Parth Sojitra
2026
Shopify Sidekick in 2026 (What It Does for Real Merchants)
Jul 10, 2026
Parth Sojitra
2026
Best Shopify Agencies in Ahmedabad in 2026 (Verified List)
Jul 10, 2026
Parth Sojitra
2026
Shopify Store Not Converting (Free 48-Hour Diagnostic Below)
Jul 10, 2026
Parth Sojitra