Your warehouse says an item is available. Shopify shows zero. Or you correct the quantity, and the old number comes back after the next sync.
Start with one affected variant at one location. Compare its identifier, stock state, and last update in both systems before changing quantities or reconnecting the app. That gives you a specific failure to investigate instead of a store-wide reset to undo.
This guide is for merchants whose existing inventory connection has stopped behaving as expected. If you're moving to Shopify for the first time, use our multi-location inventory migration guide for the cutover work.
Capture one mismatch before editing
Choose a product you can identify in the warehouse system, integration app, and Shopify. A variant is a specific option, such as a navy T-shirt in medium; the product name alone may cover several variants.
Record its SKU, Shopify variant identifier, source item identifier, location, quantity label, quantity, and observation time. Use the same time zone for both records. Add the app's last successful sync time and any error message. Exclude customer details from screenshots you send to support.
If orders are still arriving, two screenshots taken several minutes apart may describe different stock positions. Check what happened between them before treating the difference as an error.
1. Check what the app uses to match products
A SKU is your stock keeping unit: an internal code for an item. Shopify allows products without SKUs, but many connected apps depend on them. A connection that matches by SKU needs an exact match; case, spaces, duplicate values, and missing variant SKUs can cause problems. Shopify's SKU guidance [1] describes these checks.
Compare the identifier the app actually uses. It might be the SKU, a stored Shopify identifier, or an explicit mapping in the connector. Don't assume the barcode or product title is the matching key.
For a SKU-based connection, TEE-NVY-M and tee-nvy-m need attention. A second variant carrying the same SKU also needs investigation. Correct the mapping deliberately across the systems that depend on it; renaming codes in Shopify alone can leave the source still sending the old value.
What to retain: one source item matched to the intended Shopify variant, with the matching rule written down.
2. Check the location behind the number
Open the affected variant in Shopify and inspect its inventory locations. Confirm tracking is enabled and that the connector writes to the location you intend. A warehouse total and the quantity for one Shopify location are different comparisons.
This setting can be specific to the integration. For example, Extensiv's troubleshooting guidance [2] asks merchants to check both inventory tracking and the SKU's assignment to the location configured in its Shopify connection. Follow your own provider's equivalent instructions.
If Shopify's quantity looks correct but the product still appears sold out, check whether that stock can serve the customer's destination. Shopify's fulfillable inventory rules [3] connect availability to locations that ship to the customer's shipping zone. Test the affected destination, not just your own address.
For a dropshipping app, missing shipping rates at the app location can also cause an apparently stocked product to show as unavailable. Shopify provides a specific shipping-rate check [4].
3. Compare available stock with available stock
“Inventory” isn't a single number. In Shopify, On hand includes units that are Available, Committed, and Unavailable. Available is the quantity you can sell. Incoming stock is separate until received and moved into an appropriate state. See Shopify's inventory-state definitions [5].
Suppose a location has 24 units on hand, with six committed and two unavailable. That leaves 16 available. This is an illustrative example, not a merchant result. A source reporting 24 physical units and Shopify reporting 16 available units may both be correct.
Ask the provider which source field it sends and which Shopify state it updates. Check whether reservations and safety stock have already been deducted. Applying the same deduction in two systems understates what can be sold; ignoring it can overstate availability.
Don't overwrite Available with the warehouse's physical count simply to make the screens agree.
4. Find the last successful update
Read the app's sync log for the affected item. Look for when it received the source change, which quantity it tried to send, the target location, and whether Shopify accepted it. Save the actual error and run identifier if available.
Then inspect Shopify's inventory adjustment history [6]. The date, activity, and “Created by” information can help you connect a change to an app, staff member, or sales channel.
| What you find | What to investigate next |
|---|---|
| No record of the source change | The source export, trigger, or scheduled job |
| A rejected update | The recorded error, permissions, mapping, or retry queue |
| An accepted update at another location | The connector's destination mapping |
| An accepted update followed by another change | Orders, staff actions, or a competing app |
There is no useful universal waiting period for every Shopify connector. Check the provider's documented schedule and compare it with observed successful runs. An old “connected” badge doesn't prove that this product's latest change was processed.
If the app uses webhooks (messages sent when events occur), ask how it handles repeated deliveries and missed changes. Shopify's webhook delivery guidance [7] recommends duplicate-safe processing and describes periodic reconciliation. Those are implementation checks for the provider, not a reason to keep pressing “sync” yourself.
5. Find out who can overwrite the quantity
If the number changes and then changes back, compare the sequence of adjustments. A manual edit, warehouse connector, bundle app, or another process may be writing to the same record. Legitimate orders and returns can change stock too, so identify the action before calling it a conflict.
Agree which system owns the stock calculation for this variant and location, and how other systems submit changes to it. Have the integration owner pause a conflicting write only after checking the effect on orders and fulfillment. Uninstalling an app is a broader change; use the app exit checklist if removal is actually needed.
For a custom connector, ask the developer whether absolute stock updates protect against changes that happened after the stock was read. Shopify's inventorySetQuantities documentation [8] describes a quantity comparison check and reserves this operation for a system acting as the inventory source of truth. Bypassing that protection can overwrite newer information.
Verify the fix on a small, controlled test
Once you know the cause, correct it for one test variant and location. Use a test environment or a carefully controlled, authorized live test that won't create an unintended customer order or fulfillment.
- Record the starting quantity and state in both systems.
- Make one known stock change through the agreed source system.
- Confirm the intended Shopify variant, location, and state changed as expected.
- Check availability for the affected customer destination.
- Watch the following scheduled sync for an unexplained reversal. Confirm how repeat processing is handled before testing a retry.
Retain the before-and-after values, timestamps, log references, and person responsible for follow-up. Expand the fix only when that example behaves correctly. A matching number once is less useful than a change you can trace and explain.
Questions before changing the connection
Should I enable “Continue selling when out of stock” while I investigate?
What should I send the app provider if I can't access its logs?
Inficial can help review the mapping, stock ownership, and ongoing support your Shopify integration needs. Bring one affected variant and its evidence checklist to start the discussion.
Sources
- [1] Shopify's SKU guidance (checked 9 September 2026)
- [2] Extensiv's troubleshooting guidance (checked 9 September 2026)
- [3] Shopify's fulfillable inventory rules (checked 9 September 2026)
- [4] specific shipping-rate check (checked 9 September 2026)
- [5] Shopify's inventory-state definitions (checked 9 September 2026)
- [6] Shopify's inventory adjustment history (checked 9 September 2026)
- [7] webhook delivery guidance (checked 9 September 2026)
- [8] inventorySetQuantities documentation (checked 9 September 2026)
- [9] Shopify's out-of-stock selling guidance (checked 9 September 2026)


