iSmartSync • Blog

Shopify and Your POS Inventory Don't Match? How to Find the Cause

Find why Shopify and your retail POS show different stock. Check variants, locations, inventory states and sync events before correcting quantities.

InventoryBy iSmartSync Team•3/12/2026•7 min read•Updated 10/27/2026
Shopify and Your POS Inventory Don't Match? How to Find the Cause

Your shop POS says you have 6 of a shirt. Shopify says 4. If your point of sale is a separate system connected to Shopify, rather than Shopify's own POS app, a Shopify POS inventory mismatch like this can come from several places, and guessing the cause usually makes it worse.

So don't correct anything yet. First check that you are comparing the same variant, at the same location, in the same stock state, at the same moment. This guide walks through those checks, then shows how to trace one item's history, find the cause, fix the right record and confirm the fix holds.

Are You Comparing the Same Inventory Record?

Match variant, location and timestamp

Take a cotton shirt sold in two sizes, S and M, at two branches. Shopify may show a product total of 10, while your POS screen shows Branch A, size M: 6. Those are different numbers by design. Compare one variant (size M), at one place, at one time. Also confirm which Shopify location your branch is connected to. If two branches share one Shopify location, Shopify only sees their combined stock. It helps to understand branch-level stock visibility before you compare.

Distinguish available, on-hand and committed stock

Shopify separates stock you physically hold (on hand) from stock already promised to unfulfilled orders (committed). Available is what can still be sold. Illustrative example: Branch A holds 6 shirts, 2 are committed to online orders waiting to be packed, so Shopify shows 4 available. Nothing is wrong, and nothing has left the shop yet. Check which state each screen shows before calling it a mismatch.

Which System Is Allowed to Change Inventory?

Identify the owner and update direction

Write down every system that changes stock and which way each one updates: the POS, Shopify admin, a warehouse app, a marketplace app or a stock-count tool. Then note which one is the source of truth for each field. Shopify does not have to be the master for everything. In many shops the POS owns branch stock and Shopify owns online orders. What matters is that each quantity has one clear owner.

Check other apps and manual adjustments

When two systems write the same quantity, you get confusing records. A staff member edits stock in Shopify admin, the POS sends its own number a minute later, and one change silently overwrites the other. Before disconnecting anything, open Shopify's inventory history for the variant and your POS stock log, and look for adjustments made outside your normal flow.

What Happened to One Mismatched Item?

Rebuild the item's stock-changing events

Pick one variant and list every event that changed it, with time and reference: the opening count, shop sales, online orders, cancellations, fulfillments, transfers and returns. Online orders matter most, because you need to know which branch actually packed and sent each one. Learn how to trace the fulfillment branch if your team picks branches by hand.

Compare expected and recorded outcomes

Put the events in a short ledger. Illustrative example, size M shirt, Branch A:

TimeEventExpected Branch ARecorded in POSRecorded in Shopify
09:00Opening count888
11:20Shop sale, receipt 4471777
14:05Online order 1052 packed at Branch A666
16:40Return of order 1031 received at Branch B667

The last row shows the problem: a return received at Branch B was added back to Branch A's location in Shopify. It isn't a missing sale or a duplicate. It's a wrong-location change.

Which Cause Fits the Evidence?

SymptomCheck firstLikely cause
One size is always off, others are fineVariant link between systemsUnlinked or duplicated variant
Stock moves at the wrong branchBranch-to-location mappingWrong location mapping
Numbers match later in the dayTime of last confirmed updateDelay or retry still pending
Off after returns or exchangesHow returns are restockedReturn restocked to the wrong place
Random jumps with no POS eventShopify inventory historyAnother app or a manual edit

Check product and branch mapping

If only one variant drifts, check that it is linked to the same item in both systems. A re-created variant in Shopify can leave the old one linked in the POS. If changes land at the wrong branch every time, the branch-to-location mapping is the suspect, not the sync.

Check delays, failures and unsupported events

Compare when the last update was confirmed with when the event happened. A gap means a delay or a failed update waiting for a retry. Then check event coverage: some integrations update sales but not returns, transfers or cancellations. An event your integration doesn't handle will always leave a gap, however often you resync.

How Do You Reconcile Without Creating Another Error?

Confirm the physical count and correction method

Count the shelf for that variant at that branch. Save a copy of both systems' records before you change anything. Then correct the authoritative record using the method your integration supports, not by typing numbers into both systems.

Test the next stock event

After the correction, run one small, controlled transaction, such as a single sale of the corrected variant, and check that both the quantity and the location update as expected. Avoid relinking everything or bulk-overwriting quantities just to make totals match. That hides the cause, and the gap comes back.

Should You Repair the Integration or Evaluate Another POS?

Escalate a reproducible issue

If the cause is in the integration, give your vendor evidence they can act on: the variant, the branch and Shopify location, order or receipt numbers, timestamps, the expected result, the actual result and any logs. A reproducible case gets fixed faster than "stock is wrong".

Compare alternatives only if required behavior is missing

Replace your POS only if it can't handle an event you depend on, such as branch-level stock under one Shopify location or returns restocked to the receiving branch. In the iSmartSync Shopify inventory workflow, each branch keeps its own stock. A shop sale deducts the selling branch first and then updates the Shopify location, and an online order deducts stock from the branch that packs it. If someone assigns too much stock to branches by mistake, you correct Shopify to the true number first, then use ShopStock Sync to reduce the branch quantity without changing Shopify again.

Frequently Asked Questions

Why is my shop stock different from Shopify?

Usually because the two screens show different things: a variant versus a product total, one branch versus a shared location, or on-hand versus available stock. If those match, check for a delayed update, an unsupported event or a manual edit.

Which system should I correct first?

Correct the system that owns that quantity, using the method your integration supports. Count the shelf first, save both records, and let the sync carry the corrected number to the other system.

How can I stop a mismatch from returning?

Find the event that caused it and fix that step, whether it's a mapping, a return flow or a second app writing stock. Then test one transaction. Overwriting quantities over and over only hides the cause.

Find the cause before you fix the number

You can now check whether a mismatch is real, rebuild one variant's history and match the gap to a cause. Fixing that step, rather than the total, is what stops the problem coming back.

If you'd like a second pair of eyes, pick one mismatched item and its recent sales, orders and returns, and get in touch with the iSmartSync team. We'll walk through its event history with you and show how the same events would run in iSmartSync.