How to set up shipping on Shopify: shipping settings dashboard showing zones, profiles and rates

In this article

How Shopify Shipping Works

Shopify shipping is built from four moving parts that talk to each other at checkout: fulfillment locations, shipping zones, shipping profiles and shipping rates. Locations are where the package physically leaves from. Zones are where you'll ship to: a domestic zone like the United Kingdom, an international zone like Europe or the United States. Profiles control which products follow which rules, so a fragile lamp can carry different rates than a t-shirt. Rates are the price the customer sees.


When all four line up, checkout calculates the correct shipping cost in real time. When one is off, customers see the wrong rate, no rate at all, or a flat fallback that costs you margin. Most of the issues we fix for clients are not Shopify bugs; they're profiles and zones that drifted apart over time as new products and new fulfillment locations were added without updating the rules.


Where shipping lives in the admin

All of this is configured in Settings → Shipping and delivery. The same menu manages local delivery, local pickup, packaging defaults and label printing. If you've added apps, duplicated products, or onboarded a new warehouse, this is the page where shipping logic can quietly multiply behind the scenes.



Shopify shipping zones admin showing domestic and international regions with carrier-calculated rates

Before You Set Up Shipping

Five pieces of information make the rest of the setup straightforward. Get them on paper first and you'll avoid the back-and-forth that wastes an afternoon.


  • Product weight and package dimensions for every SKU. Inaccurate weights are the single biggest source of wrong rates at checkout.
  • Fulfillment locations: every warehouse, retail store or third-party logistics provider you ship from.
  • Delivery regions: the countries and regions you'll actually ship to, separated into domestic and international.
  • Carrier accounts: Royal Mail, Evri, DPD, UPS, USPS, FedEx, DHL: whoever you've negotiated rates with.
  • Shipping strategy: free shipping, flat rate, carrier-calculated, or a mix. This decision shapes every rule you'll build.

UK Shopify merchants typically run domestic shipping on a flat or threshold-based free shipping rule (for example, free over £75), then layer carrier-calculated rates for international destinations where parcel costs vary too much for a single flat number to work.



Step-by-Step: Configure Shopify Shipping

Step 1: Add your fulfillment locations

Go to Settings → Locations and list every place orders ship from. Each location gets its own shipping address that Shopify uses to calculate carrier-calculated rates and delivery estimates. If you ship from multiple locations, Shopify will automatically route each order to the nearest active location.


Step 2: Create your shipping zones

Open Settings → Shipping and delivery, find your shipping profile, and add zones for each market. A clean structure for most UK stores looks like:


  • Domestic: United Kingdom (with Northern Ireland called out if your couriers charge differently).
  • Europe: EU countries grouped together so customs rules can be communicated consistently.
  • United States: often its own zone because parcel costs and duties differ from the rest of the world.
  • Rest of world: a catch-all zone for every other country you'll fulfill to.

Step 3: Add your shipping rates

For each zone, add the rates customers see. We'll cover the different rate types in the next section, but the rule of thumb is fewer is better: two or three clear options at checkout convert better than a long menu of overlapping ones.


Step 4: Add a backup rate

Always add one simple flat-rate option per zone that catches anything your other rules miss. The "no shipping methods available" error at checkout is the silent killer of conversions, and a backup rate prevents it. It can be deliberately higher than your usual rates; the point is the order completes.



Comparison of Shopify shipping rate types: flat rate, free shipping, weight-based, price-based and carrier-calculated

Shipping Rate Types Explained

Shopify supports five rate types. Each suits a different kind of catalogue.


Flat rate

One price for every order in a zone, for example £4.99 standard delivery. Best for small catalogues with consistent product sizes, and for stores that want a predictable shipping option customers can remember.


Free shipping

Either unconditional or tied to a minimum order value. Free shipping over £75 is the most common pattern we deploy because it lifts average order value without giving away delivery on small baskets. Customers see the threshold messaging on product and cart pages and add to reach it.


Weight-based

Rates scale with the total package weight in the cart. Essential if you sell heavy or bulky items, since a candle and a 20 kg dog crate shouldn't cost the same to ship.


Price-based

Rates scale with the cart total. A useful way to protect margin on small orders without breaking checkout for larger ones.


Carrier-calculated

Pulls real-time rates from carriers like Royal Mail, UPS, USPS, FedEx and DHL. The rate the customer sees matches what you actually pay the carrier. This is the option we recommend most often for international destinations where parcel costs are too variable for a flat number. Carrier-calculated rates require either a Shopify Advanced plan or above, or the relevant carrier app installed.



Domestic vs International Shipping

Domestic shipping is almost always simpler: predictable carriers, predictable rates, no customs paperwork. The work is in the international layer.


Duties and taxes

International orders may incur customs duties and import taxes that the customer pays on delivery if not collected at checkout. Shopify Markets and Shopify Plus support Delivered Duty Paid (DDP) so duties are calculated and charged upfront. Without DDP, your customer pays the courier on the doorstep, which leads to refused parcels and chargebacks.


Delivery estimates

Display realistic delivery times for each international zone at checkout. Customers forgive a long delivery window if it's stated upfront; what they don't forgive is a parcel that arrives three weeks later than promised.


Restricted regions

If certain countries or regions are uneconomic for you to ship to, exclude them from your zones rather than absorbing the loss. The United States is a classic example: serving the East Coast might be profitable, while Alaska and Hawaii rarely are with standard carriers.



Map showing Shopify domestic UK shipping zone and international zones for Europe, US and rest of world

Using Shipping Profiles for Product Exceptions

A shipping profile lets you apply different rules to specific products. Shopify ships a default General Shipping Profile that contains every product, which works fine until your catalogue grows. As soon as you have items that cost very different amounts to ship, you need profiles.


Cases where a separate profile saves you money or prevents broken checkouts:


  • Oversized or fragile products that need different packaging and rates.
  • Subscription boxes where every order is the same size and weight.
  • Pre-orders shipping from a different fulfillment location.
  • Wholesale or B2B products using freight rather than parcel.
  • Region-restricted items like alcohol or knives.

To create one, click Create new profile in Shipping and delivery, add the products that belong to it, then configure its own zones and rates. Keep the number of profiles small: every additional profile is somewhere a rate can drift.



Shipping Labels and Tracking

Once orders start coming in, Shopify lets you buy and print shipping labels directly from the admin without leaving the order page. Shopify Shipping bundles negotiated rates with USPS, UPS, DHL and Royal Mail (UK), so the label cost shown is what you actually pay. No separate carrier integration is needed for those carriers. For other couriers, install the carrier's app from the Shopify App Store; integration with Evri, DPD and Yodel is straightforward and adds the same one-click label printing.


Every shipping label automatically generates a tracking number that flows into the customer's order confirmation and shipping notification emails. Tracking visibility is one of the strongest trust signals in ecommerce. Customers who can see where their parcel is generate roughly half as many "where is my order" support tickets. If you want richer tracking, apps like Aftership or Parcel Panel layer branded tracking pages on top of Shopify's native tracking number.



Testing Shipping at Checkout

Before you trust the setup, run real test orders. The 10 minutes spent here saves hours of support tickets and refunds later.


  • Place a test order to a domestic address. Check the rate, the delivery estimate and the carrier.
  • Place a test order to a US address. Confirm international rates and any DDP duties calculate correctly.
  • Test the heaviest item in your catalogue. Weight-based rates often break first on edge cases.
  • Test on mobile. Most checkout traffic is mobile and shipping options need to render cleanly on small screens.
  • Try a postcode in a region you've deliberately excluded. The customer should see your backup rate, not an empty list.

If anything looks off, retrace your steps: confirm the product belongs to the right profile, the zone covers the destination, and the rate conditions actually match the test cart's weight or value.



Common Shopify shipping mistakes: missing weights, overlapping zones, no backup rate, untested international rates

Common Shopify Shipping Mistakes

The same four issues show up in nearly every shipping audit we run.


Missing or wrong product weights

Carrier-calculated rates rely on accurate package weight. A SKU with weight set to 0 kg returns the cheapest possible rate, which the courier then bills you the real price for. Always bulk-audit weights when migrating to Shopify or onboarding a new product range.


Overlapping or duplicate profiles

Apps and migrations sometimes create extra profiles that compete with the default. The customer sees the lowest applicable rate, which may not be the one you intended. Open every profile, check what products are assigned, and delete anything you didn't create deliberately.


No backup rate

Without a fail-safe flat rate, any cart that doesn't match your weight or price thresholds shows "no shipping methods available", and most customers will not refresh or change their cart. They leave.


International rates never tested

Stores often add an international zone with a single £20 rate, never test it, and only discover months later that real parcels cost £35 to that destination. Run carrier-calculated tests for every international zone you offer.



Our View After 100+ Stores

The thing nobody tells you about Shopify shipping is that the setup is rarely what breaks; the maintenance is. We see clients open with a clean configuration, then a year later their shipping has drifted: a new fulfillment location added but never wired to existing profiles, a new product range loaded without weights, an app installed that duplicated a zone. The result is rate errors that customers never report. They just abandon.


The single highest-leverage change we make in a shipping audit is consolidating profiles down to the minimum needed and adding a backup rate everywhere. That two-step fix has resolved more "checkout broken" tickets than every other shipping change combined. If you're rebuilding your store or migrating to Shopify Plus, treat shipping as a first-class system, not an afterthought. It's the last thing the customer sees before paying.