Most customer service email in a small online store comes down to two questions: “Why is this not what I ordered?” and “Where is my package?” Big retailers have spent millions making sure their customers rarely have to ask either one. A small WooCommerce store can get remarkably close for the cost of a few plugins and a barcode scanner.
At LHT Technologies we built exactly that WooCommerce order fulfillment workflow for our own stores. Every order was scanned before it shipped, tracking was added without anyone copying and pasting, and customers heard from us at every step until the package was on their porch. This post walks through how it fit together and why it paid for itself.
The goal: a big-store experience on a small-store budget
When someone orders from a large retailer, they expect a few things without thinking about it. The right items show up. They get an email when the order ships, another when it is out for delivery, and one more when it lands. They can check a tracking page or their account at any time without hunting for a carrier link.
Small shops usually fall short on all of that, not because the owner doesn’t care, but because it is all manual. Someone packs the box from memory, someone else types a tracking number into an email, and nobody follows up after that. We wanted our customers to have the same experience they get from the big sites, and we wanted the whole thing to run from inside WordPress.
Step 1: Give every product a SKU and a barcode
Barcode scanning only works if every product has a code to scan, and many of ours didn’t. Plenty of small-batch and specialty products ship with no barcode at all.
We solved that in two pieces:
- SKU Generator for WooCommerce Premium automatically assigned a SKU to every product and variation the moment it was created. No more blank SKU fields, no more inconsistent naming, and no extra step when adding new stock.
- Barcode Label Printing for WooCommerce by UkrSolution turns those SKUs (or existing UPC and EAN codes) into printable barcode labels, so every item on the shelf has something scannable on it. It works with thermal label printers as well as standard label sheets, and you can add the product name, price or other details to each label.
When a product already came with a manufacturer barcode, we simply entered that code in WooCommerce and used it instead. Either way, every item in the catalog ended up with a code that matched exactly one product in the store.
Step 2: Scan every order with PickingPal Pro
This is where order accuracy actually happens. PickingPal Pro is a WooCommerce extension built around barcode-verified picking. The workflow looks like this:
- Print a pick ticket for the order. It carries its own barcode.
- Scan the pick ticket to load the order’s line items on screen.
- Scan each physical item as it goes into the box. PickingPal checks it against the order and gives a visual and audible cue for a match or a mistake.
- When every item and quantity is accounted for, the order is marked pick-complete and the screen resets for the next one.
If the wrong item gets scanned, you know before the box is taped, not after a customer emails you a photo. PickingPal also keeps a searchable log of who picked each order and when, which settles any “I’m sure I packed it” question in seconds. It works with practically any USB or wireless scanner, and it runs in a browser, so a tablet at the packing station works fine.
Step 3: Print shipping labels without leaving the order
Once an order was picked, the shipping label was bought and printed right from the WooCommerce order screen using WooCommerce Shipping. For years this lived in a single WooCommerce Shipping & Tax plugin; it has since been split into separate WooCommerce Shipping and WooCommerce Tax plugins, but the workflow is the same. No logging in to a separate carrier site, no retyping addresses, no exporting CSV files. Pick, pack, label, done, all on the same page.
That matters more than it sounds. Every time someone switches between systems, there’s a chance to grab the wrong address or the wrong order. Keeping the entire fulfillment workflow inside the website removed that risk entirely.
Always have a backup way to ship
One lesson we learned the hard way: any single label service can go down. A few years back, we couldn’t print labels for one store on two separate days within a short stretch. Orders don’t stop coming in just because a label service is having a bad day, so we connected Pirate Ship as a backup. If WooCommerce Shipping is unavailable, orders still go out on time through Pirate Ship, and customers never know anything happened. It’s the same thinking we apply to website backups and hosting: plan for the outage before it happens.
Step 4: Automatic tracking with Advanced Shipment Tracking Pro and TrackShip
With the label created, the tracking number needs to get onto the order and in front of the customer. We used two plugins from the same developer that are designed to work together.
Advanced Shipment Tracking Pro attaches the tracking number and carrier to the WooCommerce order and marks it shipped. The customer immediately gets a shipped email with their tracking number and a link.
TrackShip takes it from there. It checks the carrier for status changes every few hours and updates the order on its own, so nobody has to watch carrier websites. Each status change can trigger a customer notification:
- Shipped — label created and tracking number added
- In transit — the package is actually moving through the carrier network
- Out for delivery — it’s on the truck today
- Delivered — it’s there, and the order is marked Delivered in WooCommerce
Those updates went out by email by default. Text message updates were available too, as an optional paid add-on for store owners who wanted them, since SMS carries a per-message cost.
Make sure the emails actually arrive
Automated updates only help if they land in the inbox. WordPress sends email through the web server by default, and those messages are easy for Gmail, Outlook and Yahoo to flag as spam or reject outright. We route all store email through WP Mail SMTP Pro connected to a dedicated sending service such as Mailgun or Brevo, with the domain properly authenticated. Order confirmations, shipped notices and delivery updates reach customers reliably, and the email log shows exactly what was sent and whether it was delivered if anyone ever asks.
Step 5: A tracking page and account view customers can check anytime
Not everyone reads their email. TrackShip adds a branded tracking page that lives on your own store instead of the carrier’s site. Customers can see the current status, the estimated delivery date and the full tracking timeline, styled to match the rest of the site. The same tracking details show up in the customer’s account page next to their order.
This keeps customers on your website instead of bouncing them to a carrier page, and it gives them an answer before they think to email you.
What it changed
The biggest result was the email that stopped arriving. Before this workflow, we’d see anywhere from a few to as many as 50 order-related support tickets a week. After it was in place, that dropped to virtually zero. Orders shipped with exactly what the customer paid for, so “wrong item” and “missing item” messages all but disappeared. Customers weren’t chasing tracking numbers, because they already had them, along with an update every time the package moved. Our support inbox got noticeably quieter, and the time we used to spend answering “where’s my order?” went back into running the business.
There was a staff benefit too. Anyone could be trained to pack orders in minutes, because the scanner catches mistakes rather than relying on someone memorizing the catalog. And on the admin side, the orders list shows every shipment’s status at a glance, so a stuck or exception package is easy to spot before the customer notices.
WooCommerce order fulfillment: small cost, big impact
None of this needs warehouse software or an enterprise budget. Here is what the stack comes down to:
- A SKU generator and a barcode label plugin
- A thermal label printer and a basic barcode scanner
- PickingPal Pro for scan-verified picking
- WooCommerce Shipping for on-site labels, with Pirate Ship as a backup
- Advanced Shipment Tracking Pro and TrackShip for tracking and notifications
- WP Mail SMTP Pro with Mailgun or Brevo so those notifications reach the inbox
For a small business, that’s a modest yearly cost compared to the hours it saves and the customers it keeps. Getting an order wrong costs you the reshipment, the return postage and sometimes the customer. Getting it right every time, and keeping people informed until it arrives, is how a small shop earns repeat business.
A quick note on tooling: plugins change over time, and we review this stack regularly. When a plugin stops being developed or supported, we replace it before it becomes a problem. The workflow is what matters: a unique code on every product, scan-verified picking, labels printed in the order, and automated tracking updates.
Want this for your store?
If you run a WooCommerce store and you’re still packing from memory and pasting tracking numbers into emails, this is one of the highest-return upgrades you can make. At LHT Technologies we can set up the full WooCommerce order fulfillment workflow for you, from SKUs and barcodes through picking, labels and automated tracking, so your customers get a big-store experience from a small-store team. Reach out by email and tell us how your store ships today.
