September 24, 2026· Scalez Team
UPC vs EAN vs GTIN: What Shopify Merchants Actually Need to Know
GTIN is the umbrella term for a product identifier barcode. UPC (12 digits, standard in the US and Canada) and EAN (13 digits, standard internationally) are both specific types of GTIN. Shopify's "Barcode (ISBN, UPC, GTIN, etc.)" field accepts any of them, but the sales channel or marketplace you're listing on usually expects a specific format, and getting it wrong is one of the most common reasons a listing gets rejected.
The short version
- UPC-A — 12 digits. Retail products sold in the US and Canada.
- EAN-13 — 13 digits. Retail products sold internationally, and increasingly in the US too.
- GTIN-14 — 14 digits. Cases, pallets, and other non-retail packaging units.
- GTIN — the umbrella term. Covers UPC, EAN, and GTIN-14 as a category.
If you sell only in the US, you'll mostly deal with UPC-A codes. If you sell internationally or source from overseas suppliers, you'll see a mix of UPC and EAN, and need to handle both correctly.
Why the distinction matters for Shopify merchants
Shopify doesn't validate barcode format. You can type any string into the barcode field and Shopify will save it. That flexibility means format errors don't get caught until a downstream system rejects them.
Marketplaces do validate it. Google Shopping, Amazon, and other channels check submitted GTINs against manufacturer databases. A UPC entered where an EAN is expected (or a barcode that's simply malformed) gets the listing flagged, suppressed, or rejected, often with an error message that doesn't clearly say why.
A common cause: spreadsheet formatting. Barcodes are numbers that need to behave like text. A 12-digit UPC with a leading zero, opened and re-saved in a spreadsheet program without forcing text formatting, silently loses that leading zero and becomes an 11-digit string that no longer matches anything. This is one of the most frequent sources of "valid" barcode data that still fails validation.
How to tell which format you actually have
- 12 digits, no letters: almost certainly UPC-A.
- 13 digits, no letters: almost certainly EAN-13.
- Fewer than 12 digits: likely a UPC or EAN that lost a leading zero somewhere in a spreadsheet or database.
- Contains letters or is a different length: may be an internal SKU rather than a true barcode, and won't validate on external marketplaces.
If you're not sure whether a supplier-provided code is correct, cross-check it against a UPC/EAN lookup database rather than assuming the supplier got it right — supplier data has the same error patterns as any other manual entry process.
Getting your catalog consistent
For merchants with a catalog that mixes formats (common after merging supplier lists or expanding into new markets), the goal isn't to force everything into one format — it's to make sure each product's barcode is the correct, valid code for that product, whatever format it happens to be, and that it's stored as text so nothing gets truncated on export or import.
Auditing this by hand across a large catalog is slow, so it's worth getting new products right from the start. With Scalez Barcode Scanner, you scan or paste a UPC or EAN and it looks the code up in barcode databases, pulls in the matched product details, and warns you if that code is already on a product in your store. New products start from a real, matched barcode instead of one typed in by hand.
FAQ
Is a UPC the same as a GTIN? No, but a UPC is a type of GTIN. GTIN is the overarching standard; UPC and EAN are specific formats within it. All UPCs are GTINs, but not all GTINs are UPCs.
Which barcode format does Shopify require? Shopify doesn't enforce a specific format in its barcode field, it accepts any string. The requirement comes from wherever you're selling the product: a marketplace like Amazon or Google Shopping will specify whether it expects UPC, EAN, or another GTIN format.
Why did my leading zero disappear from a barcode? This almost always happens when a barcode is opened in a spreadsheet program (like Excel or Google Sheets) without the column formatted as text. The program treats the barcode as a number and drops leading zeros. Re-format the column as text before re-entering or re-importing the data.
Mentioned in this post
Scalez Barcode Scanner →