Work

/

About
Play
Blog
Contact
Home/Blog/Shopify
Shopify
•
Oct 15, 2026
•
7 min read

Shopify Stock Reconciliation: Suppliers and Your Warehouse

Supplier and warehouse stock reconciliation organized into owners, snapshots, and discrepancy review
MS
Muhammad Saad

Shopify engineer. I build storefronts, two published Shopify apps, and the infrastructure behind a 70,000+ product store, and I write here about what that work teaches me.

Follow on LinkedInSee my workBook a call
Found this useful? Share it.

Keep reading

Inventory integration brief organized into supplier samples, ownership rules, and acceptance evidence
Shopify
•
6 min read

Shopify Inventory Integration: A Developer Brief

Prepare a Shopify inventory integration brief with supplier samples, stock ownership, acceptance criteria, and support responsibilities before hiring a developer.

Oct 13, 2026
Supplier sync decision: compare an app, an adapter, and a custom integration against operating rules
Shopify
•
6 min read

Shopify Supplier Sync: App or Custom Integration?

Choose a Shopify supplier sync app or custom integration with a practical decision worksheet covering stock ownership, feed failures, approvals, and support.

Oct 12, 2026
Illustrated product cards sorted through green screens into smaller groups
Shopify
•
5 min read

Shopify Metafield Filters Not Showing? A Diagnostic Checklist

Diagnose missing Shopify metafield filters by checking collection size, theme support, field values and market settings with a repeatable test worksheet.

Oct 9, 2026
Back to the blog

© 2026 Muhammad Saad • Colophon

Connect with me on LinkedIn

Elsewhere

  • Github
  • Testimonials
  • CV
  • LinkedIn

Contact

  • Contact details
  • Book a call
  • Email
  • Privacy policy
  • Editorial policy
On this page
  1. Which stock does each system actually own?
  2. Are you comparing the same inventory state?
  3. Are the sources independent, or describing the same stock?
  4. What belongs in a reconciliation worksheet?
  5. How should you resolve differences while orders continue?
  6. Where should you start?

Shopify stock reconciliation becomes harder when a supplier feed and your warehouse both describe the same product. I would compare each source with the quantity it owns, using an agreed location, inventory state, and observation time. Trying to make every number equal can overwrite a valid warehouse count or advertise stock you cannot fulfill.

Quick answer

Keep supplier availability and locally held inventory separate in the ownership map before comparing quantities. Reconcile matching variants, locations, states, and timestamps; investigate differences before authorizing a write. A supplier snapshot must not replace warehouse stock, and a warehouse count must not become sellable inventory without accounting for commitments and holds.

Which stock does each system actually own?

Start by naming the physical or contractual stock pool behind each feed. Is the supplier reporting everything in its warehouse, stock it will allocate to your store, or only an availability flag? Record the answer from the supplier instead of inferring it from a column called stock.

In BC Supply Ops, I built supplier operations for a 70,000+ product store with seven suppliers. Four used spreadsheets with different headers, currencies, SKU prefixes, and stock semantics. Supplier-specific parsers normalized those inputs into comparable snapshots; that normalization decision matters before any quantity comparison.

For a new integration, I would extend that discipline into an ownership map. The warehouse procedure below is a proposed design, not a description of BeautyCorner's location configuration. It should be reviewed by whoever owns inventory operations before development begins.

Shopify's multiple-location inventory guidance explains that quantities are tracked independently at each location. It also supports keeping inventory at your own locations alongside fulfillment apps. Use those boundaries deliberately, and check fulfillment configuration separately from quantity accuracy.

For each proposed destination, record the Shopify location identifier, inventory state, authoritative system, permitted writers, and human owner. If a supplier app and warehouse connector both replace the same quantity, resolve that conflict before enabling either schedule. “Whichever job runs last” is not an ownership rule I would approve.

Are you comparing the same inventory state?

A physical count and a sellable quantity answer different questions. Shopify's inventory state definitions distinguish On hand from Available: On hand includes Available, Committed, and Unavailable stock. Incoming inventory is not Available until received and placed in a sellable state.

I would therefore label every source column with its meaning before calculating a discrepancy. A warehouse count should be reviewed against the corresponding On hand quantity. A supplier's available-to-order figure needs its own agreed mapping; it is not evidence of goods physically received at your warehouse.

Ask whether the source has already deducted orders, reservations, damaged goods, or a safety buffer. Record where each deduction happens so the integration does not apply it twice. If the source cannot explain its quantity, mark the mapping unresolved instead of inventing a conversion formula.

Include the unit of measure in that review. A matching barcode alone does not resolve a case-versus-single-item conflict. Use the supplier barcode and packaging checklist to settle identity before interpreting any stock difference.

Are the sources independent, or describing the same stock?

I would ask this explicitly when the same product appears in multiple feeds. Two files can be separate exports without representing independently fulfillable units. Request confirmation of the underlying stock pool and allocation terms before proposing to add their availability together.

For example, consider a hypothetical supplier feed that includes goods reserved for delivery to your warehouse. Your receiving process later records those goods locally. The reconciliation design needs evidence of when the supplier stops advertising that allocation, rather than assuming both records always represent extra stock.

Treat a supplier availability flag differently from a verified quantity. If the supplier says only “in stock,” keep that as a source fact until the merchant approves a selling policy. I would not silently turn the flag into an arbitrary inventory count.

The location map also needs to distinguish inventory review from fulfillment policy. Shopify documents order assignment through routing and shipping configuration; a correct quantity does not by itself establish the intended shipping route. Include a separate test that confirms which location should fulfill a representative order.

What belongs in a reconciliation worksheet?

I would create one review row per matched variant, destination location, and inventory state. Keep supplier observations separate from warehouse observations, even when they concern the same listing. That makes it possible to approve a bounded correction without approving unrelated stock changes.

Record the source's observation time as well as the time your integration fetched it. Downloading an old export again does not make its contents current. Compare the source snapshot with Shopify's recorded state and intervening activity before deciding that a difference is an error.

Proposed reconciliation record for each quantity under review
FieldEvidence to recordDecision it supports
Product identitySource identifier, Shopify variant and inventory item, packagingAre both records about the same sellable item?
Stock pool and locationSupplier or warehouse pool, destination location IDIs this the quantity the source owns?
Quantity meaningSource definition, unit, intended Shopify stateIs the comparison like for like?
Observation windowSource timestamp, fetch time, Shopify read timeCould intervening activity explain the difference?
Current and expected valuesOriginal observations and any documented conversionCan another operator reproduce the proposal?
DispositionMatch, investigate, hold, or propose correction; reason and ownerWhat happens next, and who decides?
Completion evidenceApproved proposal, write result if applicable, fresh destination readWas the intended correction actually applied?

Preserve a row when the values match, because a matching number can still come from the wrong location or state. Keep unknowns visible rather than filling them with zero. A rejected supplier file belongs in the feed-health hold workflow, not in a batch of routine quantity corrections.

Give each discrepancy a concrete next action. A packaging conflict goes to the catalog owner; an unexplained physical count goes to warehouse review; an unclear supplier reservation goes back to the supplier. This is more useful than a single “inventory mismatch” alert with no owner.

How should you resolve differences while orders continue?

I would first classify the difference: mapping error, state mismatch, stale observation, intervening movement, or a confirmed count correction. Only the last category is ready for a quantity proposal without further investigation. Keep the evidence that led to the classification alongside the proposed change.

For a warehouse discrepancy, review the count's observation window against receipts, orders, returns, and other movements. For supplier availability, check what the supplier snapshot includes and excludes. Do not apply the same subtraction rule to both simply because they share a SKU.

Shopify's inventorySetQuantities documentation reserves absolute quantity setting for a system acting as the inventory source of truth. It provides comparison checks for concurrent changes. The developer should use the documented behavior for the integration's API version and handle rejected comparisons explicitly.

I would rebuild a stale proposal after reading current state, rather than disabling its comparison to force it through. A destination comparison protects against a conflicting destination change; it cannot prove that the supplier snapshot is fresh or correctly interpreted. Both checks belong in the approval decision.

BC Supply Ops produces reviewable stock-sync plans before live writes, with typed confirmations and separate write guards. For this proposed reconciliation workflow, I would retain that review boundary and test it with a warehouse adjustment during review. The expected result is a conflict or a rebuilt proposal, with no supplier write to the warehouse-owned quantity.

Close the review only after recording the result and reading the affected destination again. If the result is uncertain, investigate before repeating the write. A job finishing successfully and a discrepancy being explained are separate acceptance conditions.

Where should you start?

Choose a product that exists in both a supplier feed and your warehouse records. Fill the worksheet with actual identifiers, state definitions, observation times, and the systems permitted to write. Then ask the operations owner to explain every difference without changing Shopify.

If the explanation depends on an unknown supplier rule, resolve that rule first. If two systems claim authority over the same quantity, agree on ownership before scheduling the sync. Add those decisions to your inventory integration developer brief.

Bring the ownership map and unresolved questions to my Shopify supplier automation enquiry page, or book a call. Include your store URL, current inventory systems, operational problem, and constraints. The first useful deliverable is a reviewable reconciliation sample with a clear boundary for any later writes.