You add a tracking number, mark the order shipped, and the “your order is on its way” email goes out. Three days later the customer writes in: “Where is it?” The answer is sitting in the carrier’s system, and someone on your team now has to go and copy it out by hand, one order at a time.
The fix is to let a service check the carriers for you and write each status change back to the order. Once that is running, nobody has to check by hand. Customers get the “out for delivery” and “delivered” emails, the order moves to Delivered on its own, and you hear about stuck parcels before the customer does.
Advanced Shipment Tracking Pro (AST PRO), our WooCommerce shipment tracking plugin, stores the tracking number, carrier and ship date on every order. TrackShip takes those tracking numbers and keeps them up to date. This guide covers the setup. It also covers the settings that most often leave a connected store stuck at “Shipped”, and gives you a checklist to confirm the whole loop works.
What TrackShip adds to your tracking numbers
The two plugins split the work, and most setup problems come from expecting one plugin to do the other’s job.
AST PRO holds the data. It records the tracking number, carrier and ship date. It shows them in order emails, in the customer’s My Account area and in the order admin. It also brings them in from CSV files and the REST API.
TrackShip keeps that data live. When an order with a tracking number moves to a shipped status, the TrackShip for WooCommerce plugin sends the tracking number to TrackShip. TrackShip then checks the carrier every two to four hours and writes each new shipment status back to the order. That status drives the customer emails, the tracking page on your own domain, the Delivered order status and the late-shipment alerts. Without TrackShip, a tracking number is accurate but static.
How to set up automatic shipment status updates
You don’t connect TrackShip from inside AST PRO. AST PRO’s settings have a TrackShip tab, but it only describes the service and has no connect button. The connection is made in the TrackShip plugin’s own menu.
- Check the requirements. TrackShip needs an SSL certificate, the WooCommerce REST API enabled, and pretty permalinks. Go to Settings → Permalinks and choose Post name.
- Install TrackShip for WooCommerce. Install the free TrackShip for WooCommerce plugin from WordPress.org and activate it alongside AST PRO. It adds a top-level TrackShip menu to your admin.
- Connect your store. Open TrackShip and click Connect your store. Sign in to TrackShip or create an account, then authorise the WooCommerce API permissions. You come back to the TrackShip settings in your admin, and the Dashboard, Shipments, Logs, Analytics and Settings pages now appear in the menu. There is no API key to copy.
- Choose which order statuses start tracking. Go to TrackShip → Settings → General Settings and review Auto-track these order statuses. The defaults are Completed, Shipped and Partially Shipped. If your workflow uses custom WooCommerce order statuses for shipped orders, add them here, or those orders will never be tracked.
- Turn on delivery automation. In the same section, keep Enable Order Delivery Automation on. It adds a Delivered order status and sets it once every shipment on the order is delivered.
- Pick the customer emails. Under TrackShip → Settings → Notifications, choose which statuses email the customer. The options are In Transit, Available For Pickup, Out For Delivery, Delivery Failure, On Hold, Exception, Return To Sender, Delivered and an Available for Pickup reminder. The admin notifications for late, exception and on-hold shipments are set up on the same tab.
- Enable the tracking page. In TrackShip → Settings → Tracking Page, turn on Enable Tracking Page and choose the page. Customers then track their parcel on your domain instead of the carrier’s site.
The step that trips most people up is that tracking starts when the order status changes, not when you save the tracking number. A tracking number on an order still in Processing is not sent to TrackShip. Neither is an order that was already Completed before you connected your store.
How to confirm it is working
Test with one real shipment before you rely on it.
- Add a real tracking number to a Processing order in AST PRO and mark it shipped.
- In the WooCommerce orders list, check the Shipment Status column. It shows Pending Update for a few minutes, then the first carrier status, such as Pre Transit or In Transit.
- Open TrackShip → Shipments and confirm the shipment is listed with its carrier and estimated delivery date.
- Once the first customer email goes out, find it in TrackShip → Logs.
If the column says something other than a carrier status, the next section explains what each message means.
Why tracking stops at “Shipped”: common blockers
These blockers account for most stores that are connected but not getting updates. Several of them affect AST PRO stores more than others, because AST PRO users are more likely to import tracking in bulk, use custom statuses or add their own carriers.
Tracking was added but the order status never changed
This happens with CSV imports or API calls that add tracking but leave the order in Processing. Nothing is sent to TrackShip until the order moves to an auto-track status. In your CSV, set the status_shipped column to 1 (shipped) or 2 (partially shipped) so the import changes the order status. You can also change the status afterwards.
Your shipped status is not in the auto-track list
If orders move to a custom status such as “Dispatched” or “Sent to 3PL”, TrackShip ignores them until you add that status to Auto-track these order statuses.
The orders shipped before you connected
Orders shipped before you connected are not picked up automatically. Under TrackShip → Settings → Tools, Get Shipment Status sends Completed orders from the last 30 days that have tracking but no shipment status. For older orders, or orders in other statuses, select them in the orders list and run the Get Shipment Status bulk action.
“Carrier Unsupported”
TrackShip supports 1,000+ carriers, but a custom carrier you created in AST PRO has no TrackShip match. Supported carriers show a TrackShip badge under WooCommerce → Shipment Tracking → Shipping Carriers. If your carrier name comes from a label service or a 3PL, match it to the right TrackShip carrier in TrackShip → Settings → Map Shipping Carriers. Unsupported or Unknown shipments don’t use up your tracker balance.
“Connection Issue”, “Unauthorized” or “Store is not Connected to TrackShip”
A security plugin, a hosting firewall or Cloudflare is often blocking TrackShip’s requests. Other causes are a revoked API key and a store URL that changed, for example by adding or removing “www”. TrackShip’s connection troubleshooting guide covers each error. For Unauthorized, remove the store in your TrackShip dashboard and connect it again. Orders that failed while the connection was down can be sent again with Get Shipment Status.
“Insufficient Balance”
The trial covers 100 shipments over 15 days. When the trial or a plan’s balance runs out, new shipments stop updating until you choose a plan on TrackShip’s pricing page.
“Pending Update” never clears
TrackShip sends shipments through WooCommerce’s background queue. If WP-Cron is disabled or the queue is stuck, nothing leaves the store. Check WooCommerce → Status → Scheduled Actions and filter by the TrackShip group for failed or overdue actions.
What the automation saves at scale
Work it out with your own numbers. Take a store shipping 50 orders a day with an average transit time of five days. At any moment it has about 250 parcels in transit (50 × 5). Checking each one once a day on a carrier site at 30 seconds a check comes to about two hours of work a day, and once a day is less often than TrackShip checks.
| Task | By hand, 50 orders a day | With TrackShip connected |
|---|---|---|
| Status checks | ~250 a day, if each parcel is checked once | Every 2–4 hours per shipment, automatically |
| Marking orders Delivered | ~50 status changes a day | Set when every shipment on the order is delivered |
| Delivery and out-for-delivery emails | Written or triggered one by one | Sent on the status change |
| Finding stuck parcels | When the customer complains | Late, exception and on-hold digest emails |
Your own figures will differ, so change the order count and transit time to match your store. The Delivered status also feeds other automations, such as a follow-up email after the order is delivered. See how fewer status questions cut “where is my order” tickets.
Setup checklist
- SSL active, WooCommerce REST API enabled, permalinks set to Post name
- TrackShip for WooCommerce installed and Connect your store completed
- Every status you use for shipped orders listed in Auto-track these order statuses
- CSV and API imports set to change the order status, not just add tracking
- Your carriers show the TrackShip badge, or are mapped under Map Shipping Carriers
- Enable Order Delivery Automation on
- Customer emails chosen and late-shipment alert days set
- Tracking page enabled
- Existing shipped orders backfilled with Get Shipment Status
- One test order shows a carrier status in the Shipment Status column
Shipment statuses TrackShip tracks
| Shipment status | What it means |
|---|---|
| Pre Transit | Label created, not yet scanned by the carrier |
| In Transit | Moving through the carrier network |
| On Hold | Held by the carrier and not moving |
| Out For Delivery | On the vehicle for final delivery |
| Available For Pickup | Waiting at a pickup point |
| Delivered | Received by the customer |
| Delivery Failure | A delivery attempt failed |
| Exception | A problem the carrier has flagged |
| Return To Sender | On its way back to you |
What each plugin handles
| Advanced Shipment Tracking Pro | TrackShip |
|---|---|
| Adding tracking numbers, by hand, CSV or API | Checking the carrier for status |
| Carrier library and tracking links | Shipment status emails |
| Tracking in order emails and My Account | Tracking page on your domain |
| Shipped and Partially Shipped statuses | Delivered status and delivery analytics |
| Fulfilment dashboard | Late, exception and on-hold alerts |
What it does not do
TrackShip only knows what the carrier publishes. If a carrier doesn’t scan a parcel, the status won’t move either. Orders shipped before you connected are not tracked until you send them with Get Shipment Status. TrackShip is a separate service with its own subscription, on top of AST PRO. Partially shipped orders are never marked Delivered, because more items are still to ship.
Frequently asked questions
Do I need TrackShip if I already have AST PRO?
Only if you want live status. AST PRO on its own adds tracking numbers, carrier links and the shipped email, which is enough for some stores. TrackShip adds what happens after that: in-transit, out-for-delivery and delivered statuses written back to the order, the emails those statuses trigger, the Delivered order status and the tracking page on your domain.
Is TrackShip a separate plugin and a separate cost?
Yes. The TrackShip for WooCommerce plugin is free on WordPress.org, and the tracking service is a separate subscription. New accounts get a 15-day trial covering 100 shipments, with no card required. A shipment counts once per tracking number, however many status updates it gets. Unsupported and Unknown shipments are not counted.
I connected my store. Why do my orders show no shipment status?
Tracking starts when an order with tracking moves to an auto-track status, Completed, Shipped or Partially Shipped by default. Orders that were already shipped when you connected, and orders whose status never changed, are not sent. Use Get Shipment Status under TrackShip → Settings → Tools, or the bulk action of the same name in the orders list.
How often does the status update?
TrackShip checks with the carrier every two to four hours. It checks more often while a shipment is still Unknown, waiting for the first carrier scan, and while it is Out For Delivery. Updates come from TrackShip’s servers, so they don’t slow down your store.
Will customers still be sent to the carrier’s website?
Not if you enable the tracking page. With it on, tracking links open a page on your own store, styled to match it. With it off, tracking links go to the carrier’s site as before.
Does it work with any carrier?
It works with the 1,000+ carriers on TrackShip’s list. Check for the TrackShip badge on your carriers in AST PRO’s Shipping Carriers screen. Custom carriers you create in AST PRO still get a working tracking link, but no live status, unless they match a TrackShip carrier. If you’re still comparing tools, see our comparison of WooCommerce shipment tracking plugins.
Conclusion
AST PRO captures the tracking number and TrackShip keeps it current. Connecting them takes a few minutes. Most of the problems later come from a handful of settings: a shipped status missing from the auto-track list, an import that never changes the order status, a carrier TrackShip doesn’t recognise. Work through the checklist once, test one real shipment, and your store will start answering “where is my order” before customers ask.
Ready to automate your WooCommerce order tracking?
Add tracking in bulk, show it in every customer email, and connect TrackShip for automatic status updates.
14-Day Money-Back Guarantee. HPOS Compatible. WordPress.org Verified. Priority Support.
