Use cases
Putting a QR code on product packaging
Where the QR code goes relative to the retail barcode, the minimum module size for flexo versus offset, curved surfaces, and what belongs behind the code.
The pack came back from press with a QR code that scans perfectly on the flat proof and fails on the finished carton, and the retailer’s cashier is now scanning it by accident instead of the EAN-13. Both problems were made in the artwork, months before anything was printed.
Keep it away from the till barcode
The retail barcode and the QR code do two unrelated jobs, and the person at the till does not care which is which. Their scanner is pointed roughly, at speed, by someone who is not looking.
- Different panel, if you can. The EAN-13 goes where the retailer expects it — usually the lower right of the back or base panel. Put the QR code on the front or a side panel, where a shopper will look for it and a cashier will not.
- If they must share a panel, separate them properly. At least 10 mm of clear space beyond both quiet zones, and never in a row that looks like a scanning strip. Two codes side by side produce double reads and mis-scans, and a retailer will raise it as a compliance issue.
- Never let the QR code encode the GTIN as bare digits. A handheld imager
that reads both symbologies will happily return
5012345678900from your QR code and the till will price it as a product. If the code carries the GTIN, carry it inside a URL. - On a shipping case, the same applies to the ITF-14. Its bearer bar and wide bars are unmistakable to a person but not to a scanner aimed between the two.
Module size by print process
The print size guide puts the practical floor at 0.4 mm per module for offset and digital, and 0.6 mm for thermal and rough surfaces. Packaging stretches that range in both directions, and the process is usually decided before the artwork is:
| Process | Practical minimum module | Why |
|---|---|---|
| Offset, gravure or digital on coated board | 0.40 mm | Clean dot, tight registration |
| Flexo on film or coated paper | 0.50 mm | More ink spread than offset |
| Flexo direct on corrugated | 0.75–1.00 mm | Rough fluted surface, heavy dot gain |
| Thermal transfer, 203 dpi | 0.625 mm | A module must be a whole number of 0.125 mm dots — five of them |
| Inkjet or laser coding on the line | 0.60 mm | Variable data, less control over the mark |
Multiply by the module count to get the symbol width. A version 3 code — what
https://shop.example/p/12345 encodes to at level M — is 29 modules plus an
eight-module quiet zone, so 37 modules across:
- 0.40 mm → 14.8 mm
- 0.50 mm → 18.5 mm
- 0.625 mm → 23.1 mm
- 0.75 mm → 27.8 mm
That is the number to hand the designer, and it is why shortening the URL is a packaging decision. Every UTM parameter bolted onto the destination pushes the version up and the symbol wider on a panel that has no spare width. Tag the destination with a redirect instead — the UTM article explains how to keep the attribution without paying for it in modules.
Substrate and finish
Corrugated. Direct print on brown board is the hardest case: dark base colour, rough surface, heavy dot gain. Print onto a white flexo panel if you can, keep the module large, and never put the code across a flute crease.
Film and flexible packaging. Film moves under tension, and a code on a gusset or a section that will be folded is a code printed on a fold. Check the die line, not the flat artwork.
Foil and metallised board. Highly reflective, and a camera’s own light comes straight back at it. The code needs a matte white patch underneath.
Varnish and lamination. Matte beats gloss every time. A spot gloss varnish over a QR code is a self-inflicted wound: the specular highlight blows out part of the symbol at exactly the angle a person naturally holds a phone. If the whole pack has gloss, ask for a matte knock-out over the code area.
Curves, sleeves and distortion
A QR code is only decodable while the modules stay on a grid.
Cylinders. On a can, bottle or tube, keep the code narrow relative to the diameter so the wrap-around is small — a rule of thumb is to keep the symbol inside about a quarter of the circumference. Raise error correction to Q, but understand that this raises the module count too, so size the code for the higher version rather than squeezing it.
Shrink sleeves. These distort unevenly wherever the container is shaped, and a square printed flat comes off the tunnel as a curved parallelogram. Put the code on the most cylindrical section, and have the sleeve supplier apply their distortion map to the code as they do to the type. Do not scale it manually to “look right” flat.
Tapered pots and shaped bottles. Treat the code as a rigid object: it needs a flat or near-flat landing area of its own, even if that means it sits in a slightly odd place on the design.
The quiet zone against a busy design
Four modules of clear margin on every side. On packaging this is the rule that gets broken first, because the code is dropped into a design that already fills the panel.
Two things count as breaking it. Cropping the margin so the code sits flush against a coloured block is the obvious one. The subtler one is setting the code on a background that is merely light-ish — a pale texture, a watercolour wash, a photograph of pastry. A background that varies in brightness across the symbol denies the decoder the clean boundary it needs.
The fix is a solid light panel behind the code, measured from the edge of the symbol outwards. If the design cannot afford the panel, shrink the code and keep the margin: a smaller code with a correct quiet zone beats a larger one without.
What goes behind the code
Packaging QR codes fail commercially far more often than they fail technically, and they fail by landing somewhere useless.
Worth encoding: full ingredient and allergen detail that will not fit on the pack; provenance and batch information; assembly or care instructions with video; a re-order or subscribe link; recycling and disposal guidance for the specific components; a registration or warranty flow.
Not worth encoding: a link to your home page, a link to a social profile, or — the most common mistake — a PDF. A PDF on a phone means a download, a viewer, pinch-zoom on body text, no responsive layout and nothing an assistive technology can read well. The same argument, worked through for a dining room, is in the QR menu article, and it applies identically to a carton. Serve a real, mobile-first page.
Whatever is behind the code, it must outlive the product on shelf. A static QR code encodes your URL literally and never expires, so the failure mode is not the code, it is your own URL structure changing. Point it at a path you are willing to keep alive for years, and own the redirect behind it rather than renting one from a third party that can disappear.
GS1 Digital Link and the direction of travel
The interesting development is that the marketing code and the identification code are converging. A GS1 Digital Link is an ordinary HTTPS URL whose path carries the identifiers a barcode would:
https://id.example/01/09501101020917
https://id.example/01/09501101020917/10/A1B2C
A phone treats that as a link and opens the page. A GS1-aware scanner reads the
same symbol and extracts GTIN 09501101020917 and batch A1B2C as structured
data. One symbol, two audiences. GS1’s 2D programme — widely referred to by its
2027 target date — is pushing retail point-of-sale scanners towards accepting
2D symbols alongside the linear ones, at which point a pack could in principle
carry one code instead of two.
Today it cannot. Retail tills still expect the linear symbol, so the EAN-13 stays and the QR code sits beside it. But if you are designing packaging with a multi-year life, structuring the destination URL as a Digital Link now costs nothing and means the code is already the right shape when your retailers are ready. The GS1 standards site has the current URI syntax.
Note the practical cost: a Digital Link URL is longer than a short vanity link.
https://id.example/01/09501101020917 is a 29-module version 3 symbol at level
M, and adding a batch AI keeps it at 29. Add a serial number as well and it goes
to version 4 — 33 modules, 41 across with the quiet zone, which at a 0.5 mm
flexo module is 20.5 mm rather than 18.5 mm. Budget the width before you commit
to the format.
Surviving the supply chain
The code has to work at the end of the journey, not on the press sheet. Cartons are stacked, scuffed, shrink-wrapped, chilled, condensated and handled by forklift. Before the plates are cut:
- Print a proof at final size, on final substrate, and put it through the full testing procedure — three phones, real lighting, angle sweeps.
- Scuff the proof deliberately with a fingernail and scan again. That is your error correction margin, measured rather than assumed.
- Check the code on a pack that has been chilled and brought out to room temperature; condensation on film is a real failure mode in retail.
- Confirm the code is not on a panel that gets a price gun label, a promotional flash or a shelf-ready tear line.
Generate the codes for those proofs in the browser, and the linear symbols they sit beside on the barcode generator.
Frequently asked
Can a QR code replace the EAN-13 barcode on a product?
How far apart should the QR code and the retail barcode be on a pack?
What is the minimum module size for a QR code printed flexo on corrugated?
Does a QR code survive a shrink sleeve?
- packaging
- gs1
- flexo
- retail
Make the code this guide describes
The generator runs in your browser — add a logo, pick colours, tag the link with UTM parameters and download a PNG or SVG. No account, no watermark.
Keep reading
-
Barcodes
EAN-13 vs UPC-A: which one your product needs
UPC-A is an EAN-13 with a leading zero, so the real question is where your number came from. Digit counts, check digits, GS1 prefixes and the case code.
-
Printing
What size should a printed QR code be?
The distance-to-size rule that decides whether a printed QR code scans, the minimum millimetres per module, and the quiet zone people keep cropping off.
-
Printing
Test a QR code properly before you print a thousand of them
A repeatable procedure for proving a QR code before the print run: final stock, three phones, lighting, angle sweeps, the destination and ISO grading.