QR attribution plugin
Street marketing had no way to prove which flyers produced orders.
- Client
- US subscription supplement store
- Market
- United States
- Service
- Web development, Growth engineering
- Status
- Building
01 / Build
What I built
QR codes with post-scan tracking and first/last-touch order attribution, built to grow with more features.
- WordPress
- WooCommerce
- PHP
- React
02 / Decisions
Key decisions
- Build it as a WooCommerce plugin rather than use a third-party QR service, so every scan and its order sit in the store's own database and no visitor data goes to another company.
- Record both first and last touch on the order. A flyer often starts a visit that ends in an order later; first touch credits the flyer, last touch shows what closed the sale.
- A small core with features added as separate modules, because the plugin was planned to grow, and each new feature shouldn't put the tracking at risk.
03 / Notes
Architecture and hindsight
Architecture
Each printed code points to a short tracking URL on the store. The plugin records the scan, stores the touch in a first-party cookie and redirects to the landing page in one fast PHP step. At checkout, the order is stamped with its first and last touch. The admin screens for creating codes and reading results are built in React inside the WordPress admin.
What I'd do differently
Agree the campaign naming scheme with the marketing team before the first codes are printed. A code can be renamed in the database; a printed flyer can't.
04 / Outcome
Outcome
In build for a live store; each order will carry the first and last QR scan that led to it.
Have a problem like this one?