How do I track sales from QR codes?
Give every QR code its own unique URL with UTM parameters (e.g. ?utm_source=flyer&utm_medium=qr&utm_campaign=spring), and point each code to a different URL so you can tell placements apart. Use a dynamic QR generator so you can change the destination without reprinting, and consider unique discount codes per placement as a backup signal. Then watch those UTM values in Shopify Analytics or your ad platform.
A QR code is just a shortcut to a link — so tracking QR sales is really tracking link sales. The trick is making each code distinguishable.
1. One code, one tagged URL. Never reuse the same QR code across a flyer, a package insert, and a trade-show banner. Create a separate URL per placement, each with UTM parameters identifying the source: utm_source=packaging_insert, utm_source=trade_show_booth, and so on. A static QR generator can do this; the QR image just encodes the URL.
2. Use dynamic QR codes. Static codes hard-code the destination — if you mistype the URL or want to change the landing page, you reprint. Dynamic QR generators let you edit the destination behind the same printed code. Useful for long-lived placements like packaging or signage, where reprinting is expensive. Most dynamic generators also log scan counts, which tells you interest even before purchase.
3. Add a unique discount code per placement. UTMs tell you the session came from the QR, but a discount code typed at checkout (or auto-applied from the QR's landing page) gives you a second, independent signal that survives ad blockers and broken referrers. Keep codes short and placement-specific: FLYER10, BOOTH10.
4. Read the results. Shopify Analytics → Conversion by referrer will show your UTM-tagged visits. Compare scan counts (from the QR tool) against orders: a code with 500 scans and 5 orders has a 1% conversion rate — the placement gets attention but the offer or page needs work.
Caveats. Scans don't equal sales, and people often scan a code but buy later from a different device — the "attributed" number understates reality. Codes get shared (a flyer code posted on social media muddies placement data). And physical placements degrade: flyers run out, signage comes down, so date-stamp your reporting windows.
GetNoCut does not do this. It's a post-purchase upsell app — it shows one relevant offer after checkout — and it has no QR generation, no QR scan tracking, and no way to attribute sales to a QR placement. For QR tracking you want a dynamic QR code generator (scan counts + editable destinations) combined with UTM-tagged URLs and unique discount codes per placement, read through Shopify Analytics or Google Analytics. GetNoCut's only tangential role: once a QR-driven customer reaches checkout, the post-purchase offer can add a little extra revenue to that order — but the QR tracking itself has to come from the tools above.