What a shopify qr code is — and what it actually links to
A shopify qr code is a standard QR code that encodes a link into your Shopify store, and scanning it with any phone camera opens that link in the browser. There's nothing Shopify-specific inside the code itself — it's the same ISO/IEC 18004 QR pattern any URL uses. What makes it a 'Shopify' QR is simply the destination you encode.
That destination can be any public page on your store. The five that matter:
Your storefront — https://yourbrand.com — the homepage. Right for brand-level print where you want the shopper to browse: a business card, a van wrap, a sponsorship banner.
A single product — https://yourbrand.com/products/product-handle — the product detail page. This is the highest-converting target for most print, because it drops the shopper exactly on the buy button for the thing they're already holding or looking at.
A collection — https://yourbrand.com/collections/collection-handle — a curated group of products. Right for a category-level surface like a catalog page or a seasonal display.
A specific variant — https://yourbrand.com/products/product-handle?variant=1234567890 — pre-selects a size or color on the product page. Useful when the print surface is about one exact SKU.
A pre-filled cart — https://yourbrand.com/cart/1234567890:1 — Shopify's cart permalink format (/cart/VARIANT_ID:QUANTITY) adds the item to the cart and sends the shopper toward checkout in one scan. This is the shortest path from a physical object to a purchase.
Paste whichever URL you need into EZQR's Shopify QR code generator, brand it, and download. For the broader strategy across an online store, the ecommerce QR playbook covers how these codes fit the full funnel.
How to add a qr code to shopify — the four things you can link
The question 'how to add a qr code to shopify' usually means one of two things: adding a QR code to a physical surface that drives people to your store, or displaying a QR on a page inside your store. This guide is about the first — the print-to-store direction — because that's where the value and the tracking live.
The workflow is the same regardless of what you link: copy the canonical URL from your live store, paste it into a generator, brand and export the code, then place it. The only real decision is which page to send the shopper to, and that follows one rule — match the destination to how specific the print surface is. A homepage code on a single product's hang tag wastes the scan; a deep product link on a general brand poster is too narrow. The table below maps each surface to the right target.
To copy a canonical URL cleanly, open the page in a desktop browser and copy the address bar rather than sharing from the admin preview — the preview sometimes hands you a myshopify.com address or a session-scoped link. You want the clean, public custom-domain URL.
| What you encode | URL format | Best for | Conversion path |
|---|---|---|---|
| Storefront | https://yourbrand.com | Brand print, cards, signage | Browse then buy |
| Product | https://yourbrand.com/products/handle | Hang tags, inserts, shelf talkers | Straight to the buy button |
| Collection | https://yourbrand.com/collections/handle | Catalogs, seasonal displays | Category then product |
| Variant | https://yourbrand.com/products/handle?variant=ID | One exact SKU on packaging | Pre-selected size or color |
| Cart permalink | https://yourbrand.com/cart/VARIANT_ID:1 | Reorder cards, sampling | Item in cart, toward checkout |
Tips
- **Match the destination to the surface.** A product's packaging should scan to that product; a brand banner can scan to the storefront. Every mismatch adds taps and loses shoppers.
- **Copy the URL from the live store, not the admin preview.** The preview can leak a `myshopify.com` or session link — you want the clean public custom-domain address.
- **Test the cart permalink before printing it.** Confirm the `/cart/VARIANT_ID:1` link actually adds the right variant, since the ID is SKU-specific and easy to paste wrong.
Custom domain vs myshopify.com URL — always encode your custom domain
Every Shopify store has two web addresses: the permanent your-store.myshopify.com URL Shopify assigns at signup, and the custom domain you connect (yourbrand.com). For a QR code, always encode the custom domain. There are three reasons, and none of them are cosmetic.
Trust. A shopper who taps a link and sees random-store-name.myshopify.com in the address bar gets a flash of doubt — it reads as unfinished or, worse, as a phishing lookalike. yourbrand.com reassures. On a printed surface where you can't hover to inspect a link first, that trust matters even more.
Brand consistency. The whole point of print marketing is to reinforce your brand. Sending a scan to a myshopify.com address undercuts that in one step and tells the shopper exactly which platform you rent from.
Portability. This is the one most merchants miss. If you ever migrate off Shopify — to another platform, or to a headless build — you keep your custom domain and repoint it. A QR code encoding yourbrand.com/products/jacket can be redirected to wherever that product lives next. A code encoding your-store.myshopify.com/products/jacket is welded to Shopify forever; the day you leave, every printed code breaks.
That portability argument is also the strongest case for making the code dynamic. Even on your own domain, a URL structure can change — Shopify product handles can shift if you rename a product, and collection handles change when you reorganize. A dynamic QR code sits on a stable EZQR redirect, so the printed code never changes while you repoint the destination from the dashboard. For the full permanence picture, see whether QR codes expire — the short version is that the code doesn't, but the URL behind it can.
Creating a shopify product qr code, step by step
A shopify product qr code sends a scan straight to one product's detail page — the single highest-converting thing you can do with a printed QR, because it lands the shopper on the buy button for the exact item in front of them. Here's the full workflow, about three minutes end to end.
Tips
- **Step 1: Get the product URL.** In your store, open the product page in a browser and copy the address bar: `https://yourbrand.com/products/product-handle`. For one exact size or color, add `?variant=1234567890` — you'll find the variant ID in the URL after you select that option on the live page.
- **Step 2: Decide static vs dynamic.** Static (free forever) if the product URL will never change and you don't need scan data. Dynamic (from $5/mo) if you want to repoint it later or track scans — see the trade-off below.
- **Step 3: Paste the URL into the [Shopify QR generator](/qr-codes/shopify).** The preview renders live as you type.
- **Step 4: Brand it.** Set your store's colors and drop your logo in the center. When a logo covers part of the code, push error correction to level H so it still scans with up to 30% of the modules obscured.
- **Step 5: Add a UTM if it's dynamic.** Append `?utm_source=hangtag&utm_medium=qr&utm_campaign=spring` to the destination so the scan is attributable in analytics. This is the step that turns a QR into a measurable channel.
- **Step 6: Export the right format.** PNG for screens on the free plan; SVG or PDF for print vendors on Lite ($5/mo) and up. Every export is unwatermarked on every plan.
- **Step 7: Add a prompt.** Put 'Scan to shop' or 'Scan for size guide and reviews' beside the code in 10–12pt type. A code with a clear prompt converts far better than a bare one.
- **Step 8: Test on real phones.** Scan your exact exported file on an iPhone and an Android before you commit to a print run — confirm it lands on the right product page every time.
Static vs dynamic — the decision that controls cost and attribution
A static Shopify QR is free forever and a dynamic one starts at $5/mo, so the only question worth asking is whether you need to change or measure the destination after printing. If you never will, static is the right answer and you should not pay for dynamic.
A static QR encodes your store URL directly into the code pattern. There's no server in the middle, nothing to subscribe to, and nothing that can go down. Print a static storefront code on a business card and it opens your store for as long as that URL exists — even if you cancel EZQR, even if you switch generators. Static codes never expire and carry no watermark on EZQR. For a stable storefront link, this is the correct default.
Most generators won't say this plainly: a dynamic code is not 'the upgraded version' of a static one — it's a different tool for two specific jobs. First, repointing: a dynamic code routes through an EZQR redirect, so you can change where the printed code goes anytime without reprinting. That matters on Shopify because product and collection handles can change when you rename or reorganize. Second, and more valuable, attribution — covered in the next section.
The honest rule: pay for dynamic when you need to repoint after printing or measure which surface drove the scan. For a homepage code that will never move, a free static code does the whole job. The static vs dynamic guide walks through the decision in full, and it applies cleanly to Shopify.
Tips
- **Static (free) for a stable storefront or evergreen product link** — no watermark, no signup, survives cancellation.
- **Dynamic (from $5/mo) when the destination might change** — a renamed product handle, a reorganized collection, or a seasonal campaign on the same printed insert.
- **Dynamic when you need attribution** — a UTM on the destination is the only reliable way to tie an offline scan to a Shopify sale.
Tracking offline sales — dynamic plus UTM is the real paid win
The single hardest thing in ecommerce marketing is connecting a physical touchpoint to an online sale, and a dynamic Shopify QR with a UTM is the cleanest way to do it. This is where paying for dynamic actually pays for itself.
Here's the mechanism. A static code sends the scan straight to your store, and Shopify has no way to know the visitor came from a printed insert — the session shows up as untraceable 'direct' traffic. A dynamic code routes through an EZQR redirect first, which does two things: it logs the scan on EZQR's side (count, device, and location depending on your plan), and it carries a UTM string into the destination URL. That UTM is what your Shopify analytics and Google Analytics read to label the session — utm_source=insert_card, utm_campaign=holiday_box. Now the resulting sale is attributed to that exact printed surface.
Run different UTMs on different surfaces and you can compare them directly: does the packaging insert or the pop-up banner drive more revenue per scan? That's a decision you can only make with attribution in place. For choosing a generator around this, see the roundup of the best QR generators with tracking.
One honesty note for planning: EZQR does not send scan notifications or real-time alerts — you read scan data in the dashboard, not in a push. EZQR tracks the scan; the sale is attributed inside Shopify and Google Analytics via the UTM, which is exactly where you want revenue reporting to live.
| Plan | Dynamic codes | Analytics depth | Export formats |
|---|---|---|---|
| Free | 3 | Scan count only | PNG |
| Lite — $5/mo | 25 | Count + device + country (30-day) | PNG, SVG, PDF |
| Pro — $10/mo | 100 | All-time + city geo + A/B testing | PNG, SVG, PDF, CSV |
| Max — $20/mo | Unlimited | All-time + REST API + bulk | All formats + API |
Shopify QR apps vs an independent generator — the honest trade-offs
Search the Shopify App Store and you'll find several QR-code apps that live inside your admin. An independent generator like EZQR lives outside it. Both make a working code; the right choice depends on how you weigh convenience against ownership and cost.
A Shopify app wins on convenience for one thing: it can pull your product list directly, so you select a product from a dropdown instead of copying a URL. Some also generate codes in bulk from your catalog. The trade-offs are real, though. App pricing is usually a recurring monthly fee that stacks on top of your Shopify plan; the codes and their analytics live inside that app's subscription, so if you uninstall it, dynamic codes tied to its redirect can stop working; and you're adding another app to your store's performance and privacy surface.
An independent generator trades the catalog integration for ownership and cost. You copy the product URL yourself — a few extra seconds — but the static code you export is a plain file you own outright, free forever with no watermark. Dynamic codes and analytics are available when you need them at a flat, affordable price that isn't tied to your store's plan. And the same tool covers your codes for Amazon, Etsy, and any other channel — so multi-channel sellers manage one place instead of one QR app per platform.
Neither is wrong. If you want product codes generated in bulk from your catalog and don't mind a store-bound subscription, an app is convenient. If you want codes you own outright, better value across every sales channel, and static codes that cost nothing, an independent generator is the stronger fit.
| Consideration | Shopify App Store app | Independent generator (EZQR) |
|---|---|---|
| Picks product from catalog | Yes — dropdown | No — paste the URL |
| Static code cost | Often part of a paid app | Free forever, no watermark |
| Works after you uninstall/cancel | Dynamic codes may break | Static always works; dynamic redirect stays live |
| Covers non-Shopify channels | No — Shopify only | Yes — Amazon, Etsy, any URL |
| Adds an app to your store | Yes | No |
| Attribution via UTM | Varies by app | Yes — on dynamic codes |
Tips
- **Choose an app if bulk-from-catalog generation is the priority** and a store-bound monthly fee is acceptable.
- **Choose an independent generator if you want to own the codes** and manage Shopify, Amazon, and Etsy from one place at better value.
Where to place a qr code for shopify store — packaging, inserts, pop-ups, retail
A qr code for shopify store earns its place wherever a physical object meets a phone and the next best action is a store page. The surfaces below each match a specific destination and a specific goal.
Product packaging. Print a product or variant code on the box, the label, or a hang tag. A shopper holding the item can scan to the exact product page for reviews, a size guide, or a reorder. Because packaging ships for months, a dynamic code lets you point the same printed box at a seasonal campaign later without a reprint. The retail QR playbook covers placement that converts in a physical setting.
Insert and thank-you cards. Drop a card in every order with a cart-permalink code for the consumable they just bought ('Scan to reorder') or a collection code for complementary products. This is one of the highest-ROI surfaces because the recipient is already a paying customer.
Pop-ups, markets, and events. At a booth where you can't carry full inventory, a storefront or collection code turns a browser into a buyer after they leave. A dynamic code with a per-event UTM tells you which market actually drove sales.
Retail shelf talkers and displays. If you're wholesale or in a physical location, a product code on the shelf edge lets an undecided shopper read reviews or buy the exact SKU online. A variant code pre-selects what's on the shelf.
Receipts and reorder reminders. A cart-permalink code on the receipt for a consumable makes reordering a single scan. For sellers who also list on other marketplaces, the same approach works with an Amazon QR code or an Etsy listing QR — keep the destination matched to where you want that customer to buy.
Sizing, scannability, and testing before a print run
The fastest way to waste a print budget is to skip the physical test. A Shopify QR that scans perfectly on your screen can fail on a matte hang tag under store lighting, and you won't know until the boxes arrive. Three things decide whether a printed code works: size relative to scan distance, contrast, and the quiet zone.
Size to the scan distance. The working rule is that a code should be at least one-tenth of the distance it's scanned from. A hang tag or insert card scanned at arm's length works at 2–2.5 cm. A shelf talker scanned from half a meter needs 3–4 cm. A pop-up banner read from 2–3 meters away needs 8–12 cm. A card-sized code on a booth banner is unreadable from across an aisle.
Contrast and the quiet zone. Keep dark modules on a light background with strong contrast — a low-contrast code on a busy product photo is the most common scan failure on packaging. Leave the quiet zone, the blank border the code needs to be detected, and never crop it. If you add a center logo, error correction level H keeps the code readable with up to 30% of the modules covered.
Test the exact exported file at production size. Print a proof at the real dimensions, on the real material, and scan it with an iPhone and an Android before ordering the full run. Confirm it lands on the right Shopify page and, if it's dynamic, that the UTM is landing in analytics. A five-minute test is cheaper than reprinting 2,000 boxes. When you're ready, create a free Shopify QR code, and lean on the same static-vs-dynamic logic from the ecommerce QR playbook to decide what to print.