Shopify guideGuide·11 min read
How to Set Up Shipping Rates and Zones in Shopify
Shopify gives every new store shipping rates it didn't choose. This guide shows how to replace them with zones and rates that fit your products, step by step.

Key takeaways
- Shopify creates shipping rates for you when you open a store, and they often include a free shipping rate. Review them in
Settings > Shipping and deliverybefore your first order. - Flat, order amount and weight rates work on every plan, and so do Shopify's built-in carrier-calculated rates. Live rates from your own carrier account need Advanced or Plus, or Grow with yearly billing or a monthly add-on.
- A gap between your price or weight tiers means no rate and a shipping error at checkout. Leave the Maximum field empty on your highest tier.
- Shopify is moving shipping from shipping profiles to shipping options by market. Check which system your store uses before you follow any setup guide, this one included.
- Who it is for
- New and growing Shopify stores
- Time needed
- About 30 minutes to set up
- What you need
- Product weights and your box sizes
Every new Shopify store opens with shipping rates that nobody chose. Shopify sets up domestic and international rates automatically, based on where the store is located, and its own help center warns that these defaults often include a free shipping rate. Shipping settings are one of the first things I open when I review a store, because a wrong rate either eats margin on every order or puts shoppers off at the last step.
This guide covers the whole setup: the rate types, how to plan zones, tiers that don't leave gaps, carrier-calculated rates, what happens when a cart has several items, and the checks I run before launch. Menu names and plan rules come from Shopify's help center and pricing page as I checked them on 7 November 2026.
First, check which shipping system you have
Shopify is partway through a change. Most stores still set up shipping in shipping profiles, with zones and rates inside each profile. Some stores have been moved to shipping options by market, where shipping is managed from Markets instead. The new system is in early access, rolls out gradually, and Shopify migrates your existing rates for you when your store is upgraded.
Go to Settings > Shipping and delivery. If you see a Shipping profiles section with zones and rates, you're on the current system and the steps below apply as written. If shipping is organized by market in a Shipping options section, your store has been upgraded. The logic is the same, with two differences worth knowing:
- Rates in one option no longer stack. When several rates in the same shipping option match a cart, the customer pays only the highest one, instead of the rates being added together.
- Staff need the Markets permission. It isn't granted automatically after the upgrade, so whoever manages shipping may suddenly lose access.
The rate types Shopify gives you
Every rate you create belongs to a shipping option, which is the line the customer sees at checkout, such as "Standard" or "Express". The rate type decides how that line is priced.
| Rate type | How it's priced | Good for |
|---|---|---|
| Flat | One price you set, charged once per order | Products of a similar size and weight |
| Order amount | Price tiers based on cart value | Cheaper or free shipping on bigger orders |
| Weight | Price tiers based on total weight | Heavy items, or a wide spread of weights |
| Carrier or app calculated | Live price from a carrier or shipping app | Big differences in size, weight and destination |
Any of these can also be free. Each rate has an Offer free shipping setting with a minimum order amount, so you can charge a flat rate below a threshold and nothing above it without creating a second rate.
The trade-off is visibility. A flat or tiered rate can be published on your shipping page and in product page messages, so shoppers know the cost before checkout. A calculated rate only appears once the shopper has typed an address, and Shopify's own strategy guide notes that this can raise abandoned checkouts. For most small catalogs, I start with flat or order amount rates and only move to calculated rates when parcel sizes vary too much to average.
Plan your zones before you click anything
A shipping zone is a group of countries or regions that share the same rates. Ten minutes with a spreadsheet saves hours of untangling later. These are the rules that shape a good zone plan:
- Every country needs an active market. Customers in an inactive market can't place orders, even if a shipping zone covers their country. Add the country to a market first, then build its zone.
- A country can sit in only one zone within the same group of locations in a profile. Remove it from one zone before you add it to another.
- Keep domestic and international zones apart. Transit time, which shows delivery estimates at checkout, only works when each zone holds one country and its regions.
- Give a country its own zone to charge an exact local price. With Shopify Payments, rates convert into local currency automatically. If you want, say, exactly £5 in the UK rather than a converted figure, the UK needs its own zone with its own rate.
- Use a custom profile only for products that genuinely cost more to ship. You can create up to 99 custom profiles, and a product or variant can be in only one profile at a time.
Step by step: add a zone and a flat rate
- Open your profile. Go to
Settings > Shipping and deliveryand, in the Shipping profiles section, click the profile you want to edit. For most stores that's the General profile, which holds every product not placed in a custom profile. - Add a zone. In the Shipping zones section, click
Add zone. Enter a Zone name (customers don't see it, so name it for yourself), select the countries or regions in the Regions section and clickDone. - Add a shipping option. Next to the zone, click
Add shipping option. The Name field is what customers read at checkout, so use plain words such as "Standard" or "Express". - Add delivery details if they help. Click
Add delivery detailsfor a short line such as "Tracked shipping". - Set the price. From the Rate type menu, choose
Flatand enter the Price. Leave it empty or enter 0 to make the rate free. - Choose a transit time. Pick a suggested option from the Transit time menu so checkout can show a delivery estimate. Transit time works for locations in the US, Canada, the UK, France, Germany, Italy, Spain and Australia.
- Add a free shipping threshold. Select
Offer free shippingand enter the minimum order amount. - Save. Click
Done, thenSave.
To give certain products their own rates, click Add custom profile in the same settings page, enter a Profile name, add the products and build zones and rates the same way. Typical candidates are oversized items, fragile glass or anything you ship by a different service.
Order amount and weight tiers without gaps
Tiered rates follow the same steps, except you choose Order amount or Weight as the Rate type and fill in a Minimum, Maximum and Price for each range, adding ranges with the plus icon.
The rule that catches people out: if an order falls outside your tiers, no rate applies and the customer sees a shipping error at checkout. A top tier that ends at $200 or 20 lb blocks every bigger order. Leave the Maximum field empty on the highest tier so it covers everything above it.
Weight tiers have a second trap. Shopify adds your store default package weight to the products, so an order near a tier boundary can tip into the next tier.
How the box weight moves an order into the next tier
- Products only4.7 lbLooks like it falls in a 0 to 4.99 lb tier priced at $8.
- With a 0.4 lb default box5.1 lbLands in a 5 to 9.99 lb tier priced at $14.
When a cart holds several products, Shopify works out weight-based rates from the individual product weights with the default package weight added to each product, so a big multi-item order can come out heavier than you expect. Set a weight on every variant too. Without one, weight-based rates don't calculate correctly.
Carrier-calculated rates: built-in or your own account
Calculated rates come in two forms, and the difference decides which plan you need.
Built-in carrier rates use Shopify's own carrier integrations and are available on every plan. Which carriers you get depends on where your fulfillment location is:
| Ship-from country | Built-in calculated rates |
|---|---|
| United States | USPS, DHL and UPS |
| Canada | Canada Post and Purolator |
| United Kingdom | DPD UK, InPost UK and Royal Mail |
| Germany | DHL Paket |
| Italy | BRT |
| Spain | Seur |
Your own carrier account, such as UPS, FedEx, USPS, Canada Post or Australia Post with your negotiated rates, needs third-party carrier-calculated shipping. It's included on Advanced and Plus. On Grow, it's included with yearly billing or available for a monthly fee through Shopify Support. Shopify says it isn't available on other plans, including Basic.
To add a calculated rate, click Add shipping option in a zone, choose Carrier or app calculated as the Rate type, click Choose carrier and apps, pick the carrier and tick the services you want to show. You can also add a Handling fee as a percentage, a fixed amount or both. Shopify applies the percentage first: an $8.00 carrier rate with 10% and $1.00 added costs the customer $9.80. A negative value, such as -10%, discounts the rate instead.
Two more things to know. Some services can't be shown at checkout at all, including UPS SurePost, UPS Simple Rate and FedEx One Rate. And when every calculated rate for a shipment fails, Shopify shows backup rates so the customer can still pay. If you'd rather control that price, add a flat rate for the same destinations, keeping in mind that flat rates show whenever they're eligible, even when calculated rates are working.
How Shopify charges for multiple items
This is where most "why is my shipping so high?" questions come from. On the current shipping profiles system:
- Flat rates apply once per order. Ten T-shirts pay the same flat rate as one. To charge per item, you need separate rates or an app.
- Rates from different profiles are added together. If a cart has one product from your General profile at $6 and one from a Fragile profile at $6, the customer pays $12.
- Locations in the same group share one flat rate. Items shipping from two locations in the same location group charge a single flat rate.
On shipping options by market, rates within one option stop stacking, and the customer pays the highest matching rate. Weight-based, carrier-calculated and app rates are still worked out per shipment and added up when an order splits across locations. Either way, the fewer custom profiles you run, the fewer surprises at checkout.
Check your costs with the rates calculator
Before you fix a flat rate, find out what parcels actually cost you. Shopify has a shipping rates calculator for its supported carriers: go to Settings > Shipping and delivery, click Shipping labels in the Shipping section, then Calculate rates. Choose where you ship from, where to, the package and the total weight, then click Calculate discounted rates. Label discounts depend on your location, plan and carrier.
Set up your packages while you're there, under Packages in the same settings page. Measure the outside of your boxes, because outside dimensions are what carriers charge on. Your store default package is used for weight-based and carrier-calculated rates. A package assigned to a variant only overrides it on single-item orders, though adding a packed product size to your products lets Shopify pick the smallest saved box that fits a multi-item order.
If you're weighing Shippo against Shopify's own labels, remember that checkout rates and label costs are calculated separately. When an app sets your checkout rates and you buy labels somewhere else, the two prices are unrelated. Shopify's advice is to use one source for both. Shippo's free Starter plan covered up to 30 labels a month when I checked, and Shopify bills its labels to your Shopify account, so compare the label prices for your real parcels rather than headline claims.
Common mistakes
- Leaving the default rates in place. They were generated for your location, not your products, and often include free shipping.
- A capped top tier. Large orders get a shipping error, which is the worst possible moment to lose a sale.
- Missing product weights. Weight-based and calculated rates go wrong, and label prices can trigger carrier adjustments later.
- Too many custom profiles. Rates from each profile add up on the current system, so mixed carts get expensive.
- Vague option names. "Shipping 2" tells a shopper nothing. Name options by speed or service.
- Adding a country to a zone but not to a market. The zone exists, yet customers in that country still can't order.
Checklist before you go live
- Confirm which shipping system your store uses in
Settings > Shipping and delivery. - Delete or edit every default rate you didn't choose.
- Check every product and variant has a weight.
- Add your real boxes under Packages and set the right default.
- Make sure each country you sell to is in an active market and exactly one zone.
- Leave the Maximum empty on your highest price and weight tiers.
- Set transit times on flat rates so checkout shows delivery estimates.
- Place test checkouts with a small order, a large order, a heavy order and a mixed cart, for each zone.
- Publish your rates on a shipping page and link it from the footer and product pages.
Next steps
Start with the system check and the default rates, because those two fix most problems. Then run the test checkouts above. If you sell to customers nearby, add local delivery as a cheaper option, and if you're in the UK, my guide to Shopify shipping for UK stores covers carriers and labels in more detail.
Shipping cost is one of the most common reasons shoppers leave at checkout, so it sits high on my CRO audit checklist. If you'd like a second pair of eyes on your setup, send me your store for a free review.
Free tools
Check your own store
Free, no sign-up. Each one runs a part of this guide for you.
Frequently asked questions
How do I set up shipping rates in Shopify?
Go to Settings > Shipping and delivery, open a shipping profile, add a zone with the countries you ship to, then click Add shipping option and choose a rate type and price. Click Done and Save. If your store has been upgraded to shipping options by market, you manage the same rates from Markets.
Does Shopify calculate shipping automatically?
It can. Shopify's built-in carrier-calculated rates are available on every plan for supported carriers, such as USPS, UPS and DHL from US locations. Showing live rates from your own carrier account needs Advanced or Plus, or Grow with yearly billing or a monthly add-on.
How do I charge shipping for multiple items in Shopify?
Flat rates charge once per order, so they don't change with quantity. Use weight-based or carrier-calculated rates if bigger orders cost more to ship, or an app if you want a per-item charge. Products in different shipping profiles have their rates added together on the shipping profiles system.
Why does checkout say no shipping rates are available?
Usually the address is in a country with no zone, the country isn't in an active market, or the order falls outside your price or weight tiers. Check each one and leave the Maximum field empty on your highest tier.
Which Shopify plan do I need for carrier-calculated shipping?
Built-in carrier rates work on every plan. Rates from your own carrier accounts, called third-party carrier-calculated shipping, are included on Advanced and Plus, and on Grow with yearly billing or for a monthly fee. They aren't available on Basic.
Is Shippo cheaper than Shopify Shipping?
It depends on your carriers and parcels. Shippo has a free plan for up to 30 labels a month and paid plans above that, while Shopify bills its discounted labels to your Shopify account. Compare label prices for your real parcel sizes, and use one source for checkout rates and labels so they match.
Sources
- Setting up shipping zones and rates, Shopify Help Center
- Third-party shipping carrier accounts and availability, Shopify Help Center
- Upgrading from shipping profiles to shipping options by market, Shopify Help Center
- Setting up packages, Shopify Help Center
- Calculating shipping rates for your shipping labels, Shopify Help Center
- Shippo pricing, Shippo
Related services and work

Written by Ashraf Siddik
I'm a Shopify developer and CRO specialist. I have built and improved Shopify stores since 2018, completed more than 1,000 projects, and hold a 4.96 average rating across 719 client reviews.
More guides
-
CRO8 min readUpdated
Why Shopify Stores Lose Sales on Mobile: A Practical CRO Checklist
Mobile visitors decide fast, with one thumb and plenty of distractions. Here is how to find the leaks on a Shopify store and fix them in the right order.
Read the guide -
CRO6 min readUpdated
Shopify CRO Audit Checklist for DTC Brands
The checklist I use to audit DTC Shopify stores, from checking that the data can be trusted to deciding which fixes to ship first.
Read the guide -
Apps6 min readUpdated
When to Build a Custom Shopify App Instead of Adding Another Subscription
Another subscription is the quickest fix, until you are paying for five apps that still don't match how your business works. Here is how to decide.
Read the guide -
Themes6 min readUpdated
How to Find Out What Theme a Shopify Store Uses
Every Shopify store names its theme in the page code. Here is where to look, how to read what you find, and what it means for your own theme choice.
Read the guide -
Apps5 min readUpdated
How to See What Apps a Shopify Store Uses
Apps leave traces in a store's page code: scripts from their own servers, app embed folders and pixel settings. Here is how to read them, and what to do with the list.
Read the guide -
Branding7 min readUpdated
How to Name a Shopify Store (and Check the Name Is Free)
A store name has to be easy to say, free as a domain and a handle, and clear of other brands. Here is the process I use with clients, and what Shopify lets you change later.
Read the guide