Guides › Cin7 Core and Shopify stock

Cin7 Core and Shopify stock don't match: what to check

Updated 9 November 2026 · 6 min read · ShelfTrue team

Cin7 Core (the software that used to be DEAR) keeps your real stock, and its Shopify integration is meant to keep Shopify's numbers in sync with it. When the two drift apart, Shopify starts selling units Cin7 Core doesn't have, or shows sold out while Cin7 Core has plenty. This guide covers the numbers each side uses, where the usual gaps come from, and how to find the products that differ with one report from each system.

Cin7 Core's numbers and Shopify's

Cin7 CoreWhat it countsShopify's nearest number
On HandEverything physically in the location, bins and batches added up.On hand
AllocatedUnits reserved for sales orders that haven't shipped.Committed
AvailableOn Hand minus Allocated: what can still be promised to new orders.Available
On OrderUnits on purchase orders not yet received.Incoming

The pair to compare is Cin7 Core Available with Shopify Available, for the same location. Comparing Shopify Available with Cin7 Core On Hand makes Cin7 Core look higher by every allocated unit, even when nothing is wrong. More on Shopify's four numbers.

Where the gaps usually come from

Locations don't line up

Cin7 Core can hold stock in several locations, and in bins within them. Shopify has its own locations. In the Shopify integration settings, Cin7 Core lets you choose which of its locations feed each Shopify location. A location left out of that mapping, or a new one added later, holds stock Shopify never hears about. If a whole set of products is off by their count at one location, start here.

Stock updates to Shopify are off, or stopped

The integration only updates Shopify's stock if that option is on. Check the Shopify integration page in Cin7 Core: is stock level updating enabled, and when did it last run? Shopify's side tells you too: open a product, find the Inventory section, click View adjustment history and look for Cin7 Core in the Created by column. If its last change was days ago while orders kept coming, the updates stopped.

Allocations that never cleared

A sales order in Cin7 Core that was picked but never completed, or a Shopify order that was cancelled in Shopify but not voided in Cin7 Core, keeps its units Allocated. Cin7 Core Available then sits below what's really on the shelf, and Shopify follows it down. Look for old sales orders still in an open or picking state.

Products matched to the wrong SKU, or not matched

The integration links products by SKU. A SKU written differently on each side (a space, a dash, lower case), a Shopify variant with no SKU, or two Shopify variants sharing one SKU, can't be matched. Those products either never update or update the wrong one. Give every variant its own SKU, spelled the same in both systems.

Sales from other channels

If you also sell in person, on a marketplace or wholesale, Cin7 Core takes those units out of Available. Shopify catches up only when the next stock update runs. Between updates, Shopify shows more than you can ship. Short gaps are normal; a gap that stays for a day means an update didn't go through.

Stock counts and adjustments

A stocktake or a manual adjustment in Cin7 Core changes On Hand straight away. If updates to Shopify are delayed or off, Shopify keeps the old number. The same is true the other way: a hand edit in Shopify is overwritten at the next update, which surprises people who "fixed" the number in Shopify.

Find the products that differ

  1. In Cin7 Core, open Reports and run the Product Availability report for the location that feeds your Shopify store. Export it to Excel. It gives one row per product per location (and per bin or batch), with On Hand, Allocated, Available and On Order.
  2. In Shopify, go to Products → Inventory, pick the same location, and Export.
  3. Add up Cin7 Core's rows per SKU (several bins mean several rows), then match on SKU and subtract Available from Available. Rows that aren't zero are your list.
  4. Take both exports within the same hour so timing doesn't add gaps of its own.

Fix in this order

  1. Fix the cause first: the location mapping, the stopped update, the stuck allocation. Correcting numbers before that only lasts until the next update.
  2. Let Cin7 Core correct Shopify. Once updates run again, Cin7 Core writes its Available to Shopify. Hand edits in Shopify get overwritten anyway.
  3. Clear stuck allocations by completing or voiding the old sales orders in Cin7 Core.
  4. Start with what costs most: products where Shopify is higher and sells fast. Those become oversells first.

Related guides

ShelfTrue does this check for you. Export Cin7 Core's Product Availability report and upload it, or have it emailed to ShelfTrue on a schedule. ShelfTrue reads the report as it is, adds up the rows per product, sets Cin7 Core Available next to Shopify Available for every linked product, and lists the differences with the money at risk. We can look, but never change anything in Cin7 Core.

Your first check is free.

Get my free stock check

Sources