# 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.

- Source: https://storestandards.com/blog/barcode-types-for-shopify-stores/
- Published: 2026-06-18
- Author: Tom Beckwith, Engineer, Store Standards
- Topics: Barcodes, Stock accuracy

## Key points

- Put the barcode that is printed on the product into Shopify's barcode field, one per variant, with no spaces.
- EAN-13 and UPC-A are the two you will meet most. Code 128 is what you print yourself for things that have no barcode.
- A QR code is not a retail barcode. Do not put one in the barcode field and expect a scanner to like it.

---

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`, not `5 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

A [GTIN](https://storestandards.com/glossary/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, the rest is printing.
[StandardLabel](https://storestandards.com/products/standardlabel/) prints from the manufacturer barcode
where there is one, and assigns an in-store code where there is not, 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:

1. Export your products from Shopify as CSV.
2. Sort by the barcode column and count the blanks.
3. 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](https://storestandards.com/blog/receive-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](https://storestandards.com/blog/why-shopify-stock-counts-drift/)
goes through the rest of the leaks.

Before you type a number into the barcode field, check it is a real one. The
[barcode check digit calculator](https://storestandards.com/tools/barcode-check-digit-calculator/) will
tell you in a second, and it is free.