Blog
Barcode types every Shopify store should know
EAN, UPC, Code 128 and QR explained in plain English, which one belongs in Shopify's barcode field, and what to do when a product has none.
4 min read
Scanning only works if the number on the box matches the number in Shopify. That sounds obvious, and it is where most scanning setups fall over in the first hour.
This is what the common barcode types are, which one goes in Shopify, and what to do when a product turns up with nothing printed on it.
Where barcodes live in Shopify
Every variant in Shopify has a barcode field, next to SKU. It sits under Inventory on the product page. It holds one value, as text.
Three rules keep it useful:
- One barcode per variant. A medium navy jacket and a large navy jacket are different variants and need different barcodes.
- No spaces, no dashes.
5012345678900, not5 012345 678900. - Do not reuse the SKU. A SKU is your internal code. A barcode is the number physically printed on the item, and the two are rarely the same.
If a scanner beeps and nothing happens, the barcode field is the first place to look. Nine times in ten it is empty, or it has a space in it.
EAN-13
Thirteen digits, used everywhere outside North America. If you buy from a European supplier, this is what is on the box.
You can spot one by counting: thirteen digits, usually starting with a country
prefix. A UK-registered product often starts with 50.
EAN-13 is what you should put in Shopify’s barcode field for most retail products sold in the UK, Europe, Australia and New Zealand.
UPC-A
Twelve digits, used in the United States and Canada. Same idea as EAN-13, one digit shorter.
A UPC-A can be written as an EAN-13 by putting a zero in front. Some suppliers send you one form and print the other. If your scans are missing by exactly one leading zero, that is what has happened. Pick one form, use it everywhere, and fix the supplier feed rather than the products.
GTIN, and why people confuse it
GTIN is not a barcode type. It is the umbrella name for the number inside one. An EAN-13 holds a GTIN-13, a UPC-A holds a GTIN-12.
It matters because Google Merchant Center and most marketplaces ask for a GTIN. If your Shopify barcode field has the real printed number in it, you already have one, and your product feed will pass validation without extra work.
Code 128
The one you print yourself.
Code 128 can hold letters as well as numbers, and it can be any length. That makes it the right choice for internal labels: your own SKU, a bin location, or a batch number. It is dense and reads well at small sizes, which is why almost every warehouse label uses it.
Use Code 128 when a product has no manufacturer barcode. Use it when you break a case into singles that need their own label. Use it when you want to scan something that is not a product at all, such as a shelf.
Code 39
Older, longer, less dense. You will still meet it on some industrial and automotive parts. It works, and every scanner reads it, but there is no reason to choose it for new labels when Code 128 exists.
QR codes
A QR code is a two-dimensional code, not a retail barcode. It holds a lot, often a URL, and it is designed to be read by a phone camera at any angle.
Two things to know:
- Most Bluetooth retail scanners are one-dimensional laser scanners and cannot read a QR code at all. A camera-based app can.
- Do not put a QR code’s contents in Shopify’s barcode field. It will not match anything a normal scanner produces.
QR codes are good for a link on a shelf edge or a returns slip. They are not good for identifying a variant.
What to do about products with no barcode
Plenty of stock arrives naked: handmade goods, own-brand lines, bulk items split into singles.
You have two sensible options.
Print your own Code 128 labels from your SKU. Cheap, and it makes every item scannable. A thermal label printer costs about the same as a week of someone’s time spent counting by hand.
Buy real GTINs from GS1. Worth it only if you sell wholesale, or list on marketplaces that require a genuine GTIN. For selling through your own store, your own Code 128 labels are fine.
What you should not do is invent thirteen-digit numbers that look like EANs. They will one day collide with a real product, and the day you find out will be expensive.
Once every variant has a barcode, scanning a delivery takes about a second an item. PLACEHOLDER reads both manufacturer barcodes and your own Code 128 labels, so a mixed range is not a problem.
Getting your barcodes in before you start scanning
Before switching a stockroom over to scanning, run this check:
- Export your products from Shopify as CSV.
- Sort by the barcode column and count the blanks.
- Fix the blanks before the next delivery, not during it.
A delivery is the worst possible moment to discover that a third of your range has no barcode. Once the field is filled, a scan takes about a second per item and the count is right the first time. Our walkthrough of receiving a purchase order in Shopify covers what that looks like end to end.
If you want to see where missing barcodes are quietly costing you stock accuracy, why your Shopify stock count drifts goes through the rest of the leaks.
Engineer
Writes most of the code that talks to Shopify. Spent six years on warehouse software before that, which is why the sync queue is boring and never loses a scan.
Related reading
How to receive a purchase order in Shopify
A step by step method for booking in a delivery against a purchase order in Shopify, why counts drift, and how to handle short and over deliveries.
Priya Raghunathan
5 min read
Why your Shopify stock count drifts, and six ways to stop it
The six places Shopify inventory goes wrong in a real store, how to work out which one is costing you, and the fixes that hold without adding a daily count.
Nia Chambers
4 min read