SMSA has an official Shopify app and Naqel has its own Shopify plugin. Aramex, SPL and J&T have no Saudi Shopify app, so they come in through an aggregator such as OTO or a custom API integration. Whichever you pick, since 1 January 2026 every parcel needs the customer's National Address short code.
Choosing a courier in Saudi Arabia takes ten minutes. Getting it to talk to Shopify takes longer. I built the Naqel integration for Balqees' Saudi store, so this is the map I'd hand anyone starting one.
Which Saudi couriers have a Shopify app?
| Courier | How it reaches Shopify |
|---|---|
| SMSA Express | Official app, free |
| Naqel Express | Its own Shopify plugin |
| Aramex | App for AU/NZ only |
| SPL (Saudi Post) | API only |
| J&T Express | Aggregator or API |
- SMSA prints labels and tracks domestic and international orders, with an SMSA account or prepaid.
- Naqel is set up through its portal, and the plugin creates and tracks the waybill through Naqel's API (SOAP, so bring your XML).
- Aramex has a Shopify app, just not for Saudi Arabia: Saudi stores go through an aggregator or Aramex's API.
- SPL delivers to the door, a locker or a post office, and does cash on delivery, but you connect it yourself.
- J&T's Saudi platform partner is Salla, not Shopify.
One trap: some Shopify apps list Saudi couriers but only read tracking from the courier's website. They show a status. They don't book anything. If the app can't create a waybill, someone on your team is still pasting orders into a portal.
Do you need an aggregator like OTO?
An aggregator is one app between your store and several couriers. OTO's Shopify app, for example, covers SPL, SMSA, Aramex, DHL, UPS and J&T, prints labels, handles returns, and pays out cash-on-delivery money up to twice a week. OTO itself isn't a courier; it's software on top of them.
Use one when:
- you want more than one courier,
- your courier has no Shopify app,
- you'd rather compare rates per order than sign with one company.
Go direct when:
- you've negotiated your own rates with one courier,
- you need custom logic. The Balqees build books the collection when an order is paid and syncs tracking every three hours, on our schedule, not an app's,
- you'd rather your COD cash didn't pass through one more company on its way to you.
An aggregator is a universal remote. Brilliant, until you need the one button it doesn't have.
What is the National Address short code, and where does it go?
It's four letters and four numbers, like RRRD2929, that pin a building. Customers get theirs from SPL, Absher, Sehhaty or Tawakkalna. The Transport General Authority made it mandatory: since 1 January 2026, delivery companies have to refuse parcels without one.
Shopify's checkout has no field for it. Two ways to collect it:
- Any plan. In Settings → Checkout → Form options, set Address line 2 to required, then use Manage checkout language to relabel it "National Address (e.g. RRRD2929)". It's a workaround: Shopify means that field for apartment numbers, and the setting applies to every country you ship to, so requiring it will block customers abroad.
- Shopify Plus. A checkout extension can add a proper field, show it only for Saudi addresses and check the format before the customer pays.
Then check that the integration actually sends the code to the courier. A code collected at checkout and dropped before the waybill is just a returned parcel with extra steps.
How should cash on delivery work?
A COD order is unpaid when it ships, so the integration has to book it anyway, put the amount to collect on the waybill, and mark the order paid when the courier pays the cash out. If your integration only fires on "order paid", COD orders wait in the queue forever. I went through the details in Push courier tracking back to Shopify.
What should you check before you choose?
- Coverage. Does it reach your customers' cities, not just the big three?
- Cash on delivery. How is the cash paid out, how often, and what does it cost?
- Returns. Who books the return, and does Shopify find out?
- National Address. Does the short code make it onto the waybill?
- Tracking. Does it create a fulfillment with a tracking URL on the Shopify order?
- Failures. When a booking fails, who hears about it?
If the honest answer to any of those is "someone checks the portal", that's the gap.
Need a courier connected to your store?
Copying orders from Shopify into a courier portal is a job for software, not a person. I build these integrations as custom Shopify apps: see Shopify app development, the Naqel build for Balqees, or get in touch.
