WooCommerce order tracking page and shortcode: how it works and how to build one
WooCommerce includes an order tracking form you can place on any page with the [woocommerce_order_tracking] shortcode. It lets a customer enter an order ID and billing email to see the order's status, but it does not show where the parcel is with the courier. This guide explains what the core form does, how logged-in customers find their orders, how to build a proper tracking page, and what a carrier-aware page adds.
What the core WooCommerce tracking form does
WooCommerce core includes a shortcode, [woocommerce_order_tracking], that renders a small form. The customer types in an order ID and the billing email address used at checkout, submits it, and sees a summary of that order: its date, its current order status and any order notes you have made visible to the customer.
The important word is status. That means states such as Processing, On hold or Completed, which are your internal record of where the order is in your workflow. It does not mean the courier's view of the parcel. The core form has no idea whether the parcel is on a truck, in a depot or at a pickup point, because WooCommerce does not store or fetch carrier scans.
That is not a flaw, just a limit. The form answers "has my order been received and processed". It does not answer "where is my parcel", which is the question most people actually have once an order has shipped.
How to add the order tracking shortcode to a page
The shortcode does not create a page for you. You add it to one yourself, which takes a couple of minutes.
- In WordPress, go to Pages > Add New and give the page a plain title such as Track your order.
- Add a Shortcode block (in the block editor) or paste straight into the content area (in the classic editor).
- Type [woocommerce_order_tracking] and nothing else inside the block.
- Publish the page and open it while logged out to check that the form appears and accepts a real order ID and billing email.
- Add the page to your header or footer menu under Appearance > Menus, so customers can reach it without hunting.
What customers need to have to use it
The form is simple, but customers regularly get stuck on the first field. The order ID is the number in the confirmation email, which is usually shown with a hash in front of it. They should type only the digits. Many customers paste the whole email subject line or the reference from their bank statement instead.
The email address has to match the billing email on the order, not another address they own. Guest buyers who used a different address on a previous purchase often hit this. Put a short line above the form that says where to find the order number and which email to use, and you will cut down on avoidable messages.
How logged-in customers find their orders in My Account
Customers who have an account have a better route than the tracking form. After logging in, they open My Account and choose Orders. That lists their past orders with date, status and total. Selecting View on an order shows the full details, including any tracking information added by your tracking extension or plugin.
For this to work, you need the My Account page to be set up, which WooCommerce does when it creates its default pages. You can check under WooCommerce > Settings > Advanced, where the account page is assigned. Also check under WooCommerce > Settings > Accounts & Privacy whether guests can check out without an account, because guest buyers will never see My Account at all.
If many of your customers are guests, that is a good argument for a standalone tracking page and for putting a direct tracking link in the shipping email, rather than asking them to log in.
Building a tracking page that is actually useful
A good tracking page does three things: it lets the customer identify their order, it shows a clear answer, and it tells them what to do next. You can build most of this from the pieces you already have.
- Put the shortcode form near the top, with one sentence explaining where to find the order number and which email address to enter.
- Underneath, list the couriers you use with a link to each one's own tracking page, and tell customers they can paste the number from their shipping email there.
- Add a short note on normal delivery windows for each service you offer. Use only the times you have actually seen, and avoid promises you cannot keep.
- Add a contact option for parcels that have not moved for several days, so customers have a next step besides waiting.
- Link the page from your order confirmation and shipping emails so customers do not have to search for it.
Core form, tracking plugin page or carrier-aware page
| Type | What the customer sees | Limits |
|---|---|---|
| Core WooCommerce form | Order date and order status | No courier scan data, no map or timeline, and the customer still needs a tracking link from somewhere else |
| Tracking plugin page | The tracking number you entered and a link to the courier's site | Shows what you typed in, so it is only as good as your data entry, and the customer still ends up on the courier's page |
| Carrier-aware page | Live parcel status pulled from courier scans, for the number on the order | Needs a service that reads courier data, and a way to link the page to your orders automatically |
There are three broad levels of tracking page, and the right one depends on how many parcels you ship and how many couriers you use.
Common problems with tracking pages
The first complaint is usually "order not found". That nearly always means the customer typed the wrong email, included the hash or typed a number from a different shop. Making the instructions clearer fixes most of it.
The second is that the page shows Completed while the parcel has not left the warehouse. This happens when staff mark orders complete at packing time instead of at collection. Agree one rule for when the status changes, and keep to it.
The third is caching. Some caching plugins and hosts will cache the tracking page, which can show a customer someone else's result or a stale one. Exclude the tracking page and My Account from page caching, and test it logged out in a private window.
Last, make sure the page works on a phone. Most customers check parcels on their phones, so confirm that the form fields are large enough to tap and that nothing runs off the screen.
What a carrier-aware tracking page adds
A carrier-aware page reads the courier's own scan events and shows them in plain language: collected, in transit, out for delivery, delivered, or an exception such as a failed attempt. The customer gets the courier's answer without leaving your brand, and you get one consistent look across couriers that each present their data differently.
It also changes what you can do on your side. If you can see which parcels have stopped moving, you can contact the customer or the courier before anyone has to ask. That matters most for South African shops using several services, such as The Courier Guy, Pargo, PUDO, PAXI, Aramex or PostNet, where each has its own tracking site and wording.
Where TrackIt For Business fits
TrackIt For Business gives a store a self-serve tracking page and automatic customer notifications without you building them. Connect a WooCommerce store and completed orders become tracked shipments, across more than 3,000 carriers, with the couriers you already use. If you are not on WooCommerce, you can add shipments manually, by CSV import or through the REST API.
Customers can also receive a branded Apple Wallet or Google Wallet pass that updates as the parcel moves, and you get a dashboard with delay alerts and delivery performance per courier. It is $14.99 a month, plus R1.50 per package the first time its Wallet passes are generated. Tracking-only packages cost nothing extra.
Common questions
What is the WooCommerce order tracking shortcode?
It is [woocommerce_order_tracking]. Placed on a page, it shows a form where customers enter an order ID and billing email to see that order's status. It shows order status, not courier scan events.
Does WooCommerce create an order tracking page automatically?
No. You create a page yourself, add the shortcode to it and then link it from your menu or emails. WooCommerce does create a My Account page by default, which lists a logged-in customer's orders.
Can customers see where their parcel is with the core form?
No. The core form reports the order status you set, such as Processing or Completed. To show the parcel's location you need a tracking number added to the order and either a link to the courier or a service that reads courier scans.
Why does a customer see "order not found"?
Usually the order ID includes extra characters, or the email does not match the billing email on the order. Add a short instruction above the form saying where to find the order number and which email to use.
How does TrackIt For Business help with a tracking page?
It supplies a self-serve tracking page that shows live status from courier scans, plus automatic notifications and optional branded Wallet passes. You connect your WooCommerce store, keep your couriers and do not need to build the page yourself.
More guides
- TrackIt For Business
- How to set up an ecommerce store, step by step
- How to start an online business, step by step
- Online store launch checklist: what to do before launching your shop
- What to do when setting up an online shop
- How to start an online store in South Africa
- How to set up shipping for an online store
- Order fulfilment for a small ecommerce business
- How to choose a courier for your online store
- Order tracking for small business online stores
- How to reduce 'where is my order' (WISMO) enquiries
- Setting up a WooCommerce store, step by step
- A checklist for setting up a Shopify store
- Essential tools for a new ecommerce store
- Post-purchase customer experience for online stores
- How to start a dropshipping business, step by step
- How to start selling online from home
- Customer service for a new online store
- How to grow a small online store from 10 to 100 orders a day
- You got your first online order: what to do next
- How much does it cost to start an online store?
- How to add a tracking number to a WooCommerce order
- WooCommerce shipping zones, shipping classes and settings explained
- Shopify shipping rates: how to set them up
- Shopify order tracking without an app
- How to track dropshipping orders
- How to reduce shipping costs for a small business
- Free shipping threshold: how to calculate it
- Ecommerce returns policy and how to handle returns
- How to ship with The Courier Guy, Pargo, PUDO and PAXI