← The Lab

Agni QR: Bulk Generation for Shopify

The Problem

Most Shopify merchants run a physical store and an online shop simultaneously — but the two almost never talk to each other. A customer walks in, picks something up, puts it back, leaves. That’s a warm signal with nowhere to go. QR codes are the obvious bridge: print one on a shelf tag, a receipt, a fitting room mirror — and suddenly that offline moment has a digital thread attached. The problem is generating and managing QR codes for hundreds of SKUs, keeping them branded, and knowing which ones actually get scanned. That’s what Agni QR is being built to solve.

What’s Shipped So Far

This project has been a war of attrition against tooling, APIs, and my own scope creep. But the wins are real:

Bulk ZIP download — merchants can select a collection or a custom SKU list and download a ZIP of individually labelled QR PNGs in one click. No more generating them one at a time on a free tool and losing track of which file is which.

Branded QR codes — QRs render with the merchant’s logo centred in the quiet zone, custom foreground and background colours, and configurable corner styling. They look like they belong on a product, not like they were generated in 2012.

Scan analytics — every QR has a tracked redirect URL. The dashboard shows total scans, unique scans, scan-over-time charts, and top-performing codes by product. Merchants can finally answer the question: is anyone actually scanning these things?

Advanced search — filtering across large catalogues by product title, SKU, collection, or scan count. Sounds boring. Was not boring to build.

The Current Frontier: Cookies and Meta Pixels

This is where it gets interesting — and where I’m currently stuck in the most productive way possible.

The goal: when someone scans a QR code and lands on the merchant’s product page, two things should happen invisibly in the background. First, a first-party cookie gets dropped on their device — so if they browse without converting, the merchant knows a QR-originated visitor was on-site and can follow up. Second, the Meta Pixel fires with a custom QR scan event, so that visitor gets added to a retargeting audience on Facebook and Instagram automatically. Offline foot traffic, turned into a paid social audience. That’s the pitch.

The technical reality is more nuanced. The cookie side is genuinely achievable: since the landing page is the merchant’s own Shopify domain, any cookie set there is first-party — Safari’s ITP won’t kill it immediately, and it persists for a reasonable session window. The complication is that Shopify’s storefront is locked down; injecting a cookie-setting script through a QR redirect requires either a Shopify App Proxy or a custom redirect domain we control, which adds infrastructure I hadn’t originally scoped.

The Meta Pixel side is actually more straightforward than it sounds. The Pixel fires via JavaScript on page load — it doesn’t rely on third-party cookies in the way that has been deprecated. What I’m building is a custom QR Scan event that passes the product ID and QR source as event parameters, so merchants can build audiences specifically of people who scanned QR codes in-store. That’s a retargeting segment most Shopify brands don’t have. The implementation is a Pixel event injected through the App Proxy redirect — one script load, one event, clean.

Will I Succeed?

Probably — but not in the way I originally imagined.

The pure cookie-drop-for-lead-capture vision is running into a wall that has nothing to do with my code. The browsers are winning the privacy war. iOS Safari users (a significant chunk of who’s scanning QRs on their phones) will have limited cookie persistence regardless of how clean the implementation is. So the cookie alone isn’t a reliable identity signal.

What is reliable: the Meta Pixel event. If a merchant has the Pixel installed and fires a custom QR Scan event with product-level parameters, they can build a warm audience of people who physically visited their store, touched a specific product, and scanned a code — and retarget them on Instagram within 24 hours. That is genuinely valuable. That will ship.

The lead capture angle is pivoting toward something more honest: instead of relying on a silent cookie, the redirect page will optionally display a lightweight capture widget — a “text your email for 10% off” prompt that fires immediately post-scan. Explicit opt-in, no privacy grey area, better data quality anyway. A post-scan pop-up converts better than a cookie the user never knew existed.

The roadblocks have been real. The wins have been real. The scope has changed three times. That’s the lab.