Packaging as a channel

Your packaging is already a sales channel

Every carton you print is a paid impression you've already bought. Most brands measure none of them, and can't sell from any of them. That's a strange place to have ended up.

9 min read Forage

A brand doing 400,000 units a year through retail generates 400,000 moments in which a person is holding the product, has a phone in the other hand, and has already decided they like it. No paid channel delivers intent like that at any price. Almost none of it is measured, and for most brands none of it is shoppable.

The media you already own

Think of your printed and physical surfaces the way a media planner would think about inventory: reach, context, and what a person is capable of doing in the ten seconds after they see it.

SurfaceWhat the moment isThe job a scan should do
Primary pack — can, bottle, boxAlready bought it, currently enjoying itReorder in two taps. The highest-value job on this list.
Shipper / outer cartonUnboxing, at home, aloneReorder, or register for the loyalty balance they just earned.
Shelf-edge and windowIn store, deciding, or outside after closingBuy the variant that isn't stocked; buy at 11pm when the shop is shut.
On-trade: coasters, menus, table talkersDrinking it right now, relaxed, phone on the tableTake a case home. This is the highest-conversion context most drinks brands never use.
Events and festivalsTried it, liked it, can't carry itShip it to them. Solve the "I can't take this home" problem.
Out-of-home and billboardsSeconds of attention, hands freeOne product, one price, one tap. Anything more is wasted.
Video and streamingSecond screen already in handThe thing on screen, purchasable while it's on screen.
Labels and hang-tagsIn hand, in a fitting room, at a marketThe size that isn't in stock; the colour that is.
Per-unit serialised codesAuthenticity, provenance, warrantyVerify it's genuine, then register it — and now you know who owns it.

Two things stand out when you lay it out like this. First, every row is a moment you already pay for — the print run, the stand, the sponsorship, the media buy. Adding a route to checkout is close to free at the margin. Second, the jobs are all different. A billboard scan and a coaster scan want completely different destinations, which is the single most common reason these programmes underperform.

The most expensive mistake in scannable packaging is pointing every code at the homepage.

The arithmetic, honestly

Everyone wants a number. The honest answer is that scan rates vary enormously with placement, promise and category, so a single number would be a fiction. What's useful instead is the shape of the sensitivity — which inputs actually move the outcome.

Illustrative model — not a customer result

Inputs: 400,000 units shipped a year · average order value £28 · a code on the primary pack pointing to a reorder flow. Everything below is arithmetic on those inputs and the row/column values shown. No Forage customer's data is used here, and none of these figures should be read as a benchmark or a forecast. The point of the table is the spread, not any single cell.

If this share of units gets scanned……and 5% of scans buy…and 10% buy…and 20% buy
0.5% (2,000 scans)£2,800£5,600£11,200
1.5% (6,000 scans)£8,400£16,800£33,600
3% (12,000 scans)£16,800£33,600£67,200

Three observations that matter more than the cells:

  • The revenue is not the interesting output. Even the best cell here is a modest line for a brand shipping 400,000 units. Read the middle row again: 6,000 scans, of which 600 buy. A scan on its own is anonymous — a camera opening a web page tells you nothing about who is holding the can. But those 600 buyers are identified first-party customers acquired at a marginal cost of approximately zero, most of whom you would otherwise never have known existed because a retailer owns the transaction. (Marketing consent is a separate ask at checkout, and only some of them will give it.) That asset compounds; the £16,800 doesn't.
  • Scan rate and conversion move independently, and you influence them with different levers. Scan rate is a design and copy problem — placement, promise, print size. Conversion is a speed and checkout problem. Teams routinely try to fix a scan-rate problem by redesigning the store.
  • Cannibalisation is real and you have to model it. Some share of these orders would have happened anyway, in retail, at a lower margin to you but at zero acquisition cost. If you don't decide in advance how you'll estimate that, someone in finance will decide for you, less generously. We wrote about how to measure cannibalisation before you print.

What makes a code get scanned

Scan rate is not a property of QR codes. It's a property of what you promised and how easy you made it. Cameras stopped being a barrier years ago; a bad scan rate is now almost always a design failure.

Anatomy of a code that gets scanned A pack panel with a code on it, annotated: say what the scan does; print it at least 20mm across; leave a clear quiet zone; put it on a flat matte panel with high contrast; and use a destination you can change without a reprint. SCAN TO REORDER 2 taps to a full case Say what the scan does. “Scan to reorder”, never “scan me” and never a bare code. At least 20mm across on pack — larger if the surface curves or the print is coarse. Keep the quiet zone clear: no seam, no varnish edge, no crowding text. Flat panel, matte finish, hard contrast. Gloss under supermarket lighting kills scans. A destination you can change later.
The failure modes are boring and physical: too small, on a curve, under gloss, next to a seam, or promising nothing. Fix those before blaming the technology.

The last point deserves its own paragraph, because it's the one that costs the most to get wrong. Print is permanent; your catalogue isn't. A code that resolves to a fixed product URL becomes worthless the day that SKU is discontinued, renamed or restocked — and you'll have 400,000 of them in the wild. The destination has to be a redirect you control, so that the same physical code can point at a reorder flow in January, a limited edition in June, and a replacement SKU in December.

If you're using Apple's App Clip Codes specifically, note that the URL you encode affects scan reliability at small sizes — shorter is better, and packaging is exactly where that bites.[5]

Where the scan should land

The scan is the easy half. What arrives in the next two seconds decides everything, and it's where most of these programmes quietly die.

  • The product, not the shop. The person is holding the thing. Show them that thing, with its price, and a wallet button. A homepage asks them to find it again, and they won't.
  • No account, no app. Forced account creation is one of the most-cited reasons for abandoning a checkout, named by 18% of abandoners.[1] At a bus stop, it's higher.
  • Fast, and then faster. A tenth of a second of mobile speed was associated with 8.4% higher retail conversion across 30 million sessions.[3] A scan is the most latency-sensitive traffic you'll ever get: there's no bookmark, no back button, no second visit.
  • The wallet, ready. Digital wallets were 56% of global online spending in 2025.[4] The person scanning your can already has one configured, which is why one-tap checkout is already the default. Use it.
  • Both runtimes. On iOS an App Clip can run without an install; on Android there is no longer an install-free native option at all, so the web path has to be excellent. The details are in App Clips, explained for Shopify brands.

The conversation with your retailer

This is the objection that kills more packaging projects than any technical constraint, and it rarely gets written about, so: yes, your retail and distribution partners may have views about a code on your pack that sells direct.

Some ways brands navigate it, roughly in order of how well they tend to go down:

  • Sell what the retailer doesn't stock. The variety pack, the limited edition, the size that never got a listing, the merch. You're not competing; you're extending the range.
  • Sell the case, not the unit. Nobody's grocery buyer worries about a 24-pack subscription. That's a different occasion.
  • Route by context. A code can resolve to "find a stockist near you" in the territories where that's the deal, and to a checkout everywhere else. Same code, different destination — which is another reason the destination has to be dynamic.
  • Give the data back. Scan density by region is genuinely useful to a retail partner, and offering it converts a threat into a joint programme.
  • Start on surfaces they don't own. Events, on-trade, DTC shippers and your own channels have none of this politics. Prove the mechanic there, then have the conversation with evidence.

"Nobody scans QR codes"

The strongest form of this objection isn't that the technology doesn't work — cameras handle it natively and people scanned their way through several years of restaurant menus. The strongest form is: codes on packaging have a track record of disappointing, and I've seen it happen.

That's fair, and worth being precise about why. In our experience the disappointments have a consistent anatomy: a code with no stated benefit, at 12mm, on a curved gloss surface, resolving to a slow homepage with a cookie banner, with no way to change the destination afterwards. Every one of those is a decision someone made, and every one is fixable before the print run rather than after.

The honest caveat in the other direction: a code will not rescue a product nobody wants to buy again. This mechanic multiplies existing demand. If your repeat-purchase rate is near zero for reasons of product or price, start there instead.

Where to start

  1. Pick one surface, not nine

    The highest-intent one you fully control. For most CPG brands that's the outer carton on DTC orders or an on-trade coaster — no retailer politics, fast to produce, quick to read a result from.

  2. Decide the one job

    Reorder, or acquire the contact, or verify authenticity. One. A code that tries to do three things converts on none of them.

  3. Write the promise before you generate the code

    Five words, above the code, describing what happens. If you can't write it, the code isn't ready.

  4. Build the destination first, and time it

    On a real phone, on cellular, cold. If it isn't fast, nothing after this matters.

  5. Agree the measurement before you print

    Which units get codes, which don't, what you'll compare, and how you'll treat cannibalisation. Retrofitting this is how good results become unpersuasive ones. Here's the measurement design we'd use.

Sources

  1. Baymard Institute, Cart Abandonment Rate Statistics — 18% of shoppers who abandoned during checkout cite required account creation as a reason; the survey excludes the "just browsing" segment and permits multiple answers, so shares are reason-weights among abandoners, not shares of all buyers. Primary ↩
  2. Deloitte with Google, Milliseconds Make Millions — 30m sessions, 37 brands. Observational. Primary ↩
  3. Worldpay / Global Payments, Global Payments Report 2026, Trend 3. Primary ↩
  4. Apple, App Clips documentation — App Clip Codes, and encoding a URL efficiently for reliable scanning. Primary ↩