Back to Blog
WooCommerce Shipping Oct 01, 2026

How to Add QR Code Scan-to-Confirm Pickup in WooCommerce

Yash Patel

Yash Patel

Administrator

How to Add QR Code Scan-to-Confirm Pickup in WooCommerce

It is half past five, there are four people at your counter, and each of them is reading an order number off a phone screen while someone on your team scrolls the orders list looking for a match. Once the right bag is found, it goes over the counter. Then somebody has to remember to open the order and mark it collected. On a busy day that last step gets missed, and tomorrow’s “where is my order?” email is about an order the customer already has.

The fix is to put the confirmation step in the customer’s hand. Every pickup order carries a code. Your staff scan it, check the name and items on screen, and confirm. The order changes status at the moment the bag crosses the counter, with a note saying who handed it over and when.

This guide shows how to set that up with the QR Code Pickup Handoff in Local Pickup PRO, how to check it is working, and where its limits are. It assumes you already have pickup orders flowing; if you are still choosing a plugin, start with our comparison of WooCommerce local pickup plugins.

Why pickup handoffs go wrong without a confirmation step

WooCommerce’s built-in Local Pickup is a shipping method and nothing more. It has no status for “collected”, so most stores either mark pickup orders Completed when they are packed, or leave them in Processing until someone tidies up. Either way, the order record stops matching what happened at the counter.

Two things cause most of the trouble. First, the status change is a separate task from the handoff, done later, on a different screen, by whoever remembers. Second, matching the person to the order relies on reading out a number or a surname, which is slow and easy to get wrong when two customers share a name.

A scan-to-confirm step removes both. The code identifies the exact order, so there is nothing to search for, and confirming the handoff is the same action as updating the status.

How QR code pickup confirmation works

When the feature is on, each pickup order gets a Pickup Confirmation Code. The customer sees it on their My Account → View Order page and in two emails: the Processing (pickup) email and the Ready for Pickup email.

The QR code is an ordinary link. Scanning it with any phone camera or QR scanner app opens a mobile scan page for that one order, showing the customer name, pickup location, appointment and current status. Staff check the details, then tap Mark as Picked Up. Nothing happens on scan alone: since version 2.3, a person always has to confirm.

The link carries a signed token generated from the order and your site’s secret keys, not a guessable order number. A code only ever works for its own order. Once the order is Picked Up, cancelled, refunded or failed, scanning it again shows the order’s state but cannot change it.

Pickup Confirmation Code with QR image and order number on the customer's View Order page

How to set up QR code pickup confirmation in WooCommerce

The QR handoff is part of our WooCommerce local pickup plugin, Local Pickup PRO, so you need it active with at least one pickup location. It is not in the free Advanced Local Pickup plugin. If you run more than one store, set up your locations first; our guide to multiple pickup locations in WooCommerce covers that.

  1. Go to WooCommerce → Local Pickup Pro → Settings → Display Options.
  2. Tick Show pickup confirmation QR code.
  3. Leave Require staff verification before marking picked up switched on. It is on by default, and it is what stops a customer confirming their own pickup (more on that below).
  4. If your counter uses a shared phone or tablet that is not logged in to WordPress, enter a Staff Pickup PIN, for example a four-digit number. Leave it blank if every person confirming pickups will be logged in as an administrator or shop manager.
  5. Click Save Changes.

There is nothing for the customer to set up, and no scanner page for staff to bookmark. The code appears on new and existing open pickup orders as soon as you save.

Choosing between staff login and a Staff Pickup PIN

With staff verification on, a scan can be confirmed in one of two ways. Use whichever fits the device at your counter.

Staff loginStaff Pickup PIN
Who can confirmAny user with the manage_woocommerce capability (administrators, shop managers)Anyone who knows the PIN
Best forStaff using their own phone, already logged inA shared counter tablet that stays logged out
Order note recordsThe staff member’s name“staff scan device”
Guessing protectionWordPress loginLocked for 15 minutes after 5 wrong attempts

The trade-off is accountability. A login tells you which person handed the order over. A PIN only tells you it was someone at the counter. If you need a per-person record, give each member of staff a shop manager account instead of sharing a PIN.

The handoff at the counter

  1. The customer opens the code from their Ready for Pickup email or their account page, on screen or printed.
  2. Staff scan it with the device camera. The scan page opens in the browser.
  3. Staff check the customer name, location and appointment against the person and the bag.
  4. Staff tap Mark as Picked Up, or enter the PIN and tap Confirm Pickup.

The order moves to Picked Up. If you have the Picked Up email enabled in your local pickup workflow, the customer receives it at that point.

How to confirm the QR handoff is working

Test it once with a real order before you rely on it at the counter.

  • Customer side: place a pickup order as a customer, then open My Account → View Order. You should see a box headed Pickup Confirmation Code with the QR image and the order number underneath.
  • Email: move the order to Ready for Pickup and check the email contains the same code.
  • Scan page: scan from a logged-out phone. With verification on, you should be asked for the PIN rather than shown a confirm button.
  • Order notes: after confirming, open the order. The status is Picked Up and the notes include a line such as Order marked as picked up via QR scan at 2026-10-01 17:32:10 by staff scan device (verified by staff PIN).
  • Repeat scan: scan the same code again. The page should say Already Picked Up and show the original time, not change anything.

If the scan page says “Staff Verification Required”, verification is on but there is no PIN and the device is not logged in as staff. Set a PIN, or log in.

What QR pickup confirmation does not do

The feature does one job: it turns a handoff into a recorded status change. Know where it stops before you change your counter process around it.

  • It does not check identity. The code proves which order this is, not who is holding the phone. Anyone the customer forwards the email to can present it. If you sell age-restricted or high-value goods, still check ID.
  • Switching verification off lets customers confirm their own orders. The code is in the customer’s own email, so without verification anyone with the code can open the scan page and tap the button before they arrive. Keep verification on unless staff are the only people who ever see the code.
  • One code per order. If a customer splits an order across two pickup locations, a single scan marks the whole order Picked Up, not one location’s share.
  • The PIN lockout is tracked by network address. On shared store Wi-Fi, five wrong guesses from any device on that connection can lock the counter tablet for 15 minutes. A logged-in staff account still works during a lockout.
  • The QR image is generated by an external service. By default the image comes from api.qrserver.com, which receives the scan link for each order. Developers can point the alp_qr_image_url filter at a self-hosted generator.
  • It is not in every email. The code is added to the HTML versions of the Processing and Ready for Pickup emails only, not plain-text emails or the extra emails chosen under Additional order emails display. Some email apps also hide images until the reader allows them, so tell customers the code is on their account page too.
  • It does not replace manual updates. Guests have no account page, and phones die. Staff can still mark an order Picked Up from the order screen, the orders list or the fulfilment dashboard.

Frequently asked questions

Do my staff need a special app to scan the code?

No. The QR code is a normal web link, so the built-in camera on most phones and tablets, or any QR scanner app, will open it. The scan page runs in the browser on your storefront, not in wp-admin. The device needs a camera and an internet connection, and that is all.

Does scanning the code mark the order Picked Up straight away?

No. Since version 2.3, scanning only opens the order. A member of staff has to review the details and tap Mark as Picked Up, or enter the Staff Pickup PIN. Versions 2.1 and 2.2 marked the order on scan; if you are on one of those, update before relying on the feature.

Can a customer scan their own code and mark the order collected?

Not while Require staff verification before marking picked up is switched on, which is the default. Confirmation then needs either a logged-in administrator or shop manager, or the Staff Pickup PIN. If you switch verification off, anyone holding the code can confirm the pickup, including the customer.

What happens if the customer cannot find their code?

Logged-in customers can open it from My Account → View Order. Guests only have it in their emails. If neither works, look the order up and mark it Picked Up manually from the order screen or the fulfilment dashboard. The QR step speeds up the handoff; it is never the only way to complete one.

Does the QR code expire?

The code has no expiry date. What limits it is the order status: once the order is Picked Up, cancelled, refunded or failed, the code stops showing to the customer, and scanning an old copy shows the order’s state without changing it. A collected order cannot be confirmed twice.

Does it work with the WooCommerce checkout block?

Yes. Local Pickup PRO supports both the classic checkout and the block-based Cart and Checkout, including the block’s own Local pickup method. The code appears for any order that has a pickup location saved against it, whichever checkout placed it.

Conclusion

A pickup counter fails in small ways: a missed status change, a bag handed to the wrong Sam, an order that looks uncollected for a week. Scan-to-confirm closes that gap by making the handoff and the record the same action, with the staff member and time written to the order.

Set it up with verification on and a PIN for the counter device, run one test order through, and check the order note. For every option in detail, see the QR Code Pickup Handoff documentation.

Confirm every pickup with a scan.

Local Pickup PRO adds QR handoff, multiple pickup locations, appointments and a Ready for Pickup to Picked Up workflow to WooCommerce.