WooCommerce does not send a shipment tracking email by default. To send one automatically, something in your stack must write a tracking number to the order and trigger the customer message when the parcel leaves. This guide compares three practical routes for WooCommerce stores, shows where each automatic shipment tracking email workflow can fail, and gives you a setup and test sequence that does not rely on guesswork.
A customer note is the only built-in WooCommerce mechanism for sending a tracking number without an extension.
Open the order in wp-admin, use the Order notes panel, enter the carrier and tracking number, change Private note to Note to customer, then select Add. WooCommerce sends that text through its Customer note email template to the billing address. There is no plugin configuration or carrier connection involved.
It is a workable stopgap, not a shipping system. The missing pieces are important:
For a low-volume store, this can be a rational trade. It requires no new components and keeps the process visible to the person dispatching the order.
At higher volume, manual copy and paste becomes an error source rather than a process.
Mail transport comes first
A tracking plugin usually adds a structured field to the order and a status-driven email workflow. You still need a source for the tracking number, but the plugin can render the carrier link and send the customer-facing message consistently.
WooCommerce Shipment Tracking (Official)
The WooCommerce.com extension adds a Shipment Tracking panel to the order edit screen. You select a provider, enter a tracking number and record the shipment date. When the carrier is in its provider list, the extension can construct the tracking URL from that data.
Saved tracking details can be included in customer order emails, the order-received page and the customer account area. The implementation builds on the standard completed-order email instead of creating a separate notification, which keeps it close to existing WooCommerce email customization.
Its value is restraint: one shipment per order and no automatic carrier import. It suits stores that want a small, WordPress-native workflow and accept manual entry.
Advanced Shipment Tracking
Advanced Shipment Tracking extends the model for stores whose warehouse process is less tidy than one order and one parcel. It supports multiple shipments per order, a partially shipped status and a broad carrier library with localized tracking URLs.
The workflow features are the reason to evaluate it. It provides a dedicated shipment-tracking email template, bulk actions, CSV import and integrations that can receive tracking data from fulfillment services. That separation is useful when dispatch and completed-order communication should not be the same event.
Choose it when split shipments, batch entry or a distinct tracking notification are concrete requirements. Do not choose it merely to avoid defining who owns the tracking data.
AfterShip
AfterShip is designed around post-dispatch tracking events rather than a single WooCommerce notification. It can collect carrier status updates and apply notification rules for stages such as in transit, out for delivery, delivered or exception.
The integration can synchronize WooCommerce orders and tracking numbers with an AfterShip account, where notification rules and templates are managed. It also offers a branded tracking page. This shifts part of the delivery experience outside WordPress.
It fits teams that need event-based tracking communication and are comfortable operating an external service. Review the resulting ownership carefully so customers do not receive duplicate messages.
Shipment tracking plugin comparison
| Capability | Official Shipment Tracking | Advanced Shipment Tracking | AfterShip |
|---|---|---|---|
| Structured tracking field | Yes | Yes, multiple shipments | Yes, synchronized to service |
| Dedicated tracking email | No, uses completed order email | Yes, separate template | Yes, managed by AfterShip |
| Carrier-status notifications | No | No | Yes, by delivery stage |
| Bulk or CSV import | No | Yes | Through integrations |
| Branded tracking page | No | Order details only | Yes |
| Primary control plane | WordPress | WordPress | External service |
| Best fit | Simple manual workflows | Split shipments and imports | Event-based delivery updates |
Prices, included features, and plan terms change. Compare the workflow capabilities above, then confirm the current offer directly with each vendor.
This is the only route that removes manual tracking-number entry. The important distinction is not whether a label is created automatically. It is whether the resulting number is written back to the WooCommerce order in the field your email workflow reads.
A reliable automation has five handoffs:
The write-back step is the control point. A fulfillment tool can mark an order complete while failing to persist the tracking number. The customer then receives a completed-order email without useful shipment data.
ShipStation
Shippo
EasyPost
This example uses a tracking plugin because it makes the data path visible. Even when a carrier tool creates the number, WooCommerce still needs a defined place to store and present it.
Most failures are not visible in the plugin settings. The plugin can be enabled, the carrier configured and the template correct while WordPress cannot hand the message to a mail transport. Test the workflow as a chain, from order state through message generation to the mail provider log.
Check these points in order:
Tracking email troubleshooting matrix
| Symptom | Likely cause | First place to inspect |
|---|---|---|
| No tracking email | Mail transport is not configured | Password-reset test and SMTP log |
| Other emails arrive, tracking email does not | Wrong trigger status or disabled email | Order history and Settings → Emails |
| Email has no tracking number | Tracking write-back failed | Order field and fulfillment-tool log |
| Tracking link fails | Carrier mapping is missing or incorrect | Plugin carrier settings |
| Works for you but not customers | Recipient-side delivery policy | Sending-provider logs and DNS records |
| Stopped after an update | Template override or hook conflict | Staging test with plugins isolated |
For a deeper diagnostic sequence covering mail transport, hooks, and plugin conflicts, see WooCommerce order confirmation email not sending.
Tracking workflows often degrade at integration boundaries. A plugin update can alter a template. A carrier integration can stop writing a field. An expired mail credential can prevent any message from leaving WordPress. Without a deliberate test, the first signal may be a customer asking where the parcel is.
ShopMonitor tests the browser checkout and thank-you path on a schedule. It can alert you when an order cannot be placed or the thank-you page fails to render. That helps expose checkout failures around payment, order creation and post-order hooks. It does not send tracking emails or manage carrier data.
The boundary is deliberate: ShopMonitor checks the browser checkout and thank-you path only. It never checks inbox arrival or email delivery. Use your mail provider’s logs and delivery tooling to investigate whether a tracking message reached an inbox.
ShopMonitor runs browser checkout and form tests on a schedule and alerts you when the checkout or thank-you path breaks. No store plugin. No code changes.
No credit card required.

About the author
Written by the team at Winning Solutions, the agency behind ShopMonitor. We build and maintain WooCommerce systems with attention to the operational details that shape the customer experience after checkout.