Multi-channel
Order ID formats across eBay, Amazon, TikTok and AliExpress
If you sell on more than one marketplace, order ids stop being an implementation detail and become the thing your whole workflow hangs on. They are your dedupe key, your join between systems, and the reference you quote in every support conversation.
They are also all different, in ways that break naive assumptions.
The four shapes
- eBay - three numeric groups separated by hyphens. Always the same shape, and safe to treat as a string
- Amazon - three numeric groups separated by hyphens, but a different grouping to eBay. Visually similar, not interchangeable
- TikTok Shop - a long numeric string, plus a separate line id per item
- AliExpress - a long numeric string, and the length has changed over time
Never store them as numbers
This is the mistake that costs real money. A long numeric order id put into a spreadsheet column formatted as a number loses precision at the end, and you end up with an id that looks almost right and matches nothing.
AliExpress ids are long enough for this to bite immediately. The symptom is an order that silently never matches, and because the id looks plausible nobody suspects the id.
Format those columns as text before the first import, not after. Once the precision is gone it is gone.
The AliExpress length change
AliExpress order numbers have not always been the same length. A sheet that accumulated orders over several years will contain more than one length, and any validation that assumes a fixed number of digits will reject the older ones.
Validate on "long string of digits" rather than on an exact length, and you avoid an entire class of false rejections.
One order, several ids
TikTok gives you an order id and a line id per item. Amazon gives you an order id and item ids. Treating the order id as the unique key works until an order ships in two parcels, at which point you need somewhere to put the second tracking number.
The general rule: one row per fulfilment unit, with the order id repeated. It looks redundant on single-item orders and it is the only layout that survives multi-item ones.
Normalise before comparing
Ids arrive with invisible baggage - leading apostrophes from spreadsheet text formatting, trailing spaces from copy-paste, occasionally a zero-width character from a web page.
Strip everything that is not a digit or a separator before comparing, on both sides. Comparing raw strings works until the day someone pastes from a browser.
A column that saves you later
Keep the marketplace name alongside the id. It seems obviously redundant when you only sell in one place and becomes essential the moment you do not - because eBay and Amazon ids look similar enough that a human, and a regular expression, can confuse them.