Make packaging codes

QR codes on product packaging

Packaging real estate is expensive and instructions age badly. A QR code moves the manual, the how-to video, and the warranty form off the box and onto a page you can keep current for the product’s whole shelf life.

What packaging codes are used for

Dynamic codes fit packaging’s timescale

Packaging outlives web pages. A box printed this quarter may be scanned three years from now, on a shelf, in a garage — long after your site got rebuilt and /products/v2/manual stopped existing. That mismatch is the argument for dynamic codes on packaging: the printed link never changes, and you repoint it whenever the destination moves, the manual gets a revision, or marketing wants the spring campaign page in front of springtime buyers. For regulated or extremely long-lived goods where a third-party dependency is unacceptable, use a static code to a URL you commit to maintaining forever — and treat that URL as a contract.

Print production: getting the file right

Per-SKU codes at production scale

Real product lines need a code per SKU, sometimes per batch. That is a spreadsheet job, not a one-at-a-time job: one row per SKU with its destination URL, filename column set to the SKU itself, through the CSV batch workflow. The ZIP comes back with files named SKU-1042.png, which drops straight into automated label layouts, and the product database that generated the sheet remains the single source of truth. Styling is batch-wide, so the whole line shares one visual standard — and one scanability review covers every SKU.

Placement on the package

Test like it ships

  1. Scan a press proof or sample at final size — on the real substrate, filled and sealed for curved containers.
  2. Test under store-like lighting and a dim garage; both are real scanning environments for packaging.
  3. Scuff a sample deliberately (keys, tape pull) and confirm it still scans — that is your error-correction budget doing its job.
  4. Check the destination page on a phone, because 98% of packaging scans are phones.
  5. Re-verify destinations quarterly for static codes; for dynamic codes, the dashboard doubles as the inventory of everything your packaging points at.

Measuring engagement

Dynamic packaging codes report scans over time, device split, and coarse location. In practice: registration-code scans track closely with units actually reaching customers (useful against sell-through), setup-video spikes after a retail promotion confirm the promotion moved product, and a support-code surge on one SKU is an early-warning signal your support team will appreciate before the ticket queue shows it.

Lot- and batch-level codes for traceability

Beyond per-SKU codes there is a finer-grained pattern worth knowing: per-production-lot codes. Each manufacturing run gets its own code (generated from the lot sheet via the CSV workflow, filename column set to the lot number) pointing at a page for that specific batch — production date, line, QA sign-off, and any lot-specific notices. Two payoffs. First, customer-facing traceability: “scan to see when and where this was made” is a trust feature that premium food, cosmetics, and supplement brands increasingly print as standard. Second, incident response: if a lot ever needs a notice or recall, the page behind that lot’s code carries it — reaching exactly the affected units without touching the rest of the line. With dynamic codes, the lot pages can even be retargeted after the fact, turning packaging printed months ago into a recall communication channel you did not know you had. The marginal cost over per-SKU codes is one extra column in the spreadsheet you already keep.

Multi-language and multi-market routing

Products that ship to several markets face a label problem QR codes partially dissolve: the manual in eleven languages does not fit in the box, but a destination page can detect the phone’s language and serve the right one. Structure it as one code → one language-detecting landing page (or a simple language chooser), rather than one code per language — a single code keeps the artwork identical across markets, which simplifies both printing and regulatory review. Where markets require distinct regulated content (dosage text, safety warnings, compliance marks), keep that content printed on the label as law requires and let the code carry the extended material — the code supplements compliance text, it never replaces it. For brands staging market entry, a dynamic code adds one more trick: the same packaging can point at a distributor page in one region and a direct-sales page in another, switched server-side by updating the destination as your channel strategy evolves — no artwork revision, no re-approval of the printed label.

Common questions

Static or dynamic for packaging?
Dynamic for anything with a shelf life longer than your website’s redesign cycle — which is nearly everything. Static only when you can guarantee the destination URL for the product’s lifetime.
What size for a small label?
2×2 cm minimum for in-hand scanning. Below that, move the code to an insert card instead of shrinking it into unreliability.
Can I get a vector file?
Export is high-resolution PNG; at 1024 px it prints sharp at any label size a package uses. Place at final size without upscaling and raster is a non-issue.
One code for the whole line, or per SKU?
Per SKU if destinations differ or you want per-product analytics — the batch workflow makes per-SKU as cheap as one. One shared code only for a genuinely shared destination.
Will a code survive shrink wrap?
Usually — tight, clear wrap scans fine. Loose or tinted wrap adds glare and distortion; test wrapped samples, and prefer printing on the wrap-free face.
Does the code affect the barcode scanning at checkout?
No, retail scanners target the UPC symbology — but keep them visually separated so humans do not aim the wrong scanner at the wrong code.
Where should the destination pages live?
On your own domain, under URLs you control long-term — yourbrand.com/support/sku-1042. Third-party hosts and link shorteners add a second dependency with a different lifespan than your packaging.

Make packaging codes →

Related guides