What syncs
| Feature | Support |
|---|---|
| Parcel tracking | Your own AfterShip account, connected in Settings → Couriers |
| Status updates | Checked regularly (more often while out for delivery) |
| Courier booking | Not yet — planned for 2027 |
Planned capabilities. Courier tracking opens with MyEasyMarket’s public launch; this table comes from the same source as our product code.
Tracking only. GDEX parcels are read through your own AfterShip account (decisions D22, D37); booking couriers from MyEasyMarket is planned for 2027.
Before you start
- Courier tracking is built and opens with MyEasyMarket's public launch.
- The GDEX tracking number from your consignment note or the GDEX app.
- Your own AfterShip account, connected once in Settings → Couriers (it covers GDEX and the other couriers without a direct link). The one-time setup is the first part of the steps below. No GDEX account is needed.
- An order in MyEasyMarket that is paid (or cash on delivery) and ready to ship.
- A staff, warehouse, admin or owner role to add tracking numbers. Only the owner or an admin changes Settings → Couriers.
Step by step
One-time setup (owner or admin, covers every courier tracked through AfterShip):
- Sign up at aftership.com and choose an AfterShip plan that includes API access. AfterShip bills you directly.
- In AfterShip, open Settings → API keys and create a key.
- In MyEasyMarket, open Settings → Couriers → AfterShip, paste the key and select Connect. We check the key straight away, and parcels that were waiting start tracking within a few minutes.
- Optional, for faster updates: copy the webhook URL shown after connecting into AfterShip's Settings → Webhooks, then paste AfterShip's webhook secret into Settings → Couriers → Update credentials.
For each parcel:
- Open the order in MyEasyCommerce → Orders.
- In the Tracking card, select Add tracking number.
- Paste the tracking number. MyEasyMarket suggests GDEX from the number's format; check the courier, tick The courier is correct and select Save tracking.
- The first status usually appears straight away; after that the parcel is checked regularly.
- Many orders at once: Orders → Import tracking, upload a CSV with Order number, Tracking number and Courier, check the preview and save.
After you connect
- Order detail shows a timeline: info received, picked up, in transit, out for delivery, delivered, or failed attempt, exception, returning and returned. The courier's own wording is kept.
- When the parcel is delivered, a manual, CSV or website order moves to Delivered on its own. Marketplace orders keep following their marketplace.
- In-app alerts for exceptions, failed delivery attempts and parcels with no update for longer than your threshold (Settings → Couriers, 5 days by default).
- Orders list: a tracking column and filters such as stuck in transit, failed attempt and returning.
- Optional buyer page: turn it on in Settings → Couriers, then copy the buyer link from the order. It shows the status and checkpoints with only a masked name and the city.
- Explain this delay: an AI draft of a message to the buyer, based on the timeline. It is never sent for you; copy it into your chat.
Limits and good to know
- How the number is recognised: MY followed by digits. Detection is a hint, so you always confirm the courier. We found no public GDEX tracking API for third-party tools. If GDEX opens a partner API to us, we will add a direct connection and update this guide.
- Status times are shown in Malaysia time.
- Checks are frequent while a parcel is out for delivery, rare once it is delivered, and stop 14 days after delivery or return.
Troubleshooting
| What you see | Why it happens | How to fix it |
|---|---|---|
| Status stays Waiting for first scannot_found | The courier has not published the number yet; this often takes a few hours after pickup. | Wait for the next check or select Refresh later. If it still shows nothing after a day, check the number on the consignment note. |
| The courier refused the tracking numberinvalid_tracking_no | A typo, an extra character, or a reference that is not a tracking number. | Select Change number, paste the number exactly as printed and save. |
| AfterShip refused the keyauth_failed | The AfterShip API key was deleted or regenerated, or your AfterShip plan no longer includes API access. | Create a new key in AfterShip → Settings → API keys and paste it in Settings → Couriers → AfterShip → Update credentials. |
| Tracking not available for this courierunsupported_courier | Your workspace has no AfterShip account connected, or the courier is not activated in your AfterShip account. | Ask the owner or an admin to connect AfterShip in Settings → Couriers, and check the courier is active in AfterShip → Couriers. |
| Updates are delayedrate_limited | The courier or AfterShip asked us to slow down. | Nothing to do: MyEasyMarket retries on its own. |
Reconnect, disconnect and your data
- There is no courier connection to renew. If AfterShip refuses your key (it was revoked or your AfterShip plan ended), the owner or an admin updates it in Settings → Couriers.
- Tracking stops on its own 14 days after the parcel is delivered or returned.
- Your data: tracking numbers and checkpoints stay with the order in your workspace.
Frequently asked questions
Do I need a GDEX account?
No. You connect your own AfterShip account instead (an AfterShip plan that includes API access, billed by AfterShip). One AfterShip connection covers GDEX and the other couriers without a direct link.
Can buyers track the parcel themselves?
Yes. Turn on the buyer tracking page in Settings → Couriers and share the link from the order. It shows only a masked name and the city.
Does tracking use AI credits?
No. Only Explain this delay uses a few credits, and only when you ask for it.
Ready when your channels are
Start a 30-day free trial, set up your catalogue now and connect each channel the day it opens.
Was this guide helpful?