Guides › Katana and Shopify stock

Katana and Shopify stock don't match: what to check

Updated 9 November 2026 · 6 min read · ShelfTrue team

Katana keeps your real stock and, when stock sync is on, sends a number to Shopify every time something changes. When Shopify and Katana still disagree, it's almost always one of six things: the number being compared, an order from another channel, a location that isn't mapped, a SKU that doesn't match, a hand edit in Shopify, or sync that is off. This guide covers each one and ends with the two exports that show you exactly which products differ.

What Katana sends to Shopify

Katana's Stock screen shows In stock (physically in the warehouse), Committed (promised to open sales and manufacturing orders), Expected (coming in on open purchase or manufacturing orders) and, per location, Calculated stock. The number Katana writes to Shopify's Available is none of those on its own:

Product typeKatana sends to Shopify Available
Standard productIn stock − Committed
Kit or bundleIn stock + Potential − Committed

Why subtract Committed? Shopify takes units out of Available the moment an order is placed; Katana takes them out of In stock only when the order is fulfilled. Subtracting Committed lines the two up. So when you compare, the pair is Shopify Available against Katana In stock − Committed for the same location. Comparing Shopify Available with Katana In stock will show a "difference" on every product with an open order. More on Shopify's four numbers.

The six usual causes

1. Orders from other channels

Committed counts every open sales order in Katana, not only Shopify's. A wholesale order or a marketplace order you entered in Katana lowers the number sent to Shopify, so Shopify shows less than the shelf holds for that product. That's by design since Katana made Committed include all channels. If you don't want other channels to affect Shopify, Katana's advice is to put those orders at a Katana location that isn't mapped to Shopify.

2. A location that isn't mapped, or one Katana location feeding several Shopify locations

Each Shopify location receives stock only from the Katana location mapped to it, and only if its checkbox is ticked in the Shopify configuration's Inventory tab. A Shopify location with no mapping keeps whatever number it had. The reverse case also misleads: one Katana location mapped to two Shopify locations sends the same value to both, so Shopify's total is double the shelf.

3. SKUs that don't match

Katana matches variants to Shopify by SKU. A variant with no SKU updates only if it was mapped when the product was imported. If several Shopify products share one SKU, they all get the same level; if several Katana variants share one SKU, the most recently created one wins. Give every variant its own SKU, written the same way on both sides, no leading or trailing spaces.

4. Hand edits in Shopify

Once stock updates are on, a number typed into Shopify lasts until Katana's next push for that variant, which can be minutes or hours later. If you "fixed" Shopify yesterday and it's wrong again today, that's what happened. Fix the number in Katana (a stock adjustment), not in Shopify.

5. Timing, and the overnight pass

Katana pushes only the variants whose stock changed, when it changed. Between a Shopify order and Katana's fulfillment of it, the two systems are counting the same units in different places; that gap closes on its own. Katana also runs an overnight reconciliation that pushes recent fulfillment changes, so a number can change at night with no new order behind it.

6. Stock updates are off for this connection or this location

Stock updates to Shopify are off by default, per Shopify connection. Check the Shopify configuration page, Inventory tab: is the inventory levels toggle on, and is each location you expect to update ticked? Shopify's side tells you whether anything arrives: open a product, find the Inventory section, click View adjustment history and look for Katana in the Created by column. A last entry from days ago while orders kept coming means nothing is being pushed.

Find the products that differ

  1. In Katana, open Stock and pick the location that feeds your Shopify location (not "All locations", or Committed will include other locations' orders). Export the list.
  2. In Shopify, go to Products → Inventory, pick the same location, and Export.
  3. In a spreadsheet, match the rows on SKU and compute Katana (In stock − Committed) − Shopify Available. Rows that aren't zero are your list. Take both exports within the same hour so a sale in between doesn't add gaps of its own.

Fix in this order

  1. Updates and mapping first: turn the toggle on, tick the right locations, fix the one-to-many mapping. Until that's right, every number you correct drifts again.
  2. Then SKUs: fill in missing ones, split shared ones.
  3. Then counts, in Katana: a stock adjustment there reaches Shopify by itself.
  4. Start with products where Shopify is higher and sells fast. Those oversell first.

Related guides

ShelfTrue does this check for you. Export Katana's Stock list and upload it, or have it emailed to ShelfTrue on a schedule. ShelfTrue reads In stock and Committed, puts In stock − Committed next to Shopify Available for every linked product at that location, takes out orders still on their way, and lists the differences with the money at risk. We can look, but never change anything in Katana.

Your first check is free.

Get my free stock check

Sources