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.

  1. In WordPress, go to Pages > Add New and give the page a plain title such as Track your order.
  2. Add a Shortcode block (in the block editor) or paste straight into the content area (in the classic editor).
  3. Type [woocommerce_order_tracking] and nothing else inside the block.
  4. Publish the page and open it while logged out to check that the form appears and accepts a real order ID and billing email.
  5. 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

TypeWhat the customer seesLimits
Core WooCommerce formOrder date and order statusNo courier scan data, no map or timeline, and the customer still needs a tracking link from somewhere else
Tracking plugin pageThe tracking number you entered and a link to the courier's siteShows 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 pageLive parcel status pulled from courier scans, for the number on the orderNeeds 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.

WooCommerce Order Tracking Page and Shortcode Guide | TrackIt