Tracking
Seven tracking statuses that should map to Shipped in your sheet
Key takeaways
- AliExpress has no clean Shipped flag; it returns a sprawl of order_status and logistics_status strings that you must collapse into the few states a human acts on.
- Seven situations all mean the same thing to your buyer — it is on the way — from seller dispatched through customs to out for delivery, and they should map to a single Shipped status.
- The status maps cleanly even on the final leg, but the carrier_name reported alongside it is unreliable, so resolve the real courier from the tracking-ID prefix.
- Two categories must stay out of Shipped: pre-ship states with no tracking yet, and terminal states like Delivered, Expired, and Cancelled-and-refunded.
- Fetch Order Tracking reads the raw status fields on every fetch, collapses them into clean states, resolves the courier from the prefix, and keeps terminal orders out of the working set.
AliExpress does not give you a clean "Shipped" flag. It gives you a sprawl of status strings — some from the order system, some from logistics, some that read like internal jargon nobody outside a Cainiao warehouse would recognise. Drop those raw strings into your sheet and you have a column nobody can scan.
Your buyer does not care about the difference between SELLER_SEND_GOODS and a first carrier scan. They care about one thing: is it on the way? Your job is to collapse the noise into the small set of states a human actually acts on. And a surprising number of those raw strings all mean the same thing — Shipped.
Why mapping matters more than it looks
A status column is only useful if it drives action. If it shows you twelve different strings, you cannot triage at a glance — every row needs interpreting, and interpreting three hundred rows is how a morning disappears. Map them down to a handful of clean states and the column becomes a dashboard: pre-ship, shipped, delivered, problem.
The point of a status column is not to mirror AliExpress. It is to tell you, in one word, what to do next. Anything that does not change your next action is noise.
"Shipped" is the calm bucket. It means the parcel has left, tracking exists, and unless it stalls there is nothing for you to do. Getting the right strings into that bucket is what lets you stop staring at orders that are perfectly healthy.
The seven that all mean "on the way"
Across the AliExpress order_status and logistics_status fields, these seven situations all resolve to the same thing for your buyer. Treat them as one:
- Seller has dispatched (
SELLER_SEND_GOODS/ "shipped" from the order side) — the supplier marked it sent and a tracking ID exists. - Accepted by carrier — the first courier scan, the parcel is physically in the network.
- In transit / departed origin — moving through the origin-country hub or leaving it.
- Export / customs cleared outbound — through origin customs and on its way internationally.
- Arrived in destination country — landed, awaiting import processing.
- Import customs cleared — through the destination border and handed to the local carrier.
- Out for delivery / with local courier — the final leg, in the hands of Evri, Yodel, or Royal Mail.
Every one of these is "it is moving, leave it alone". To you and your buyer they are a single state. Splitting them into seven columns helps nobody; collapsing them into one Shipped status helps everyone.
Where the carrier name complicates step seven
That last stage — handed to the local courier — is where a subtle trap lives. The status maps cleanly to Shipped, but the carrier reported alongside it often does not match reality. AliExpress's carrier_name field is unreliable; it will happily tell you "AliExpress Standard" when the parcel is actually on an Evri van.
That matters because your buyer messages will reference the real courier, and your delivery-proof link has to point at the right tracking page. The fix is to resolve the courier from the tracking-ID prefix rather than trusting carrier_name — the prefix is the ground truth.
- A status that says "with local carrier" tells you the leg.
- The tracking-ID prefix tells you which carrier — and that is what you act on.
The statuses that must NOT fall into Shipped
Mapping aggressively is good, but two categories must stay out of the Shipped bucket or your column becomes dangerous:
- Pre-ship states like
WAIT_SELLER_SEND_GOODS— no tracking exists yet. These belong in Awaiting Dispatch, and if they linger they are a problem, not a shipment. - Terminal states — Delivered, Expired, and Cancelled-and-refunded. These are done. Folding them into Shipped means re-checking settled orders forever and missing the ones that actually moved.
The line is simple: Shipped means tracking exists and the parcel is still travelling. Before that, it is pre-ship. After it stops travelling, it is delivered or dead.
Why you should not maintain this map by hand
You could write all of this into spreadsheet formulas. People do, and the map works — until AliExpress adds a new string, or returns it in a different language, or a 19-digit order ID responds with fields your formula did not expect. Then a status silently lands in the wrong bucket and you do not notice until a buyer does.
This mapping is built into Fetch Order Tracking. It reads the raw order_status and logistics_status on every fetch, collapses the dozen-string sprawl into clean, actionable states, resolves the real courier from the tracking-ID prefix, and keeps terminal orders out of the working set so a run finishes in one pass. You get a status column you can scan, not decode.
For the states on either side of Shipped, read our guide on why Awaiting Dispatch needs to mean different things and our deep dive on catching delivered-then-refunded orders. When you want the mapping handled for you, connect your store to Fetch Order Tracking and let the column stay clean on its own.
Frequently asked questions
Which AliExpress statuses should map to Shipped?
Seven situations all mean the parcel is travelling and should collapse to one Shipped state: seller has dispatched, accepted by carrier, in transit or departed origin, export customs cleared outbound, arrived in destination country, import customs cleared, and out for delivery with the local courier. To your buyer they are a single state — it is on the way — so splitting them across columns helps nobody.
Which statuses should never be mapped to Shipped?
Two categories must stay out. Pre-ship states like WAIT_SELLER_SEND_GOODS have no tracking yet and belong in Awaiting Dispatch, not Shipped. Terminal states — Delivered, Expired, and Cancelled-and-refunded — are done, and folding them into Shipped means re-checking settled orders forever while missing the ones that actually moved. The line is simple: Shipped means tracking exists and the parcel is still travelling.
Why does my Shipped status show the wrong carrier?
Because AliExpress's carrier_name field is unreliable and will happily report AliExpress Standard when the parcel is actually on an Evri van. The status maps cleanly to Shipped, but the courier does not. Resolve the real carrier from the tracking-ID prefix instead, which is the ground truth; Fetch Order Tracking does this on every fetch so your delivery-proof link points at the right tracking page.
Related guides
- Why Awaiting Dispatch needs to mean different things in your sheet
- Why you should never trust AliExpress's carrier_name field on its own
- Reading the raw AliExpress order_status and logistics_status fields