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.
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.
The comparison at a glance
| SKU | UPC / EAN (GTIN) | |
|---|---|---|
| Assigned by | You | GS1, the global registry |
| Cost | Free | Paid — a GS1 licence |
| Format | Any; your pattern | Fixed: 12 digits (UPC) or 13 (EAN) |
| Readable meaning | Yes, by design | No — just a number |
| Scope | Your business only | The same product, worldwide |
| Changes if you switch supplier | No | Yes — it belongs to the maker |
| Required for | Nothing; but everything gets harder without it | Amazon, 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.
- UPC — 12 digits, the North American standard.
- EAN — 13 digits, used in Europe and most of the rest of the world. An EAN is a UPC with a leading country digit.
- ISBN — the book-specific flavour, which is also a valid GTIN.
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… | SKU | GTIN |
|---|---|---|
| On your own Shopify / WooCommerce store | Yes | Not required |
| On Amazon | Yes | Yes (with rare exemptions) |
| Via Google Shopping ads | Yes | Yes, for branded goods |
| Into physical retail / wholesale | Yes | Yes |
| Handmade, one-of-a-kind pieces | Yes | Usually 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.
| Field | Value | Used for |
|---|---|---|
| SKU | TEE-BLK-M-0042 | Your picking, reordering, reporting |
| Barcode / GTIN | 5012345678900 | Scanning, 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 builderNo signup. Runs entirely in your browser.