Useful Tools

Reference

UPC vs EAN vs Code 128: which barcode does your store need?

The three barcode types Shopify merchants meet, decoded: what each encodes, where each is mandatory, what GS1 charges, and the one-question rule that picks the right type for your labels.

By Bastien HugonFounder & Engineer8 min readPublished July 9, 2026

TL;DR

One question decides it: does the code leave your store? Selling only through your own Shopify store and POS → Code 128 with your own values, free, today. Selling on Amazon, Google Shopping or wholesale to retailers → you need GS1-registered GTINs, rendered as UPC-A (12 digits, North America) or EAN-13 (13 digits, rest of world). UPC and EAN are the same GTIN system with different digit counts — not competing standards.

Barcode terminology mixes two ideas people constantly conflate: the number (what identifies the product) and the symbology (how bars encode it). UPC and EAN are numbers from a global registry drawn as their standard symbols; Code 128 is a symbology that will draw *any* characters you give it, registry or not. Once that distinction clicks, every 'which barcode' question answers itself.

The three, side by side

UPC-AEAN-13Code 128
What it isGS1 GTIN-12, drawn as the US retail symbolGS1 GTIN-13, the international twinA symbology — draws any ASCII data
Digits12 (11 + check digit)13 (12 + check digit)Variable length, letters + digits
Who assignsGS1 (licensed prefix)GS1 (licensed prefix)You — no registry
CostGS1 fees (below)GS1 fees (below)Free
Mandatory forAmazon/retail North AmericaAmazon/retail internationallyNothing — internal use
Scans in Shopify POSYesYesYes
DensityFixed layoutFixed layoutCompact — good on small labels

Note the last row: on the tiny Avery formats or narrow thermal rolls, Code 128's density is not a nicety — it is what keeps the symbol wide enough to scan with its quiet zones intact.

UPC and EAN: one system, two lengths

UPC-A and EAN-13 both encode a GTIN (Global Trade Item Number) from GS1, the nonprofit that runs the registry. An UPC-A is literally an EAN-13 whose first digit is 0 — scanners treat them identically, which is why a US product scans in a Paris supermarket. You license a company prefix from GS1, allocate numbers under it, and each number identifies one product *variant* globally, forever. That global uniqueness is what marketplaces check: Amazon validates GTINs against the GS1 database and flags codes whose registered brand does not match the listing.

Code 128: the internal workhorse

Code 128 encodes letters, digits and symbols at high density with a mandatory check character — the reason it is the default for internal SKU-driven labels, shipping cartons (GS1-128 is Code 128 carrying GTIN data) and every stockroom label your customers never see. There is no registry and no fee; uniqueness is your job, scoped to your own catalog. Sequential values with a catalog-wide duplicate check — the approach detailed in the unique numbers guide — is the entire discipline.

What GS1 actually costs (US, 2026)

RouteUp-frontRenewalFits
GS1 US single GTIN$30 / barcodenoneA handful of marketplace products
GS1 US prefix (10 numbers)$250$50/yrSmall catalogs headed to retail
GS1 US prefix (100 numbers)$750$150/yrGrowing catalogs
Third-party 'cheap UPCs'a few $ eachNothing that touches Amazon — recycled prefixes registered to someone else
Resold UPCs come from pre-2002 prefixes legally owned by other companies. The GS1 database attributes them accordingly, marketplaces cross-check, and listings get suppressed — usually after you have printed the labels. If a channel requires GTINs, license from GS1 directly; prices above are GS1 US list prices as of July 2026.

Decision path for a Shopify store

  1. 01

    Own store + POS only?

    Code 128 with your own sequential values. Free, immediate, and Shopify's barcode field plus any scanner handles it. Most stores stop here.

  2. 02

    Products already carry manufacturer UPC/EANs?

    Use those — enter the existing GTIN in Shopify's barcode field and print it as-is. Never invent a replacement for a product that already has a global identity.

  3. 03

    Heading to Amazon, Google Shopping or wholesale?

    License GTINs from GS1 for those products (table above), put the GTIN in the barcode field, and label with UPC-A/EAN-13. Your other products can stay Code 128 — the two coexist fine in one catalog.

  4. 04

    Print and verify

    Whatever the type: correct size, quiet zones, 100% scale, one scan test. Symbology choice never rescues bad printing.

Doing this with Solvi Barcode Labels

Solvi Barcode Labels renders whatever lives in your Shopify barcode field — existing UPC/EANs print as-is — and generates unique Code 128 values for variants that have none, checked against your entire catalog before saving. Mixed catalogs (GTINs on marketplace products, internal codes elsewhere) print together on the same sheet.

Frequently asked questions

Can I sell in my own store with made-up barcode numbers?

Yes — for your own store and POS, any unique Code 128 value works, and no registry is involved. The only hard rule is internal uniqueness: one value, one variant. The moment a product heads to a marketplace, it needs a GS1-registered GTIN instead.

Is an EAN just a UPC with an extra digit?

Functionally, yes: UPC-A is the 12-digit North American form and EAN-13 the 13-digit international form of the same GS1 GTIN system — a UPC-A equals its EAN-13 with a leading zero. Modern scanners and Shopify POS read both interchangeably.

Does Shopify validate what I put in the barcode field?

No. The field accepts any text — it does not check digits, uniqueness or GS1 registration. That freedom is what makes internal Code 128 schemes possible, and also why duplicate barcodes are a self-inflicted risk; the checking has to happen in your process or your app.

What is GS1-128 — a fourth type?

No: GS1-128 is Code 128 carrying structured GS1 data (GTIN, batch, dates) with application identifiers, used on shipping cartons and in logistics. Product labels on retail shelves use UPC/EAN; cases and pallets use GS1-128. Same bars, different payload conventions.

Related guides

Do this in minutes with Solvi Barcode Labels

Print barcode labels right the first time: unique codes, true-size sheets, ready in minutes.