Ecommerce & retail
QR codes for click and collect
Click-and-collect QR codes are consumer-presented: the customer shows a code from their phone and the store scans it. Keep the payload a short opaque token, not a long URL, so hardware scanners read it fast off a screen, and always print a human-readable fallback code beside it for when scanning fails.
The direction is reversed
Most retail QR codes are merchant-presented: printed by the business, scanned by the customer. Collection codes flip it, the customer presents a code from their order confirmation and the store scans it to release the order. That family of patterns is described in consumer-presented QR for payments, and the same engineering realities apply here:
- The code is displayed on a phone screen and read by a hardware scanner or a staff device, so screen-scanning issues (brightness, glare, cracked screens, auto-dimming mid-queue) are the failure modes.
- The scan must be fast at a service point: a code that takes three seconds to lock is a queue.
Both point at the same design rule: short payloads. A collection code should contain
an opaque token (PU-7F3K9Q2M or a compact URL wrapping it), not a 300-character signed
JSON blob. A version 2–3 code with large modules locks near-instantly on a scanner;
dense codes on dim screens are where collection flows go wrong. Validation belongs
server-side, keyed by the token.
The three collection flows
Counter pickup. The confirmation email/page shows the QR plus (always) the token in human-readable text beneath it. Staff scan, or type the eight characters when the screen is cracked or the scanner is down. Skipping the printed fallback is the most common implementation mistake in the whole pattern; screens fail at service points daily.
Lockers. The locker bank's camera reads the customer's code and pops the door. Two codes exist here and they must not be confused: the customer's collection code, and often a merchant-presented code on the locker bank that opens the pickup web page for customers who arrive without the app. Label the second one clearly with what it does.
Kerbside. The customer parks and scans a merchant-presented code on the bay sign, which opens a check-in page, order number prefilled from the URL if they tapped through from the confirmation, otherwise a short form plus bay number. Staff bring the order out. Bay-sign codes are outdoor print at car-window distance: ≥ 5 cm, laminated matt, per the outdoor durability rules. Generate one per bay in bulk with the bay in the URL.
Practical build notes
- Tokens are bearer credentials. Anyone with the code collects the order. Expire them after collection, scope them to one order, and require ID or the order name for high-value goods. Treat screenshots of collection codes like tickets, not like links.
- Email clients mangle images. Embed the QR at at least 300 × 300 px, and repeat the text token, dark-mode inversion in some clients can render a code unscannable, and the inverted-code failure applies to email templates too.
- Offline behaviour: the confirmation page should cache the code so it renders in a concrete-and-steel collection area with no signal.
- Same-day churn means codes can be short-lived, unlike packaging codes, permanence is not the constraint; revocability is.
FAQ
What should a click-and-collect QR code contain?
A short opaque token identifying the order, not customer data, not a long signed payload. Short payloads make low-density codes that hardware scanners read quickly from phone screens, and the server does the validation.
Why include a text code under the QR?
Because screens crack, brightness drops, and scanners fail. A human-readable eight-character token beside the code lets staff type it and keeps the queue moving. It is the cheapest resilience in the whole flow.
How do kerbside pickup QR codes work?
A merchant-presented code on each bay sign opens a check-in page with the bay number in the URL; the customer confirms their order and staff bring it out. Bay signs are outdoor print: 5 cm codes, matt lamination.
Are collection QR codes secure?
They are bearer tokens: whoever shows the code gets the order. Single-use tokens, expiry after collection and an identity check for high-value orders are the standard mitigations. Never encode personal data in the code itself.
Try it: free, no signup
Related
- QR codes for returns and exchanges, Label-free returns explained: the drop-off QR pattern, session tokens, return-portal codes on packing slips, and exchange-first flows.
- QR codes for endless aisle: rescuing the out-of-stock sale, Shelf codes that turn "not in stock here" into a ship-to-home order: customer phone vs kiosk, what the landing page must show, and per-aisle measurement.
- EMVCo consumer-presented QR, when the customer shows the code, In consumer-presented mode the payer's app displays a short-lived token QR and the merchant scans it. Why the reversed flow wins at high-throughput tills.
- Scanning a QR code off a monitor, Why photographing a screen produces moiré that breaks QR scans, the fixes in order (enlarge, back off, tilt), and the dark-mode inversion trap.