Shipment Tracking for WooCommerce
Tracking numbers on orders with carrier links, a Shipped email, a public tracking page, My Account and CSV import.
- Block cart and checkout
- Classic cart and checkout
- High-performance order storage
- WooCommerce 9 – 11
- WordPress 6.6 – 7.1
- PHP 7.4+
What Shipment Tracking does
Add a tracking number to an order and the customer gets a "your order has shipped" email with a link to the carrier, sees the number on the thank-you page and in My Account, and can look the order up on your own tracking page. No carrier accounts, no API keys: the plugin builds the carrier's tracking link from the number.
Shipment Tracking features
On the order
- A Shipment tracking box on the order screen: pick the carrier, paste the number, set the date, add. Several shipments per order, removed with one click, all without saving the order
- Built-in carriers with tracking links: UPS, FedEx, USPS, DHL Express, DHL eCommerce, DHL Paket, Royal Mail, Parcelforce, Evri, DPD, DPD UK, GLS, PostNL, La Poste, Correos, Australia Post, Canada Post, Purolator, India Post, Delhivery, Blue Dart, DTDC, Aramex, TNT, Japan Post, SF Express
- Your own carriers with a link template, in the settings, and a one-off custom carrier per shipment
- Optionally mark the order completed when a number is added, and an order note for every change
- A Tracking column on the orders list and search by tracking number
- CSV import of many tracking numbers at once (order number, carrier, tracking number, date), and the
shipment_trackingfield on the REST API orders endpoint for integrations
For the customer
- A Shipped email, editable under WooCommerce > Settings > Emails, with a Track your parcel button
- Tracking numbers in the completed, invoice and note emails
- A tracking table on the thank-you page and the My Account order page, and a Track button on My Account > Orders
- A public tracking page from the
[shipment_tracking]shortcode: order number plus billing email, or the link from the email, shows the status, the shipments and the items
From tracking number to delivered parcel
The question every store answers by email is "where is my order?". Shipment Tracking answers it before it is asked. Paste the carrier's number into the Shipment tracking box on the order, and in the same click the customer gets a Shipped email with a Track your parcel button, the order is marked completed if you want, and the number appears on the thank-you page, in My Account and on your own tracking page.
The carriers come with their tracking links built in, so there is nothing to configure for the common ones:
| Region | Carriers | The link opens |
|---|---|---|
| United States | UPS, FedEx, USPS, DHL Express, DHL eCommerce | The carrier's tracking page with the number filled in |
| United Kingdom | Royal Mail, Parcelforce, Evri, DPD UK | Same, including Royal Mail's reference format |
| Europe | DHL Paket, DPD, GLS, PostNL, La Poste, Correos | Same |
| Australia and Canada | Australia Post, Canada Post, Purolator | Same |
| India and Asia | India Post, Delhivery, Blue Dart, DTDC, Aramex, TNT, Japan Post, SF Express | Same, or the carrier's lookup form where it has no deep link |
| Yours | Any carrier, as Name | link with {number} | Your link; {postcode} is available for carriers that ask for it |
Several shipments can sit on one order, each with its own carrier and date. Numbers can also arrive in bulk from a CSV under WooCommerce > Shipment Tracking, or from a warehouse system through the shipment_tracking field on the REST API orders endpoint, which both add the number and send the email.
Links to the carrier, not a carrier account
Shipment Tracking builds the carrier's tracking link from the number and sends the customer there, which is where the live status lives. It does not pull delivery events into your store, so it needs no UPS or FedEx developer account, no API keys and no per-shipment fees from a tracking aggregator. For most stores that is the right trade: the customer gets a one-click link in the email and on your site, and you get a column, a search and a CSV import instead of an integration project.
The tracking page is the part a plain carrier link cannot do. A customer enters the order number and billing email, or follows the keyed link from the email, and sees the order status, every shipment with its Track button, and the items. It honours custom order numbers, so it works with Sequential Order Numbers out of the box. If you later need live status and delivered notifications inside WooCommerce, that is the next step, not this plugin.
How to set up Shipment Tracking in WooCommerce
- 1
Upload the plugin to
/wp-content/plugins/or install the zip from Plugins > Add New > Upload Plugin. - 2
Activate it. Enter the licence key from your purchase email when asked (also under Activate License on the Plugins screen).
- 3
Open any order and add a tracking number in the Shipment tracking box. For a public tracking page, create a page with the
[shipment_tracking]shortcode and pick it under WooCommerce > Settings > Shipment Tracking.
Questions about Shipment Tracking
Does it show live delivery status from UPS or FedEx?
No. It links to the carrier's own tracking page with the number filled in, which is where the live status lives. That needs no carrier account and works for every carrier in the list and any you add.
Can I add my own carrier?
Yes. Under WooCommerce > Settings > Shipment Tracking, add one per line as "Name | https://carrier.example/track/{number}". {postcode} is also available for carriers that need it. You can also type a carrier name and link on a single shipment.
Can an order have more than one tracking number?
Yes. Add as many shipments as you like; they are all listed on the order, in the emails and on the tracking page.
When is the customer emailed?
When a tracking number is added, if the "Email the customer" box is ticked (the default comes from the settings). The Shipped email is a normal WooCommerce email, so you can edit its subject, heading and extra text or switch it off.
Does the tracking page work with custom order numbers?
Yes. The lookup goes through the same filter WooCommerce's own order tracking form uses, so plugins that change order numbers are honoured.
How do I import tracking numbers?
WooCommerce > Shipment Tracking takes a CSV with order_number, carrier, tracking_number and an optional date_shipped column. Numbers already on an order are skipped, and you choose whether to email customers and complete orders.
Does it work with the block checkout and HPOS?
Yes. Tracking is added after the order exists, so the checkout type does not matter, and the data is stored as order meta that works with High-Performance Order Storage.
Do I need a licence key?
The key from your purchase email is what delivers updates and support to this site. Enter it on the screen shown after activation, or later through Activate License on the Plugins screen. The plugin's features work either way.
Shipment Tracking changelog
- 1.0.0
- Initial release.
Plugins that pair with Shipment Tracking
Custom Order Statuses
Add your own order statuses such as Packed, Awaiting pickup or Ready to ship, with colours, bulk actions and safe deletion.
View plugin
Order Delivery Date
Let customers choose a delivery date and time slot at checkout. Set delivery days, lead time, a daily cut-off and closed dates.
View plugin
Slack, Telegram & Discord Alerts
Instant WooCommerce alerts in Slack, Telegram or Discord: new orders, low stock and out of stock, with a link straight to the order or product.
View plugin