Explainer · 5 min read

SKU vs UPC vs EAN vs GTIN

These get used interchangeably and they are not interchangeable. One you invent for yourself and it's free. The others are bought from a global registry and follow strict formats. Here's which is which, and which you actually need.

The short answer

A SKU is yours — free, any format, internal. A GTIN (the family that includes UPC and EAN) is global — bought from GS1, fixed format, required by marketplaces. Most stores need both, in separate fields.

What's covered
  1. The comparison at a glance
  2. What each code actually is
  3. Which do you need?
  4. How they work together
  5. Common mistakes

The comparison at a glance

SKUUPC / EAN (GTIN)
Assigned byYouGS1, the global registry
CostFreePaid — a GS1 licence
FormatAny; your patternFixed: 12 digits (UPC) or 13 (EAN)
Readable meaningYes, by designNo — just a number
ScopeYour business onlyThe same product, worldwide
Changes if you switch supplierNoYes — it belongs to the maker
Required forNothing; but everything gets harder without itAmazon, Google Shopping, most retail

What each code actually is

SKU — Stock Keeping Unit

An internal code you design. It identifies a specific sellable variant in your operation, and because you control the format, you can make it readable: TEE-BLK-M-0042 tells your team what the product is without a lookup.

GTIN — Global Trade Item Number

The umbrella term for the globally unique product numbers. UPC and EAN are both GTINs; the difference is mostly regional.

These come from GS1. A licence gets you a company prefix, and you assign numbers within it. The final digit is a check digit calculated from the others, which is how validators catch typos.

Barcode

Not a code at all — it's the picture. The striped image encodes a number, usually a GTIN. Saying "I need a barcode" almost always means "I need a GTIN, and an image of it to print".

Which do you need?

If you're selling…SKUGTIN
On your own Shopify / WooCommerce storeYesNot required
On AmazonYesYes (with rare exemptions)
Via Google Shopping adsYesYes, for branded goods
Into physical retail / wholesaleYesYes
Handmade, one-of-a-kind piecesYesUsually not

The pattern: your own storefront needs nothing but a SKU. The moment someone else's system has to recognise your product, you need a GTIN.

On cheap barcodes: resold GS1 numbers circulate widely and look like a bargain. Amazon and most retailers validate a GTIN against the GS1 registry and check that the company prefix matches your brand — recycled numbers fail that check, often after you've already printed packaging.

How they work together

They're not alternatives; they sit in different fields on the same product and do different jobs.

FieldValueUsed for
SKUTEE-BLK-M-0042Your picking, reordering, reporting
Barcode / GTIN5012345678900Scanning, marketplaces, retail partners

Both are per-variant. A t-shirt in three colours and four sizes needs twelve SKUs and, if you sell it through channels that require them, twelve GTINs.

Common mistakes

Do

  • Keep SKU and barcode in separate fields
  • Assign one of each per variant
  • Buy GTINs from GS1 directly if you'll sell through marketplaces
  • Keep the supplier's code in its own reference field

Don't

  • Put a SKU in the barcode field — validators reject it
  • Embed the barcode inside the SKU
  • Share one GTIN across sizes or colours
  • Buy resold or "cheap" barcodes for marketplace listings

Get the SKU half sorted in a minute

The GTIN side needs GS1. The SKU side is free — define a pattern once and OtterLabel applies it across your catalog, with a separate barcode field kept exactly where it belongs.

Open the free SKU builder

No signup. Runs entirely in your browser.

Related guides