Ask where the barcode gets scanned
One question decides almost everything: does this get scanned at a retail checkout, or only inside your own operation?
Retail checkout means the number has to be globally unique and traceable to you. That requires a company prefix from GS1, which costs money and takes an application. No barcode generator can hand you one, including ours, and any site offering free "UPC codes for Amazon" is selling you a number that belongs to somebody else.
Internal use means none of that applies. Warehouse shelves, asset tags, event tickets, your own picking system: you invent the numbering scheme, because the only scanner that will ever read it is yours.
Get that distinction wrong and you either waste money you did not need to spend, or get your listings suspended.
The retail formats, briefly
UPC-A carries 12 digits and dominates the US and Canada. If you picture a barcode on a cereal box in an American supermarket, you are picturing this.
EAN-13 carries 13 digits and is the international equivalent, standard across Europe, Australia and most of the world. A UPC-A is really an EAN-13 with a leading zero, which is why modern scanners read both without caring.
GTIN is the umbrella term for the number itself, as distinct from the picture of it. Marketplaces ask for a GTIN, and either a UPC or an EAN satisfies that.
ITF-14 goes on the outer carton rather than the retail unit. The case of twelve gets an ITF-14, each bottle inside gets its EAN.
For a physical product going into shops or onto Amazon, that is the whole decision tree: EAN-13 or UPC-A for the item, ITF-14 for the case.
The internal formats, which are more flexible than people expect
Code 128 is the workhorse. Letters, digits, punctuation, any length you like. Shipping labels, warehouse locations, batch numbers, asset tags. When a logistics system prints something that is clearly not a retail barcode, this is usually what it is.
Code 39 is the older cousin. Less dense, still common in automotive and defence supply chains because a great deal of installed equipment reads it, and no reason to change what works.
QR codes are a different species entirely. Two dimensional, they hold a great deal more, and they are read by phone cameras rather than laser scanners. Nobody scans a QR at a supermarket till.
For anything staying inside your own walls, Code 128 is the sensible default, and the barcode generator will produce it alongside the retail formats.
The check digit, and why your barcode does not scan
UPC and EAN numbers end in a check digit, calculated from the digits before it. Scanners recalculate it and reject the code if it disagrees. This catches a mistyped digit before it becomes a wrong product at a till.
The arithmetic is simple enough to do by hand. Working right to left across the digits before the check, multiply alternating positions by 3 and 1, add the results, then take whatever gets you to the next multiple of ten.
Take 03600029145. The weighted sum comes to 58, and reaching 60 needs 2, so the full UPC is 036000291452.
Nearly every "my barcode will not scan" problem is one of three things: a wrong check digit, printing it too small, or leaving no quiet zone. That last one catches people constantly. A barcode needs clear white space either side, and designers who tuck it neatly against a border have just broken it. Give it room and print at least 80% of nominal size.
One more, specific to shipping: if the label is behind shiny plastic film, the scanner may see its own reflection instead of the code. Matte labels exist for that reason.
Where QR codes are genuinely the right answer
QR earns its place whenever the target is a phone rather than a scanner.
A code on packaging leading to assembly instructions, so you stop printing them in nine languages. A code on a table leading to a menu. A code on an invoice leading to a payment page. A code on a business card leading to a contact file.
Two practical cautions. Keep the URL short, because a long one packs more data in and makes the pattern denser and harder to read at small sizes or from a distance. And print the destination in text nearby, since a QR code is unreadable to a human and plenty of people will not scan a code that does not say where it goes.
The QR generator here encodes the link directly into the image, with no redirect service in between. That matters more than it sounds: a QR built on a shortener stops working the day the shortener does, which for anything printed on packaging is a genuinely bad outcome.
Getting the numbers into your store
Once you have codes, the tedious part is loading them.
Marketplaces validate GTINs on upload, and a mismatch between the number in your feed and the barcode on the box causes rejections that are hard to diagnose from the error message. Enter each one once, in one place, then copy from there.
For a bulk load, a Shopify product CSV puts the barcode field alongside the rest of the product data so the numbers arrive with the products rather than in a later pass.
On the outbound side, a packing slip carrying the same codes lets a warehouse verify a picked order by scanning rather than reading, which removes the most common cause of a wrong item shipped.
A short answer for the impatient
Selling in shops or on marketplaces: EAN-13 or UPC-A, with a GTIN bought from GS1.
Shipping cartons of those: ITF-14.
Anything internal, any length, letters allowed: Code 128.
Pointing a phone somewhere: QR.
Questions people ask
Length and geography. UPC-A holds 12 digits and dominates the US and Canada; EAN-13 holds 13 and is the international standard. A UPC-A is effectively an EAN-13 with a leading zero, and modern scanners handle both, so the practical difference is mostly which market you sell into.
You can generate the image for free, but not the number. Retail barcodes must trace to a company prefix issued by GS1, which costs money. Sites offering free UPCs for Amazon are reselling numbers registered to someone else, and listings using them get suspended.
Almost always a wrong check digit, a code printed too small, or no quiet zone. The quiet zone is the one designers break: a barcode needs clear white space on both sides, and pushing it against a border or graphic makes it unreadable. Print at 80% of nominal size or larger.
Code 128. It takes letters and digits, has no fixed length, and no external body needs to approve your numbering because only your own scanners will read it. Code 39 remains common in automotive and defence supply chains where existing equipment expects it.


