Silent SKU mismatch — no error, no update

My SKUs aren't matching when I upload inventory — Shopify can't find my products

Your upload finished, Shopify said success, but the quantities for some products didn't move. That's because Shopify's inventory importer matches rows to variants by comparing the Variant SKU column as an exact text string — not "close enough," exact. Drop your file into the free checker below to catch a mismatch before you upload again.

import-shopify-inventory · xlsx-for-ai

What you'll see

Some rows in your inventory CSV update fine — but a handful of SKUs don't move at all, and Shopify's import summary doesn't call out which ones. You go check the product page and the quantity you just tried to set is unchanged. There's no red banner and no rejected-rows list; the import step reports success because, technically, it was a success — for every row that matched.

The root cause: exact-text matching

Shopify's inventory-update CSV matches each row to an existing product variant by comparing the value in the Variant SKU column against the SKU already stored on that variant, as literal text. It isn't a fuzzy or case-insensitive comparison — ABC-123 and abc-123 are two different strings as far as the importer is concerned, and so are ABC-123 and ABC-123 with a trailing space. If the comparison isn't identical character-for-character, Shopify doesn't guess at the closest match; it treats the row as referring to nothing it can find and moves on without updating anything, silently.

Three ways this happens (beyond numeric corruption)

  • Case or whitespace differences. A SKU stored as "ABC-123" won't match "abc-123", nor will it match a version with a trailing space introduced by a copy-paste or a stray tab character.
  • A stale reference file. If the export you're editing was pulled before someone renamed a SKU directly in the Shopify admin — or before a product was deleted and recreated — your file now carries a SKU that no longer exists anywhere in the store.
  • Hidden or invisible characters. Pasting SKUs out of a PDF, a web page, or another inventory system can carry invisible characters — a non-breaking space, a zero-width character — that look identical to a human eye but are a different string to an exact-match comparison.

If your SKUs are long numeric codes or barcodes, also check whether Excel silently stripped leading zeros or lost precision on save, or whether Google Sheets converted them to scientific notation — those are separate, common causes covered in their own guides (see the related list below), and worth ruling out first if your SKUs are numeric.

How to check before you upload

Re-export a fresh copy of your product list from Shopify immediately before editing, rather than reusing a file from last week — that limits how far your SKUs can drift from what's actually stored. For any SKU that isn't matching, compare it character-by-character against what's in the admin, paying special attention to leading or trailing whitespace and case. Or drop the file into the checker above: it reads the SKU column as an exact string the same way Shopify's importer does, and flags rows that won't find a match before you spend an upload cycle finding out the hard way.

More Update Shopify inventory from a CSV — free. guides

← All Update Shopify inventory from a CSV — free. guides