Your Shopify shipping settings decide two things on every order: whether the buyer sees a shipping price they’ll accept, and whether you lose money delivering it. The problems I run into most come from a handful of predictable mistakes, like a missing zone, a product saved without a weight, or two shipping profiles that add up to a strange total. I’ll cover how the settings fit together, which rate types to use, free shipping thresholds that don’t backfire, local delivery and pickup, and the test I run before any store goes live. Plan details are as of October 2026.
How Shopify shipping settings fit together
Everything lives in Settings > Shipping and delivery, in three layers:
- Shipping profiles group products that ship the same way. Every store has a general profile, and you can add custom ones.
- Zones sit inside each profile and group the countries or regions that share rates.
- Rates sit inside each zone. They’re what the customer chooses at checkout.
Two rules connect this to the rest of the store. First, a country only appears at checkout when it’s in an active market and in a zone with at least one rate. Second, when a cart mixes products from different profiles, Shopify combines their rates. Rates with exactly the same name are added together. If the names differ, Shopify adds up the cheapest options and shows the total as “Shipping”. So name your rates identically across profiles, down to the capital letters, or customers will see totals you didn’t plan.
Profiles and zones: keep them simple
Put most products in the general profile. Create a custom profile only for products that really ship differently, such as oversized items, fragile goods or products sent from another location. Each extra profile is another set of rates to keep up to date.
Keep domestic and international destinations in separate zones. Shopify’s delivery estimates don’t work in zones that mix the two, and international rates differ anyway. Be careful with “Rest of world”. It’s convenient, but it puts every remaining country your markets include on one rate, and Shopify can’t collect duties there. A short list of named zones is easier to price and to defend.
Flat, weight-based or calculated rates
Flat rates
A fixed price per zone, such as one standard and one express option. Flat rates are predictable and easy to show before checkout. The downside is that carrier costs change, so you need to recheck them.
Conditional rates by weight or price
Tiers based on cart weight or cart value. Watch two traps. Leave no gaps between tiers, or a cart that falls into a gap gets the wrong rate or none at all. And price-based rates use the cart value after discounts and before taxes, so a discount code can push a cart into a different tier.
Calculated rates
Live carrier prices based on weight, dimensions and destination. In some countries Shopify’s built-in carrier integrations provide them on every plan, including USPS, UPS and DHL in the US, Canada Post and Purolator in Canada, and Royal Mail, DPD and InPost in the UK. To use your own carrier accounts, you need third-party carrier-calculated shipping, which comes with Advanced and Plus and can be added to Grow for a monthly fee or with annual billing. You can add a handling fee, and backup rates appear if the carrier rates fail to load.
Calculated rates are accurate, but buyers only see them after typing an address, and Shopify itself notes that late surprises can cost sales. For most small stores I start with flat rates or simple tiers, and use calculated rates where sizes and weights vary a lot.
Free shipping thresholds that don’t backfire
There are two ways to offer free shipping above an order value:
- A price-based rate. In each zone, add a free rate for orders above your threshold. It’s simple and visible in your shipping settings.
- A free shipping discount. An automatic discount with a minimum purchase amount. It can be limited to certain countries, can exclude shipping rates above a set amount, and follows your discount combination rules.
Either way, the threshold counts what the buyer pays for products after other discounts, without taxes. Show the threshold before checkout, on product pages and in the cart, ideally with how much more the buyer needs to spend. Then protect your margin. If oversized products need a paid rate even on large orders, give them their own profile with a rate of the same name, so their cost is added to the free rate instead of disappearing.
Local delivery and pickup
If you have a shop, warehouse or studio, both are worth setting up in Settings > Shipping and delivery.
- Local delivery covers a list of postal codes or a distance around your location. You set a delivery price, an optional minimum order and extra price rules by order value, plus delivery information that appears in confirmation emails. Every item in the cart must be deliverable from one location.
- Pickup in store is switched on per location. You choose the expected pickup time shown at checkout and write instructions for the Ready for pickup email, which goes out when you mark the order ready.
Weights, packages and labels
Weight-based and calculated rates are only as good as your data. Add a weight to every variant, and make sure physical products are marked as physical, because digital products don’t generate shipping rates at all. Then add your real boxes under Packages, with weight and dimensions, and set the one you use most as the default. Shopify adds the package weight when it works out which weight-based rate applies, and sends package dimensions to carriers for calculated rates. Avoid a carrier’s own packaging as the default, since that limits checkout to that carrier’s rates.
If your fulfillment location is in an eligible country, which at the time of writing includes the US, Canada, Australia, the UK and several EU countries, you can buy Shopify Shipping labels from the order page. Flat rates can show a transit time, and carrier rates include one automatically. Transit time doesn’t include your processing time, so keep product page promises realistic.
Test checkout rates before customers do
I run this test before any store launch and after any shipping change:
- Start a fresh checkout for every test, because old and abandoned checkouts can keep old rates.
- Use an address in every zone, including remote areas.
- Try carts just under and over each weight tier and the free shipping threshold, with and without a discount code.
- Mix products from different profiles in one cart and check the combined rate.
- Test local delivery addresses just inside and just outside your area.
- Place one real order, then check the shipping line on the order and the label cost.
If something looks wrong, Shopify’s shipping rate troubleshooting page covers most causes, from missing weights to mismatched rate names. Custom shipping rules were part of the Shopify development work I did for a UK agency’s clients, and they’re the first thing I test on any store. You can see the kind of stores I build on my work page.
Quick checklist
- Most products in the general profile, with custom profiles only where shipping truly differs.
- Rate names identical across profiles.
- Domestic and international zones kept apart, with no unplanned “Rest of world”.
- No gaps between weight or price tiers.
- Free shipping threshold shown before checkout and tested with discount codes.
- Weights on every variant and real packages added.
- Local delivery and pickup set up if you have a location.
- Fresh test checkouts in every zone.
Related reading: Shopify Conversion Tracking: GA4, Google Ads and Meta Pixel Done Right and Shopify Conversion Rate Optimization: The Fixes I Check First.
FAQ
Why does checkout say no shipping is available?
Usually the country isn’t in an active market or a zone with a rate, a product’s profile has no rate for that zone, or the product isn’t stocked at a location that ships there.
Why is shipping higher when products are mixed?
The cart holds products from different profiles, and Shopify adds their rates together. Check that the rate names match and the totals are what you intended.
Should I use calculated or flat rates?
Flat rates or simple tiers suit most small catalogs. Calculated rates make sense when sizes and weights vary widely and your product data is accurate.
Can I offer free shipping in only one country?
Yes. Add the free rate only in that country’s zone, or limit a free shipping discount to that country.
Not sure your rates match what shipping really costs you? Get a free website review and I’ll check your profiles, zones and rates with real test checkouts.





