Ready to maximize your revenue?Book a Demo
TOPCODE
Shopify Beginner

Setting up shipping zones and rates in Shopify for beginners

Last updated on June 2, 2026

Setting up shipping zones and rates in Shopify for beginners

TOPCODE

Shipping is where a lot of beginner Shopify stores run into their first serious problem. You get the products uploaded, the theme looking great, the payment gateway connected—and then a customer from Canada tries to check out and gets shown "No shipping options available." Or worse, you ship a five-pound item for $4.99 flat rate and eat a $15 loss on every order. Setting up shipping correctly before you launch isn't glamorous work, but it directly affects whether customers can buy from you and whether you make money when they do.

What you'll have by the end

By the time you finish this tutorial, you'll have a domestic shipping zone with a flat rate, a weight-based rate, and a free-shipping threshold; an optional international zone; and you'll have verified the setup works via a test order.

Before you start

  • Shopify plan: Calculated carrier rates (live rates from USPS, UPS, etc.) require the Shopify plan or higher. Flat and weight-based rates work on all plans including Basic.
  • Products with weight: Weight-based rates are useless if your products don't have a weight set. Go to Products → click a product → scroll to Shipping, set the weight. Set it in grams, kilograms, pounds, or ounces—be consistent.
  • Account permissions: You need "Manage settings" permission. Store owners have it by default; staff accounts may not.
1

Plan your shipping zones before touching the admin

A shipping zone is a geographic region—one or more countries or regions—that shares the same set of rates. Before clicking anything in the admin, grab a piece of paper and sketch out:

  • Where do you physically ship from? (Your origin country.)
  • Which countries do you want to ship to? Start with domestic only if you're not ready for international fulfillment.
  • Do different regions cost meaningfully different amounts to ship to? (Domestic vs. Canada vs. Rest of World is a common split.)

A typical beginner setup has two zones: "Domestic" (your home country) and "International" (everything else). You can always add more zones later.

Expected outcome: You have a clear plan on paper: which zones you need and what rates you'll charge in each.

2

Open Shipping and delivery settings in the admin

In your Shopify admin, go to Settings → Shipping and delivery. You'll see a "Shipping" section listing any existing shipping profiles. A shipping profile is a container that holds zones and rates for a group of products. Shopify automatically created a "General" profile when you opened your store—that's where we'll work.

Click "Manage" next to the General shipping profile. You'll see shipping zones listed here—initially just a "Domestic" zone for your store's country.

Expected outcome: You're inside the General shipping profile and can see the Shipping zones section.

3

Create your first zone (Domestic)

If a Domestic zone already exists (Shopify creates one automatically), click "Edit" to modify it. If you need to create one, click "Create shipping zone". Give the zone a clear name like "United States" or "Domestic". Then search for and add the countries or regions that belong in this zone.

Important: each country can only belong to one zone per shipping profile. If you add the US to your Domestic zone, you can't also add it to an "Americas" zone in the same profile. Shopify will warn you if you try.

Expected outcome: You have a Domestic zone containing your home country, ready to receive shipping rates.

4

Add a flat rate

Inside the zone, click "Add rate". Select "Set up your own rates". Give the rate a name customers will see at checkout, like "Standard Shipping" or "Ground (5–7 business days)". Enter the price. Click "Done", then "Save".

Flat rates are simple but risky for heavy products—you're charging the same amount whether the cart has one lightweight item or ten heavy ones. Use flat rates for products with consistent, predictable size and weight, or when you're intentionally subsidizing shipping as a competitive strategy.

# Example rate configuration (as you'd see it in the UI)
Rate name: Standard Shipping
Rate price: $5.99
Conditions: None (applies to all orders in this zone)

Expected outcome: A "Standard Shipping" flat rate of your chosen price now appears in checkout for customers in the Domestic zone.

5

Add a weight-based rate

Click "Add rate" again. Name it something like "Heavy Items (over 5 lbs)". Click "Add conditions" and switch the condition type to "Based on order weight". Set a minimum weight (e.g., 5 lbs / 2.27 kg) and leave the maximum blank. Set a higher price to cover the extra shipping cost.

Shopify will show all applicable rates to the customer. So if a cart weighs 7 lbs, the customer will see both your flat "Standard Shipping" rate (which has no condition) and your "Heavy Items" rate—they choose which one to pay. You can structure rates so cheaper options only appear for lighter orders if you set a maximum weight on the flat rate. For example, set Standard Shipping to "maximum weight: 4.9 lbs" so it disappears for heavy carts.

Expected outcome: Customers with heavy carts see a separate shipping option that better reflects your actual cost.

6

Add a free shipping threshold

Free shipping over a threshold (e.g., "Free shipping on orders over $75") is one of the most proven conversion boosters in e-commerce. To add it, click "Add rate", name it "Free Shipping", set the price to $0.00, then click "Add conditions" and select "Based on order price". Set the minimum price to $75 (or whatever threshold makes sense for your margins).

Choose your threshold carefully. A common formula: look at your average order value, then set the free shipping threshold about 20–30% above it. This nudges customers to add one more item rather than pay for shipping. If your AOV is $60, try $75. If it's $120, try $149.

Expected outcome: "Free Shipping" appears in checkout automatically for orders that meet the price threshold.

7

Test the flow with a test order

Never launch without verifying shipping works. In Shopify admin, go to Settings → Payments, scroll down to "Shopify Payments" (or your gateway), and enable test mode. Then go to your storefront, add a product to your cart, and proceed through checkout using the test credit card number Shopify provides (typically 4242 4242 4242 4242, any future expiry, any 3-digit CVV).

At the shipping step of checkout, verify that: (1) your expected rates appear for a domestic address, (2) no rates appear for a country you didn't add to any zone (customers in that country should see a "No shipping options available" message—which you can fix by adding them to a zone), and (3) the free shipping rate appears when you add enough items to cross the threshold.

Expected outcome: You've confirmed the shipping rates work exactly as intended before any real customer places an order.

8

(Optional) Connect a calculated carrier for real-time rates

If you're on the Shopify plan or higher, you can display real-time carrier rates from USPS, UPS, FedEx, and Canada Post directly at checkout. In Settings → Shipping and delivery, inside a zone, click "Add rate" and choose "Use carrier or app to calculate rates". Select your carrier and enter your carrier account credentials if required.

Real-time rates are the most accurate but require that every product has a correct weight and, for dimensional rates, a box size (height/width/length). If any product is missing weight data, the carrier API will return an error or fall back to a default—potentially showing the wrong price. Make sure your product catalog is complete before enabling this.

Expected outcome: Customers see live carrier rates (USPS Ground Advantage, UPS Ground, etc.) at checkout, reflecting real costs based on cart weight and destination.

What's next

Basic shipping zones cover most beginner needs, but as your store grows, you may want to explore third-party logistics (3PL) integrations like ShipBob, ShipStation, or Easyship—these connect via Shopify apps and handle fulfillment, rate shopping across multiple carriers, and automated tracking emails. You can find them in the Shopify App Store under "Shipping and fulfillment".

You should also customize your packing slip (Settings → Shipping and delivery → Packing slips) with your logo and contact information. And make sure your shipping policy page (Settings → Policies) is filled in and linked from your footer—customers expect to see clear information about processing times and how returns work.

Using multiple shipping profiles for different product groups

The General shipping profile applies to all products by default. But what if some of your products ship differently—say, you sell lightweight stickers and also heavy ceramic mugs, and each needs different rate structures? That's where custom shipping profiles come in. A custom shipping profile lets you assign specific products to their own set of zones and rates, completely separate from the General profile.

To create a custom profile, go to Settings → Shipping and delivery and click "Create new profile" under the Shipping section. Name it (e.g., "Heavy Ceramics"), then add the specific products that belong to this profile by clicking "Add products". Those products are automatically removed from the General profile and will only use the rates you define in the custom profile. All other products remain in the General profile unchanged.

Custom shipping profiles solve a surprisingly common problem: a mixed catalog where different product categories have very different shipping economics. Digital download products, for example, should be in a profile with a $0 rate and no physical shipping zones. Fragile items that need special packaging might have higher flat rates to cover materials. Grouping products by shipping profile gives you precise control without complex weight-based rule stacking.

Senior Shopify Engineer

Frances Chen

Keep reading