# Shipping zones and rates for the GCC on Shopify

> Go to Settings > Shipping and delivery, create a zone for each group of GCC countries that share a price, and add flat, order-amount or weight rates. Each country must also be in an active market. For COD orders, keep rates simple so the shopper knows the total before the courier comes.

URL: https://khaleejicod.com/guides/gcc-shipping-zones-shopify/  
Updated: 2026-10-26  
Publisher: Trifid Media LLC

You set delivery prices in Shopify under **Settings > Shipping and delivery**. Inside a shipping
profile, you create a zone for each group of countries that share the same prices, then add rates to it:
a flat price, prices by order amount, prices by weight, or rates calculated by a carrier or app.
Each country also has to be in an active market, or shoppers there can't order. If you take cash
on delivery, keep the rates simple and visible, because the delivery price is part of the amount
the courier collects at the door.

> **Note:** Shopify is gradually moving stores to *shipping options by market*, an early-access
> feature that you set up from **Markets**. Until your store is upgraded, you keep using shipping
> profiles as described below. The ideas in this guide apply to both.

## What are shipping profiles, zones and rates?

- **Shipping profile:** Shopify calls it "a set of shipping rules for specific products and
  locations". Every store has a general profile that covers all products. You can add up to 99
  custom profiles for products that need different rates, such as heavy or fragile items.
  Products that aren't in a custom profile use the general profile's rates.
- **Shipping zone:** a group of countries or regions that share the same rates. Within a profile,
  a country or region can only be in one zone.
- **Rate:** you add each rate with **Add shipping option**. It has a name the shopper sees at
  checkout and a price.
- **Market:** a country must be in an active market before shoppers there can order, even if it is
  in a zone with rates.

## How should you group the six GCC countries into zones?

Put countries in the same zone when delivery to them costs you the same and takes about as long.
Start from your courier's price list.

> **Example:** these are starting points, not recommendations based on anyone's data.

| Setup | Zones | Fits when |
|---|---|---|
| Home and GCC | Your own country, plus one zone for the other five | Your courier charges one price for all GCC destinations |
| One zone per country | Six zones | Prices or delivery times differ by country |
| Split at home | The UAE or Kuwait split into regions, plus GCC zones | Delivery inside your country costs more in some areas |

### Can a zone be smaller than a country?

Shopify's help describes a zone as "a group of countries or regions", and its developer documentation
describes a region as "a region that is used to define a shipping zone". In Shopify's address
data, only two GCC countries have regions: the UAE (seven emirates) and Kuwait (six
governorates). Saudi Arabia, Qatar, Bahrain and Oman have no region field at checkout, so a zone
there covers the whole country.

If you want a different price for some emirates, add the UAE to a zone and check whether the
region picker lets you choose single emirates. Zones are built from countries and regions, not
cities. A separate price for one city needs a carrier or app-calculated rate.

## Which rate type should you use?

When you add a shipping option, Shopify offers four rate types:

| Rate type | How it works | Watch out for |
|---|---|---|
| Flat | One price for every order in the zone | Little; it is simple to explain |
| Order amount | Price ranges by order value, each with a minimum and maximum | If the top range has a maximum and an order goes above it, the shopper gets a shipping error |
| Weight | Price ranges by the combined weight of the items | Every product needs an accurate weight |
| Carrier or app calculated | Live rates from a carrier account or an app | Third-party carrier rates come with Advanced and Plus; Grow stores can add them for a monthly fee or with annual billing |

For COD, the flat rate has one advantage: you can write the exact price on product pages and in
your order confirmation. A shopper who knows the total before ordering has one less reason to
refuse at the door. If you use ranges, leave **Maximum** empty on the highest range so no order
falls outside them.

## How do you add a GCC zone with rates?

1. From your Shopify admin, go to **Settings > Shipping and delivery**.
2. In the **Shipping profiles** section, click the profile you want to change. Most stores only
   need the general profile.
3. In the **Shipping zones** section, click **Add zone** and type a name, for example "Saudi
   Arabia".
4. In the **Regions** section, select the countries and regions for the zone, then click **Done**.
5. Click **Add shipping option**. Enter the name shoppers will see, choose the rate type and enter
   the price.
6. To offer free shipping above an amount, select **Offer free shipping** and enter the minimum
   order amount.
7. Click **Done**, then **Save**.
8. In **Markets**, check that every country in the zone is in an active market.

## How does free shipping affect COD orders?

A free-shipping threshold makes the total easy to understand. "Free delivery over AED 200" is
one number the shopper can remember. But when a free-delivery COD order is refused, you have paid
for delivery and collected no delivery fee, and you may pay for the trip back too. See
[what one refused COD order really costs](/guides/cost-of-a-refused-cod-order/) to work out your
own figure.

> **Example:** you offer free delivery above AED 200, and most of your refused orders are carts
> above AED 1,500. You can keep free delivery for everyone and offer COD only up to AED 1,500,
> with online payment above that. The figures are examples; use your own order data.

Shopify's rate types depend on the order's value, its weight or a carrier's quote. None of them
depends on the payment method, so Shopify's shipping settings can't charge COD orders a
different delivery price. If you are thinking about a COD charge, read
[should you charge a COD fee?](/guides/cod-fee/) first.

## What should your GCC rate names say?

The rate name is what the shopper reads at checkout, so use it to answer their questions:

- **Say how long delivery takes.** Shopify's transit time feature, which shows a delivery time
  under the rate name, is only available for fulfillment locations in the United States, Canada,
  France, Germany, Italy, Spain, Australia and the United Kingdom (checked 26 October 2026). If
  you ship from the GCC, put
  the time in the name, for example "Delivery in 2 to 4 working days".
- **Name the place when prices differ by area.** "Standard delivery, northern emirates" explains
  why the price is not the same as in Dubai.
- **Check the Arabic checkout.** Rate names are text you typed yourself, so look at how they
  appear on your Arabic checkout. See
  [how to offer an Arabic checkout on Shopify](/guides/arabic-checkout-shopify/).

If you sell in local currencies, Shopify shows rates in the shopper's currency automatically.
Setting a flat rate in a local currency is only available to stores using Shopify Payments.

## Do shipping zones decide where COD is offered?

No. Zones and rates set what delivery costs. They don't change which payment methods appear at
checkout. If delivery to some areas costs you more and you want those orders paid online, you
need a payment rule. Khaleeji COD can hide COD for UAE emirates and Kuwaiti governorates by code
(for example `AE-FU` for Fujairah or `KW-JA` for Al Jahra) or for city names in any GCC country.
See
[how to limit COD by emirate, region or city](/guides/limit-cod-by-emirate-or-city/).

## How do you test your GCC rates?

Shoppers only see rates after they enter an address, and Shopify shows the cheapest rate by
default.

1. Start a checkout with an address in each GCC country you ship to, and in each emirate if you
   split the UAE.
2. Check that the right rates appear. A message that no shipping rate is available usually means
   the country or region isn't in any of your zones.
3. If you use order-amount or weight ranges, test a cart at the edge of each range and one above
   the highest range.
4. Go on to the payment step and check that COD shows or hides as you expect. To test as a
   particular customer, use
   [how to test checkout payment rules with draft orders](/guides/test-payment-rules-draft-orders/).

## Sources

- [Shopify Help Center: Setting up shipping zones and rates](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/setting-up-shipping-rates)
- [Shopify Help Center: Shipping profiles](https://help.shopify.com/en/manual/fulfillment/setup/shipping-profiles)
- [Shopify Help Center: Shipping options by market](https://help.shopify.com/en/manual/fulfillment/setup/shipping-options)
- [Shopify Help Center: Third-party carrier-calculated shipping](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/third-party-carrier-calculated-shipping)
- [Shopify Help Center: Transit time for shipping rates](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/transit-time)
- [Shopify.dev: DeliveryProvince (Admin GraphQL API)](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProvince)
- [Shopify Worldwide: address data per country](https://github.com/Shopify/worldwide/tree/main/data/regions)
