Order Barcodes for WooCommerce

The Complete Guide to QR Codes in WooCommerce (2026)

WooCommerce order with QR code being scanned on a smartphone for order check-in and fulfillment

WooCommerce generates orders. It does not generate QR codes. If you want a scannable code on your order confirmation email, your packing slip, or your event ticket — you need a plugin to do it.

Scan orders, not spreadsheets. Order Barcodes for WooCommerce adds a scannable barcode and QR code to every order — built for check-ins, pickups, and fulfillment.

View Order Barcodes →

This guide covers the five most useful WooCommerce QR code workflows, explains when to use QR codes versus linear barcodes, compares the plugin options available in 2026, and walks through a complete setup. By the end you’ll know exactly what to install and how to configure it for your specific use case — whether that’s event ticketing, curbside pickup, or warehouse fulfillment.


What WooCommerce QR Codes Actually Do

A QR code attached to a WooCommerce order is a machine-readable link to that order’s data. When scanned, it can:

  • Open the order detail page in wp-admin (useful for staff check-in)
  • Trigger an order status change (e.g., Processing → Completed)
  • Render a mobile-optimized check-in page for the customer
  • Serve as a tamper-evident, single-use ticket that invalidates after first scan

The code itself encodes the order ID, a security token, or a URL — depending on how the plugin implements it. Most implementations encode a URL so scanning with any phone camera works without a dedicated app.

What WooCommerce doesn’t do natively: there is no built-in barcode or QR code generation in WooCommerce core or in WooCommerce Subscriptions. No setting, no shortcode, no hook that generates one. You’re adding this capability from scratch with a plugin.


Five Practical Use Cases

Event Ticketing and Check-in

This is the use case that makes QR codes genuinely valuable for WooCommerce stores. A customer buys an event ticket, receives an order confirmation email with an embedded QR code, and presents that code at the door. Staff scan it with a phone or tablet. The order status changes to Completed. The code is invalidated.

The key advantage over paper or PDF tickets: the ticket lives in the email the customer already has on their phone. No separate ticket app, no PDF to download and print. Scanning also creates an audit trail — you know exactly when each attendee checked in.

For multi-attendee orders (e.g., a family buys 4 tickets), good plugins generate one code per attendee quantity, not one code per order. That distinction matters for events with per-person capacity limits.

Curbside Pickup and Order Pickup

A customer orders online, drives to your location, and shows a QR code through their car window. Staff scan it, retrieve the order, and mark it fulfilled — all without typing an order number or searching wp-admin. The friction savings are real for high-volume pickup operations.

This workflow works best when the scan form is on a dedicated tablet or staff phone, not buried in wp-admin. Plugins that include a standalone scan form accessible via shortcode give you more flexibility here.

Warehouse Picking and Packing

For stores handling physical products in-house, QR codes on packing slips let picking staff confirm they’re packing the right order. Scan the code → the order details appear on a mobile screen → confirm items → update status. No paper manifests, no typos from manual order number entry.

This is where linear barcodes (Code 128) often outperform QR codes — warehouse scanners read linear codes faster and more reliably in low-light or glare conditions. But QR codes are adequate for moderate volume and let you use a phone camera instead of a dedicated scanner.

Order Confirmation Emails

Adding a QR code to every order confirmation email is low-friction and has broad utility. Customers can use it for returns (“scan this at our counter”), for proof of purchase at will-call windows, or simply as a quick way to pull up their order on a phone.

Implementation is automatic with any order barcode plugin — you enable the feature, the code appears in all transactional emails going forward. No per-order setup required.

PDF Invoices and Packing Slips

If your store generates PDF invoices or packing slips (via a plugin like WooCommerce PDF Invoices & Packing Slips by WP Overnight), most order barcode plugins integrate directly. The QR code embeds in the PDF at your specified position. This is the physical fulfillment workflow equivalent of the email use case — the packing slip travels with the box, the code travels with it.


QR Code vs. Barcode: Which Format to Use

You’ll see plugins offering multiple formats. Here’s how to choose:

Format Reads with Best for
QR Code Phone camera (no app needed) Customer-facing: email tickets, check-in, pickup
Code 128 USB/Bluetooth barcode scanner Staff-only: warehouse, POS, packing slip verification
Code 39 USB/Bluetooth barcode scanner Legacy systems, label printers
Code 93 USB/Bluetooth barcode scanner Compact linear code, moderate density
Data Matrix 2D scanner / phone camera Compact; useful for small labels

Use QR codes when the scanning device is a customer’s phone or a staff member’s tablet with a camera. Any modern phone camera reads QR codes natively — no app required on iOS (since iOS 11) or Android (since 2018 camera app updates on most OEMs).

Use Code 128 when you have USB or Bluetooth barcode scanners at a warehouse station or POS counter. Linear codes read faster in scan-intensive workflows and have wider hardware compatibility.

Use both if your store handles multiple workflows. Generate a QR code for the customer-facing email and a Code 128 barcode for the packing slip. Plugins that support multiple formats on the same order let you do this without any extra configuration.

For most WooCommerce stores starting fresh: use QR codes. They require no scanner hardware investment and work immediately on any phone.


Plugin Options in 2026

Order Barcodes & QR Codes for WooCommerce (Plugin District)

Best for: stores that need a focused, single-purpose solution for order-level codes — events, pickup, and fulfillment.

Available on plugindistrict.com and CodeCanyon. $49 single site.

Supported formats: Code 11, Code 25, Code 39, Code 49, Code 93, Code 128, and QR Code — the full set of formats you’d need for any order workflow.

What sets it apart: the built-in Easy Scan form. Instead of checking in orders through wp-admin, you get a dedicated scan interface accessible via shortcode that you can embed on any page. Staff open that page on a phone or tablet, scan the code, and the order updates. No wp-admin access required for check-in staff.

Codes appear automatically in:
– WooCommerce order admin pages
– Customer order confirmation emails
– Optional integration with WooCommerce PDF Invoices & Packing Slips

No third-party services. Code generation runs locally in PHP — no external API calls, no rate limits, no account required.

Limitation worth noting: this plugin generates codes at the order level, not the product or SKU level. If you need per-product barcodes for inventory scanning, you need a different tool (see YITH below).

YITH WooCommerce Barcodes and QR Codes

Best for: stores that need both product-level and order-level codes in one plugin, or that need 10+ barcode protocols.

YITH’s plugin handles product barcodes (for inventory management) and order barcodes in a single install. It supports more code protocols than most alternatives and can trigger inventory-level actions on scan (like reducing stock). The tradeoff: it’s a heavier plugin and part of the YITH ecosystem, which means it integrates well with other YITH plugins but adds complexity if you don’t already use them.

Pricing is subscription-based (yearly fee). Worth it if you’re already in the YITH stack; harder to justify if you only need order codes.

WooCommerce Order Barcodes (Official Extension)

Best for: stores on Woo.com subscriptions that want an officially maintained extension.

The official WooCommerce Order Barcodes extension generates unique barcodes per order with a built-in scanner. It covers the standard use cases (e-tickets, events, reservations) and is maintained directly by Automattic/WooCommerce. The limitation is it focuses on order-level codes only, similar to Plugin District’s offering.

Priced as a yearly subscription through Woo.com. If you’re already paying for other Woo.com extensions, bundling this in can make sense. If not, a one-time license from another source may be more economical.

What to skip

Generic QR code generators (Elfsight widgets, Kaya QR Generator, etc.) can produce QR codes, but they don’t integrate with WooCommerce order data. You’d be generating a static code, not an order-linked code. These are fine for product pages (linking to a spec sheet, for instance) but wrong for any fulfillment or ticketing workflow.


Setting Up QR Codes for WooCommerce: Step-by-Step

This walkthrough uses Order Barcodes & QR Codes for WooCommerce by Plugin District.

Step 1: Install and activate

Purchase and download from plugindistrict.com or CodeCanyon. Upload via Plugins → Add New → Upload Plugin, or install directly if you purchased through the WordPress.org marketplace. Activate.

Step 2: Configure the code type

Navigate to WooCommerce → Settings → Order Barcodes (the exact menu path varies slightly by version — look for “Barcodes” or “Order Codes” in the WooCommerce settings tab list).

Set the code type. For most setups: QR Code if staff scan with phones; Code 128 if you have USB scanners. You can change this later without regenerating historical codes — new orders get the new type.

Step 3: Choose where codes appear

Enable codes in:
– Order emails — recommended for all stores. The code shows in both the admin “New Order” email and the customer “Order Confirmation” email.
– Order admin page — lets you view and manually scan from wp-admin.
– PDF Invoices — enable this if you have WooCommerce PDF Invoices & Packing Slips installed.

Step 4: Set up the scan form (optional but useful)

Create a new page (e.g., /order-checkin/) and add the scan form shortcode:

[order_barcode_scan_form]

This renders a camera-based QR scan form or a manual entry field for barcode scanner input. When a code is scanned, the plugin looks up the order and gives the option to update the status. Restrict this page to logged-in staff via your user role management settings — you don’t want customers accessing it.

Step 5: Test with a real order

Place a test order using WooCommerce’s built-in test mode. Open the order confirmation email, find the QR code, and scan it with your phone camera. It should open the check-in page or the order URL. Confirm the status update works end-to-end before going live.

For events with high check-in volume, run a load test: scan 20–30 codes back-to-back on your target device and confirm there’s no lag. Shared hosting can slow down on rapid sequential requests — this is worth catching before your actual event.


Scanning Hardware and Workflow Decisions

Phone cameras work for QR codes out of the box. The built-in camera app on iOS and Android recognizes QR codes and opens the URL. For staff-facing workflows, opening the camera, pointing, waiting for recognition, and tapping the notification adds 3–5 seconds per scan. For low-to-moderate volume (under 200 check-ins per hour), that’s fine.

Dedicated 2D scanners (Honeywell Xenon, Zebra DS2208, Datalogic QuickScan) read QR codes and linear barcodes in under 200ms and connect via USB or Bluetooth as a keyboard device. They type the code value into whatever field is focused — no camera, no notification, no tap required. At high volume (event check-in gates, busy warehouse), the speed difference is significant.

Bluetooth barcode scanner connected to a tablet is the best of both worlds for mobile setups: you get scanner speed on a portable device. This is the recommended setup for event check-in tables.

USB scanner at a counter or warehouse station is appropriate for fixed pickup or fulfillment desks. Pair it with the scan form embedded on a dedicated browser tab.


Fraud Prevention for Event Tickets

One QR code concern for event use: what stops someone from screenshotting a ticket and sharing it? The answer is the single-scan invalidation feature.

When a code is scanned the first time, the order status updates (e.g., Processing → Completed) and a timestamp is recorded. If the same code is scanned again, the plugin detects the order is already in the completed/checked-in state and rejects the second scan — ideally with a visible error on the scan form.

To rely on this properly:
– Make sure the scan form shows the order’s current status before marking it complete
– Brief your check-in staff to look at the screen, not just hear a beep
– For high-stakes events (sold-out, limited capacity), use per-attendee codes rather than per-order codes

Per-attendee codes mean a group of 4 people buying together gets 4 separate codes. Invalidating one doesn’t block the others.


Common Gotchas

Codes not appearing in emails. Check your email template — if you’re using a heavily customized WooCommerce email template (via a theme or page builder), the plugin’s email hook may not fire in the right position. The plugin typically hooks into woocommerce_email_order_meta or woocommerce_email_after_order_table. If your template overrides these hooks, you may need to add the code output manually.

PDF integration requires the PDF plugin to be active. Order barcodes in PDFs only work if WooCommerce PDF Invoices & Packing Slips (or a compatible PDF plugin) is already installed and configured. Enabling the PDF option in order barcode settings without the PDF plugin does nothing.

Code type changes affect new orders only. If you switch from Code 128 to QR Code, historical orders still show Code 128. That’s by design — regenerating codes retroactively could invalidate already-sent tickets.

Shortcode scan form needs HTTPS. Browser camera APIs (used by the QR scan UI) require a secure context. Your check-in page must be served over HTTPS or camera-based scanning won’t work. This is true of all browser-based barcode scanners.

High-volume events on shared hosting. Each scan triggers a PHP request to look up the order and update its status. On busy shared hosting, simultaneous scans can queue up. If you’re running a large event, verify your hosting can handle concurrent requests — or batch check-ins using the manual entry field instead of camera scanning.


Internal Linking and Cluster Context

This pillar post is the hub for Plugin District’s Order Barcodes cluster. Supporting posts dive deeper into specific workflows:


The Short Version

WooCommerce QR codes are worth adding if your store does any of the following: sell event tickets, run a pickup operation, or process orders in a warehouse. The setup takes under 30 minutes and the scan form eliminates the need for staff to have wp-admin access for routine order updates.

For most stores: install Order Barcodes & QR Codes for WooCommerce, set the type to QR Code, enable it in emails, and add the scan form shortcode to a staff-only page. That’s the complete setup for 80% of use cases.

If you need per-product inventory barcodes in addition to order codes, look at YITH’s plugin. If you’re already on a Woo.com subscription plan, consider bundling the official extension. But if all you need is order-level QR codes that just work — the Plugin District plugin is the fastest path to a working setup.

Ready to speed up check-ins and fulfillment? Every order gets a unique code you can scan from any phone camera or USB scanner — no third-party service, no order data leaving your site.

Get Order Barcodes →


Want help applying this?

Tell us your workflow and we'll point you to the right plugin or next step.