Dynamic QR Codes for WooCommerce

Print once.
Change the offer anytime.

A scan puts the product in your customer’s cart with the coupon already applied. When the offer changes, swap the coupon or retire the code — every flyer, label and package already printed follows. No reprint, no app.

WordPress 6.1+ · WooCommerce 7.0+ · PHP 7.4+ · HPOS-ready

HPOS-ready Editable after printing Real scans only — bots filtered Uses your Woo coupons

Three steps

How it works

From a printed code to a paid order, and the code stays yours to change.

1

Create a code

Pick a product and, if you like, one of your WooCommerce coupons. Check the live preview, click Create QR code, then download it as PNG or SVG.

2

Scan to a ready cart

Any phone camera reads it off a flyer, label or package. The product drops into the cart with the discount applied: one tap from a sale.

3

Change it whenever

Swap the coupon, rename it or retire it at any time. The address inside the code never changes, so every printed copy follows.

Where it works

One code, anywhere your customers look

If a customer can point a phone at it, it can sell. Print it once and keep it useful long after the run.

See the playbooks → — real ways stores turn these into orders.

Flyers & posters

Turn footfall into checkouts, and swap the offer when the season changes. The posters stay up.

Packaging & inserts

Printed on a thousand boxes? Change the repeat-purchase coupon any time without a reprint.

Business cards

Hand over a card that opens straight to a discounted cart, for as long as the card is in a wallet.

Event booths & popups

Let a crowd scan one code and buy without a queue. Retire the show offer when the fair ends.

Receipts & thank-yous

Send buyers back for a second order. With Pro, print parcel inserts straight from the order screen.

Social posts & stories

Screenshot-friendly codes for any feed, plus a copy-able link whose clicks are counted apart.

Why dynamic?

The print is permanent. Your offer isn’t.

A static QR code or a printed coupon is stuck with whatever it said on the day you printed it. A dynamic code holds an address on your store, and your store decides what each scan does.

Change the offer, not the print

Summer sale over? Point the same code at your autumn coupon. The next scan uses it, on every copy already printed.

No dead ends

Retire a code and its scans go to the product page with a friendly “offer has ended” notice, not an error.

Counts you can trust

Bots and link previews are left out, unique scans sit next to totals, and shared-link clicks are counted apart.

Sales you can trace

QR orders show Source: qr in WooCommerce Order Attribution and in Google Analytics, instead of “Direct”.

Free version

Everything you need to start, free

No trial, no account, no monthly QR fee. Install from WordPress.org and print your first code today.

Edit after printing

Change a code’s coupon, label or caption, or retire it, whenever you like. Printed copies follow, including codes printed with 1.x. How editing works →

Scan → cart → coupon

Works with any WooCommerce coupon and all its rules and limits, and with variable products: link a specific size or colour, not just the parent.

Scan counts you can trust

Bots, crawlers and link previews are left out. Unique scans sit next to totals, and clicks on a shared link are counted apart from scans of the print.

Shows up in your reports

Every scan carries UTM tags, so QR orders read Source: qr in WooCommerce Order Attribution and Google Analytics. Tracking tags →

Small, easy-to-scan codes

Short addresses mean fewer, bigger squares, and optional short links make them smaller still. Download as PNG or SVG in your colours.

Runs on your own store

No QR service in the middle that can switch your codes off. Images are rendered in your browser and scans are handled on your server.

Free covers the essentials. Pro adds unlimited codes, changing the product or destination after printing, bundles, parcel inserts, custom design, print layouts & sales analytics — see what Pro adds → · New to it? Read the guide → · Building on it? Developer docs →

Go Pro

Pro pays for itself

Free gets you selling. Pro lets you change everything after printing, scale to every product and channel, and tells you exactly which code made the sale.

Know what’s working

Every scan traced to the order it became — a scan → cart → order funnel, revenue per code, product and campaign, the customers behind each sale, and alerts on the Overview when a product’s refunds spike, it keeps selling out on scan, or codes never get scanned. Stop paying to print the flyers that don’t sell. See the dashboard →

Change everything later

Point a printed code at another product or variation, any page on your store or another site, a different campaign or a new design, with its own logo and frame. The stickers stay where they are.

Scale without busywork

Unlimited codes, bulk create from the Products list, and print layouts that always reprint current details. Or print blank codes first and assign each one with your phone.

More ways to sell

Bundle codes put up to 20 products in the cart in one scan, parcel inserts print from the order screen, and link codes join campaigns with their own UTM tags. See them all →

One recovered campaign pays for the year.

Free vs Pro

Start free. Upgrade when it pays off.

Everything you need to launch, edit and track your codes is free. Pro adds more ways to use them, scale, design control and sales analytics.

FeatureFreePro — Growth
QR codes per product1 (1 per variation)Unlimited
Scan → product + coupon in the cart✓✓
Any WooCommerce coupon, variable products✓✓
Edit after printingCoupon, label, caption+ product, destination, campaign, design, fallback page
Retire & reactivate codes✓✓
Codes printed with 1.x keep working✓✓
Short links (/q/…)✓✓
PNG & SVG download, Media Library✓✓
No third-party QR service — runs on your own store✓✓
Scan counts: bots excluded, unique scans, link clicks✓✓
UTM tags → Order Attribution & GA4✓✓
QR designSize, colours, error correctionStyles, gradients, logos, frames
Per-code design—✓
Link codes (any page or site) & campaigns with their own UTM tags—✓
Bundle codes (up to 20 products)—✓
Parcel inserts from the order screen—✓
Bulk create from the Products list—✓
Blank codes + Scan a code—✓
Print layouts & bulk printing, incl. parcel inserts—✓
Quick coupon creator—✓
Analytics: funnel, revenue, customers, on-screen alerts—✓
Developer API & WP-CLI✓✓

Pricing

Free to start, Pro when you scale

No credit card to install. Upgrade in place whenever you’re ready.

Free

Best for stores putting their first editable scan-to-cart codes to work.

$0 forever

1 QR code per product (or variation)

  • One scan → product & coupon in the cart
  • Change the coupon or retire a code after printing
  • Real scan counts: bots out, unique scans & link clicks
  • Orders show “Source: qr” in WooCommerce & GA4
  • Short links, PNG & SVG downloads
Most popular

Pro — Growth

Best for stores turning every printed code into measurable sales.

$69 / year

$5.75/mo, billed annually · single-site licence

Unlimited QR codes per product

  • Everything in Free
  • Change product, destination & design after printing
  • Bundle codes & parcel inserts
  • Bulk create, blank codes & Scan a code
  • Logos, shapes, frames & print layouts
  • Link codes & campaigns with UTM tags
  • Scan → cart → order funnel, revenue & customers
  • Overview alerts & built-in coupon creator

14-day money-back guarantee — no questions asked. Secure checkout, cancel anytime.

Questions

Good questions, fair answers

Everything store owners ask before they install.

Is this the QR Coupon plugin?

Yes. In version 2.0, QR Coupon for WooCommerce was renamed Dynamic QR Codes for WooCommerce. It’s the same plugin, with the same WordPress.org listing, settings and data. In your admin, the menu is now called QR Codes. What’s new in 2.0 →

Can I change a code after printing?

Yes, that’s what makes it dynamic. The printed code holds an address on your store, and your store decides what a scan does. In Free, edit a code to swap its coupon, label or caption, or retire it: its scans then go to the product page with a notice that the offer has ended. Pro also lets you change the product or variation, the destination page, the campaign, the code’s design and the page a retired code opens. The next scan follows your edit, on every printed copy. Managing codes →

Do my old printed codes still work?

Yes. Every code the plugin has made keeps scanning, including codes printed with 1.x. They keep their original address, and when you edit one (to change its coupon, say), the change applies to the stickers already out there.

I’m on 1.x. How do I upgrade?

Update the plugin as usual. The database update runs automatically the first time an administrator opens the dashboard, or right away with wp qrcw upgrade on WP-CLI. Codes already in print keep working while it runs. Back up your database first, as with any major update. One thing to know: codes you create in 2.0 don’t scan correctly if you later go back to 1.x. Full 2.0 changelog →

Can I go back to 1.x?

Yes. Your data stays intact and codes printed with 1.x keep scanning. While 1.x is installed, codes you created in 2.0 open your shop instead of their product (2.0 short links, /q/…, show “page not found”), and coupon changes you made in 2.0 don’t reach stickers printed with 1.x. When you update to 2.0 again, open the dashboard once (or run wp qrcw upgrade) to finish the database update.

Do customers need an app?

No. Any modern phone camera reads the code — there’s nothing for your customer to install.

Does it change my coupons or my orders?

No. It uses your WooCommerce coupons exactly as they are, with all their rules, limits and expiry dates, and it never touches order statuses. It adds the product, applies the coupon, and labels the visit so the order shows where it came from.

Does it work with variable products?

Yes. Point a code at a specific variation, such as a size or colour, and that exact variation goes in the cart. A code for the parent product lets the customer choose, and the coupon applies once they add it.

Can one QR code add several products?

Yes, with Pro. A bundle code puts up to 20 products in the cart, each with its quantity, and applies one coupon. Anything out of stock at scan time is skipped and named, and the rest still go in. Create one from All QR Codes → Create QR code → Bundle, and change the list later: printed copies follow. Bundle codes →

How do I put a reorder code in parcels?

With Pro, open the order: the QR codes for this order box lists the codes for each product in it, plus any store-wide code you marked to show on orders (a “5% off your next order” code, say). Tick the ones you want and print them on one sheet. A product without a code gets a one-click parcel code, so Analytics shows what your parcels bring back. In Free, a product code with a coupon on a printed card does the same job. Parcel inserts →

Can I tell which codes actually drive sales?

Yes. Free counts real scans only (bots and link previews are left out), with unique scans and shared-link clicks shown apart, and tags every scan so QR orders show Source: qr in WooCommerce Order Attribution and Google Analytics. Tracking tags → Pro adds a full analytics dashboard: a scan → cart → order funnel, revenue by code, product and campaign, the customers behind each sale, and alerts on its Overview for refund spikes, out-of-stock hotspots and codes that never get scanned. See how tracking works →

What do I need to run it?

WordPress 6.1 or newer, WooCommerce 7.0 or newer and PHP 7.4 or newer. It’s compatible with WooCommerce’s High-Performance Order Storage (HPOS) and with multisite.

Will it slow my store down?

No. QR images are rendered in your browser and scans are handled on your own server, with no third-party QR service. Scan responses are never cached, so a page-cache plugin can’t swallow scans either.

Is there a developer API?

Yes. Documented PHP functions read, create and update codes and their stats, lifecycle hooks let you react to new codes, edits and scans, and wp qrcw status / wp qrcw upgrade help hosts after a deploy. From 2.0 on, public functions and hooks get a deprecation period before they change. Developer docs →

Print it once. Keep it selling.

Install the free version in two clicks and create your first editable QR code today.