One Shopify store, six GCC countries: different COD rules per market
You can sell to the UAE, Saudi Arabia, Kuwait, Qatar, Bahrain and Oman from one Shopify store by setting them up as markets. Your COD rules then have to deal with two differences between the countries. First, currencies: a limit such as "hide COD above a cart total" is set once, in your shop's currency, so it has to make sense in every market. Second, addresses: only the UAE and Kuwait have a region field at checkout. Everywhere except the UAE, target a place by the city or area name the shopper types.
How does one store sell to six GCC countries?
Shopify Markets lets you create markets that target specific countries or regions, and group several countries together. For each market you decide how prices are shown:
- Converted prices. By default, Shopify converts prices using the current market exchange rate. You can set exchange rates manually instead, and round prices per market.
- Local currencies need the right payment provider. Shopify says selling in local currencies is only supported with Shopify Payments or Adyen. Orders placed through other third-party payment providers are processed in your store's default currency.
- COD can follow the market's currency. Since July 2025, Shopify shows and records manual payment methods, including cash on delivery, in the currency configured in Markets rather than only in your shop's currency.
So depending on your setup, a shopper in Kuwait may place a COD order in Kuwaiti dinars or in your shop's currency. Your COD rules need to give the same answer either way.
Which currency do COD amount rules use?
A payment customization Function, the Shopify feature apps use to hide or rename payment methods, receives the cart in the shopper's currency together with the exchange rate between that currency and your shop's currency. An app can use that rate to compare every cart against one limit. Khaleeji COD works this way: amounts are set in your shop's currency, and carts in other currencies are converted before the comparison.
What this means in practice:
- One limit covers all six countries. You can't set 1,500 for the UAE and a different amount for Kuwait with an amount rule. Choose a limit that makes sense across your markets.
- Type the amount in your shop's currency. 1,500 is a very different sum in a shop that runs in Kuwaiti dinars than in one that runs in dirhams. Convert the limit you have in mind before you enter it.
- Expect small movement. With Shopify's automatic rates, the local-currency value of your limit can shift a little as exchange rates change.
What does Shopify's checkout ask for in each country?
Shopify publishes the address form for every country in its open-source Worldwide data. Every GCC country's form has address lines, a city and a phone number. The rest differs:
| Country | Currency | Region field at checkout | Postcode field |
|---|---|---|---|
| UAE | AED | Yes: 7 emirates | None |
| Saudi Arabia | SAR | No | Optional |
| Kuwait | KWD | Yes: 6 governorates | Optional |
| Qatar | QAR | No | None |
| Bahrain | BHD | No | Optional |
| Oman | OMR | No | Optional |
The region field is the one that matters for COD rules. Where it exists, every order records it in the same spelling, because the shopper picks it from a list. Where it doesn't, you only have the free-text city field.
Should you use region codes or city names?
UAE: emirate codes
The UAE is the straightforward case. Each emirate has a fixed code, written as country plus region:
- AE-AZ Abu Dhabi
- AE-AJ Ajman
- AE-DU Dubai
- AE-FU Fujairah
- AE-RK Ras al-Khaimah
- AE-SH Sharjah
- AE-UQ Umm al-Quwain
Use a code to treat a whole emirate differently. Use a city name when you only want part of an emirate, for example "Al Ain" and «العين».
Kuwait: governorates
Shopify's data lists six Kuwaiti governorates: Al Ahmadi, Al Asimah, Al Farwaniyah, Al Jahra, Hawalli and Mubarak Al-Kabeer. Shoppers pick one at checkout. But Shopify's codes for them already include the country (for example KW-KU for Al Asimah), a different format from the UAE's AE-AZ. A tool that builds codes the UAE way may not match a Kuwaiti governorate. For Kuwait, use area names in the city field instead, and test any governorate rule with a real checkout before you rely on it.
Saudi Arabia, Qatar, Bahrain and Oman: city names
These four forms have no region field, so city names are the only way to target a place. The same applies to Kuwaiti areas. Keep in mind:
- Spellings vary. Shoppers type the city in English or Arabic, with and without "Al". Shopify's own sample Saudi address writes the city as «الرياض», so expect Arabic names alongside English ones.
- Collect spellings from real orders. Export each country's orders and list the city values you actually receive before you write a rule.
- A city name isn't tied to a country. A city rule matches the name typed, whichever country the address is in. If you ship to several countries, check that a name you block isn't also used somewhere you want to keep COD.
For the details of both rule types, see how to limit COD by emirate, region or city.
What's a sensible starting setup for each country?
| Country | Start with |
|---|---|
| All six | Tagged repeat refusers, tagged no-COD products, one cart-total limit and one first-order limit in your shop's currency |
| UAE | Add emirate codes or city names only where your refusals or delivery costs are higher |
| Saudi Arabia | Add city names, in English and Arabic, only where refusals cluster |
| Kuwait | Add area names, in English and Arabic, only where refusals cluster |
| Qatar | Amount and tag rules first; check whether your orders' city values really separate areas before adding a city list |
| Bahrain | Amount and tag rules first; city names only if refusals cluster |
| Oman | Amount and tag rules; city names for places your courier finds costly to reach |
Start small. Every rule you add hides COD for more shoppers, so add region and city rules only when your own orders show a pattern. Khaleeji COD hides COD when any switched-on rule matches, so one rule that is too broad affects every country it touches.
How do you test the rules for each country?
- Create a draft order for a test customer with a shipping address in the country you want to test, and open the checkout link. See how to test checkout payment rules with draft orders.
- At the payment step, check whether COD shows or hides as you expect.
- If you sell in local currencies, test a cart just under and just over your limit in that currency.
- Repeat for each country where you set a region or city rule.
For what changes in each market, read the country guides: UAE, Saudi Arabia, Kuwait, Qatar, Bahrain and Oman.
Sources
- Shopify Help Center: Shopify Markets
- Shopify Help Center: Selling in local currencies
- Shopify Help Center: Guidelines and restrictions for selling in local currencies
- Shopify Changelog: Manual payment methods now support multi-currency checkouts
- Shopify.dev: Payment customization Function API
- Shopify Worldwide: address data per country
Checked on the date above. Shopify and courier settings change, so check the source if something looks different.