How to Match Supplier Invoice Lines to Shopify SKUs (When the Part Numbers Don't Line Up)

The invoice says FWP-190 . Your Shopify variant says FWP190-BLK . The distributor's catalogue calls the same item 0053455109606 , and the description on the line reads "Fuel pump, 90 psi" while your product title says "Universal In-Tank Fuel Pump". Same part. Four different strings.

Start Free Trial — 14-day free trial on Starter plan, no credit card required.

Why Matching Is the Hard Part

Reading the numbers off a PDF is the easy half. The hard half is deciding which of your several thousand variants a line refers to, because suppliers and merchants never agree on identifiers. Three things go wrong again and again:

Shopify's own tools do not help much here. A purchase order or a CSV import expects you to supply the right variant already; nothing reads the supplier's document and works out which variant it meant.

Rank the Evidence: Barcode, Then SKU, Then Title

Not all identifiers deserve the same trust. Smart Restock tries them in a fixed order and stops at the strongest tier that returns something.

Barcode first. A UPC or EAN is the one identifier a manufacturer guarantees is unique. It beats a SKU because a supplier can print a shared style code on every line but cannot print the same UPC on two different products.

SKU second. When there is no usable barcode, the part number is next. Before comparing, the matcher cleans it: stray apostrophes, zero-width characters and odd spaces are stripped, and capitals are ignored. If that still finds nothing, a relaxed comparison that ignores spaces, hyphens and slashes gets a second try, so T-1003 can still find T1003 .

Title last, and trusted least. A product name is the weakest signal, because many products share the same first words. A lone title hit on a product with several sizes or colors is not accepted on its own; it needs the line's description to say something about at least one of those options.

Why a Search Hit Is Not a Match

Here is the detail that separates a careful matcher from a hopeful one. When you search Shopify for a barcode or SKU, the search is a text match, not an exact one. Ask for one UPC and you can get back every variant whose barcode merely looks like it. Accept a lone result without checking and you will post stock against the wrong product with total confidence.

So a candidate is only auto-selected after an exact comparison. Leading zeros are the classic trap: 053455109606 and 53455109606 differ by a zero that Excel loves to drop, and they are not the same barcode. The comparison keeps the zeros, so a barcode that lost one in a spreadsheet does not silently attach to a different item.

When the evidence is ambiguous, two variants with the same SKU or no exact hit at all, the line is not guessed. It is left for you. That is the right default: an unmatched line costs you ten seconds, and a wrong match costs you a bad quantity and a bad cost that nobody notices.

Watch matching run against a real supplier invoice, from exact hits to the lines left for review.

One Style Code, Forty Sizes

Apparel and footwear invoices break the SKU-first assumption completely. A supplier prints one style code on every line and separates Size, Color and Width into their own columns. Smart Restock reads those columns and uses them to choose among the variants of that style, so the size-9 line lands on the size-9 variant instead of whichever sibling Shopify returned first. If a line does not mention an option, it does not guess one.

There is also a quieter safeguard. A supplier's product code identifies a product, not a single variant, so a remembered supplier link can break a tie between different products but is never allowed to pick one size over another within a product. More on the wholesale clothing workflow on our apparel inventory page .

Matching That Gets Better Each Delivery

The first invoice from a new supplier is always the slowest, because nothing is known about how they label things. Once you confirm a match, Smart Restock remembers the link between that supplier's line and your product, so the same code resolves itself on the next delivery. Case sizes work the same way; the pack size you set for a line carries forward, which keeps per-unit cost right on a case of twelve.

For a weekly invoice, that compounding effect is the point. The first few uploads need attention; after that, most lines arrive already matched and you are reviewing exceptions, not retyping a catalogue.

What You Still Review

Nothing writes to Shopify until you post. Between upload and post there is a review queue, and the invoice list shows how many lines are matched so you can tell at a glance whether an invoice is ready. A few habits make it quick:

The Honest Limits

No matcher reaches 100% on messy supplier data, and any tool that claims it is hiding the misses. Expect to review lines where the supplier's code is new to you, where two of your variants share a SKU, or where a barcode was mangled before it reached you. Duplicate SKUs in your own catalogue are the most common cause, and the matcher will not choose between them for you. Cleaning those up in Shopify makes every future invoice faster.

The aim is not zero review. It is a review limited to the lines that genuinely need a human, with the rest matched on evidence you could defend. You can see the whole flow on the invoice parsing page .

Let the invoice find your SKUs

Run a real supplier invoice through during the 14-day free trial and see which lines match on their own. Nothing touches Shopify until you post.

Invoices that find their own SKUs

Turn supplier invoices into accurate Shopify stock and cost, with a review step before anything posts.