ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides9 min read

Your supplier's SKU is not your SKU: building the crosswalk

Build a supplier SKU crosswalk for your Shopify store: a mapping table template, a worked receiving example, and the errors identifier mismatches cause.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Eight cartons arrive for a reorder of dog harnesses, and the labels read HRN-M-BRN-02. Your Shopify catalog calls the product HARNESS-M-12. Nobody on the team knows whether HRN-M-BRN-02 is that SKU, its wide-webbing sibling, or a discontinued model, so the cartons get shelved under a best guess — and the mistake surfaces three weeks later as the wrong product at the pick face. The fix costs one spreadsheet: a crosswalk that maps every supplier identifier to your own, checked at three specific moments.

This article gives you the table, the columns it needs, and a worked example of what the mapping prevents. It's unglamorous data hygiene, and it's the difference between a PO that arrives as ordered and a PO that arrives as "close enough."

What the crosswalk is, and what it isn't

A supplier SKU crosswalk is a table with one job: for every code your supplier uses, record exactly which code in your catalog it refers to. That's the whole artifact. Your SKUs are built for your storefront and your picking logic; their part codes are built for their factory floor. Nothing forces the two to agree, and no one is watching the boundary between them — not Shopify, not the supplier, not the freight forwarder.

Scope note: confusion between cases and eaches is a different failure mode with different fixes, covered separately in the unit-of-measure guide. The crosswalk here is only about which identifier means which product, not how many units a pack contains.

The reason this stays unowned is that it lives between systems. Shopify stores what you type. The supplier stores what they print. The gap fills itself with assumptions until a receipt, a claim, or a re-order exposes one.

Where the identifiers collide

Four moments, in the life of any PO, where your SKU and their SKU have to agree — and where they usually don't:

  • The PO acknowledgement. You order in your codes; the factory confirms in theirs. If nobody translates the confirmation back through the crosswalk, a substitution sails through unchallenged and only shows up as a physical carton.
  • Carton labels and packing lists. The dock team counts against the packing list, and the packing list speaks supplier. Without the mapping, "correct quantity, wrong product" reads as a clean receipt.
  • Invoices and the three-way match. Matching invoice to PO to goods is how overcharges get caught, and the invoice will carry their part code — the match only works if the crosswalk sits between them. The mechanics of that comparison are covered in the end-to-end purchase order process.
  • Claims, credits, and reorders. A defect claim written in your SKU and answered in theirs invites "we have no record of that product." Every email in a dispute should carry both identifiers.

The crosswalk table, column by column

Seven columns is enough. Anything more and the table stops being maintained.

Column What goes in it Example
Your SKU Exactly as it appears in Shopify HARNESS-M-12
Supplier SKU Their part code, copied character-for-character — no cleanup HRN-M-BRN-01
Supplier name One row per supplier per code; two factories can legitimately use the same code Qingdao Petline Co.
Supplier product name Their catalog name, verbatim "Webbing harness, M, brown"
Unit cost + currency Last confirmed price, so a mismatched invoice price flags itself USD 11.40
Status active / superseded by HRN-M-BRN-02 / discontinued active
Last verified The date you confirmed the mapping against a physical sample or packing list 2026-09-14

Two additions worth considering once the basics are running. First, a barcode column: your variants already carry barcode fields in Shopify (Shopify Help Center, accessed November 2026), and as of November 2026 they support up to 20 barcodes per variant (Shopify Fall '26 Editions, accessed November 2026), so a supplier code can live on the variant itself for scan-based receiving. Second, a GTIN column if your supplier products carry GS1 identifiers — a GTIN is globally unique and issued under the GS1 system, which makes it the one supplier identifier that can't collide across factories (GS1 US, accessed November 2026). Most small factories don't issue GTINs, which is exactly why the crosswalk still needs the raw part code.

A worked example: catching a substitution on the acknowledgement

Here's the failure the table prevents, with illustrative numbers.

You raise a PO for 250 × HARNESS-M-12 at USD 11.40 — a 250 × 11.40 = $2,850.00 estimated order. The factory's acknowledgement comes back the next morning: "HRN-M-BRN-02, unit price USD 12.30."

With the crosswalk, that line takes ten seconds: HRN-M-BRN-02 maps to HARNESS-M-02, the wide-webbing version you don't sell. The price drift confirms it — 12.30 − 11.40 = $0.90 more per unit, which on 250 units is $225.00 estimated. One email later, the PO ships as ordered. Total cost of the catch: ten seconds.

Without the crosswalk, the story compounds. The quantity looks right, the price looks plausible for harnesses, and the cartons arrive with HRN-M-BRN-02 on every label. The dock team counts 250 cartons against 250 expected, matches on quantity, and shelves them under HARNESS-M-12 because that's what the PO said. Three weeks of customer complaints later you've identified the substitution, and the remedies stack up:

  • Return freight on 250 harnesses: $140 estimated
  • Re-shipment lead time: 34 days illustrative, during which HARNESS-M-12 sells 3.4 units/day (illustrative) → 3.4 × 34 = 116 units × $24.99 retail = $2,899 estimated in missed revenue
  • The $225 estimated overcharge, recoverable only if the claim gets written in the supplier's own codes

Call the total exposure $3,264 estimated against a ten-second check. The arithmetic is the argument: the crosswalk doesn't prevent mistakes by being tidy, it prevents them by being checked at the acknowledgement, when the fix is an email.

Building yours in an afternoon

One supplier, one afternoon. The sequence:

  1. Export your SKUs from Shopify and sort by supplier — for most stores, 80% of spend sits with a handful of suppliers and their top codes.
  2. Pull that supplier's codes from the last 12 months of invoices and packing lists, not from their current catalog. The catalog shows what they sell today; the invoices show what you actually bought.
  3. Fill the table. Where a code maps to nothing you recognize, mark it unknown and flag it — never guess a row.
  4. Verify the top 20 rows by spend against a physical sample or the last packing list. Eyeball the product, not just the code.
  5. Send the crosswalk to your supplier contact and ask that every future acknowledgement and packing list carry both codes. Most factories will do it once asked; it costs them a template edit.

Expect surprises in step 3. Suppliers revise part codes when they change materials or tooling, and the old code keeps appearing in their system for months. Record the chain — HRN-M-BRN-01 → superseded by HRN-M-BRN-02 → active — rather than deleting the dead row, because last year's invoice will cite the dead one.

Keeping the crosswalk current

The table only works as a habit. Three rules keep it alive:

  • Check every acknowledgement against the table, same day. The acknowledgement is the cheapest place to catch anything — an email, not a pallet.
  • Verify a new supplier SKU by eye on first receipt. First time a code you haven't mapped shows up on a carton, walk it from the dock to the shelf and confirm what's inside before putting it away. The dock routines in the receiving checklist are where this check belongs.
  • Date every row, and give the table one owner. An unverified mapping is a rumor. The "last verified" column is what separates a crosswalk from a spreadsheet-shaped memory of what someone thinks the factory means.

One quiet payoff: when a shipment genuinely goes wrong and you need a credit, a dispute letter that carries both identifiers, the mapped product names, and the verified dates reads like a document the supplier's own system can reconcile. Claims written in crosswalk language get settled faster than claims written in frustration.

Common questions

What is a supplier SKU crosswalk? A table mapping every identifier your supplier uses to the exact SKU in your catalog, one row per supplier per code, with the mapping's verification date. It exists because your SKUs and their part codes are built for different systems, and nothing else translates between them at the acknowledgement, the carton label, or the invoice.

How do I map supplier SKUs to my Shopify SKUs? Pull the supplier's codes from 12 months of invoices and packing lists, list your SKUs from the Shopify export beside them, and fill the table row by row — marking anything uncertain as unknown rather than guessing. Verify the top 20 rows by spend against a physical sample, then ask the supplier to print both codes on future acknowledgements and packing lists.

What's the difference between a supplier SKU and a GTIN? A supplier SKU is the factory's internal part code — meaningful only inside their operation, and reusable by other factories. A GTIN is a globally unique barcode number issued under the GS1 system, shared across trading partners. Some supplier products carry GTINs, but most small factories rely on their own codes, which is why the crosswalk needs both columns.

Should my purchase orders use my SKUs or the supplier's? Use yours on the face of the PO — it's the document your team lives in — and attach the crosswalk as an annex so the supplier can translate. Then require acknowledgements and packing lists to carry both codes. Each system reads its own language, and the annex is the dictionary that keeps the two consistent.

How often should the mapping be updated? Three triggers: every PO acknowledgement (checked, not just read), every first receipt of a code not yet in the table, and a quarterly sweep where you re-verify the top rows by spend against physical stock. Suppliers revise part codes when tooling or materials change, so dated verification matters more than any fixed schedule.

Next step

Twenty codes are enough to start. Open the last invoice from the supplier you spend the most with, and build the table for their top 20 codes by spend — verified against what's physically in your stockroom. Then add one line to your PO template asking that acknowledgements carry both codes; the PO-terms guide shows where the annex belongs, and the receiving checklist shows where the dock-side check goes.