Shopify Shipping Rules — How to Set Up Advanced Rules by Weight, Zone and Product
Shopify's built-in shipping profiles handle straightforward setups — flat rates, free shipping above a threshold, basic weight tiers. But the moment your shipping logic involves product-specific rates, postcode zones, method-level surcharges, or rules that connect rates to delivery dates, you hit the ceiling.
This guide covers what Shopify can and can't do natively, when you need a shipping rules app, and how to set up advanced rules that handle real-world complexity — weight tiers, postcode zones, product-specific rates, and conditional logic — without code. For a focused comparison of the app called Advanced Shipping Rules vs modern alternatives, see our advanced shipping rules for Shopify guide. For app recommendations, see our delivery date apps for Shopify.
What Shopify's native shipping can do
Before reaching for a third-party app, it's worth understanding what Shopify already handles:
Shipping profiles. Assign different products to different rate structures. A furniture collection can have its own rates separate from small accessories. Each profile has its own zones and rate conditions.
Weight-based rates. Set rate tiers by order weight within each zone. Orders under 5 kg ship at one rate, 5–20 kg at another, over 20 kg at a third. Requires accurate product weights on every SKU.
Price-based rates. Free shipping above a cart value threshold. Different rates for orders under and over a set amount.
Carrier-calculated rates. Live rates from UPS, FedEx, USPS, DHL and Royal Mail — available on Advanced Shopify, Shopify Plus, or any annual plan with the carrier shipping upgrade. Rates are calculated from package dimensions, weight and destination.
Shipping zones. Group countries or regions together and apply rates per zone. Domestic, EU, international — each with its own rate structure.
For many stores, this is enough. If you ship one product type nationally at a flat rate, Shopify's native tools work fine.
Where Shopify's shipping rules fall short
The problems start when your shipping logic needs to account for more than one variable at a time:
No postcode or ZIP code-level rules. Shopify zones work at country or region level. You can't charge different rates for London vs the Scottish Highlands, or New York City vs rural Montana. If transit times and costs differ by postcode — and for most brands selling physical goods, they do — you're stuck with one-size-fits-all rates per country.
No product-level shipping methods. You can put products in different shipping profiles, but you can't show different shipping methods based on what's in the cart. A customer buying a sofa and a cushion sees the same shipping options for both, even though the sofa needs a two-man delivery and the cushion ships with a parcel courier.
No conditional surcharges. Saturday delivery surcharges, remote area fees, heavyweight handling charges — Shopify doesn't support conditional additions to a base rate. You either bake them into a flat rate (overcharging most customers) or absorb them (undercharging some).
No method blocking by location. You can't hide next-day delivery for postcodes outside your courier's next-day coverage. Every customer sees every method, even when you can't fulfil some of them for their location.
No connection between rates and delivery dates. Shopify treats shipping rates and delivery dates as completely separate systems. The rate a customer pays has no relationship to the date they'll receive their order. A customer can select "express" shipping and see a delivery date that's calculated from standard transit times — because the rate app and the date picker don't talk to each other.
This last gap is the one that causes the most operational damage. Disconnected rates and dates mean incorrect delivery promises, which become WISMO tickets, failed deliveries and refund requests.
When you need a shipping rules app
If any of these apply to your store, Shopify's native shipping isn't enough:
- You ship products with different handling requirements in the same order (e.g. ambient and chilled goods, or furniture and accessories)
- Your shipping costs vary by postcode or ZIP code, not just country
- You need to block certain shipping methods for certain locations
- You charge surcharges for Saturday delivery, remote areas or heavyweight items
- You want the shipping rate and the delivery date to come from the same logic — so customers see a consistent, accurate promise at checkout
The question is which app. There are broadly two categories:
Standalone shipping rate apps. These control what rates appear at checkout. Advanced Shipping Rules (by Auctane), Intuitive Shipping, Parcelify, ShipperHQ. They handle rate calculations but don't control delivery dates. You need a separate date picker app, and the two don't share logic.
Combined rules engines. These calculate rates and delivery dates from the same rule set. When you change a zone's transit time, both the date shown and the rate charged update together. Flare is the primary example — it handles shipping rules, delivery dates, checkout validation and carrier integrations from a single configuration.
The difference matters because disconnected systems drift. You update the rate app but forget the date picker. Or the date picker shows Thursday delivery but the rate charged is for standard five-day shipping. The customer notices when their order doesn't arrive when promised.
How to set up shipping rules by weight
Weight-based rules are the most common starting point for brands shipping products that vary significantly in size — furniture, appliances, food boxes, building materials.
Step 1: Ensure every product has an accurate weight. This sounds obvious but is the most common source of incorrect rates. Check every SKU in Shopify admin under Products → edit → Shipping section. Include packaging weight, not just product weight.
Step 2: Define your weight tiers. Map your actual shipping costs to weight brackets. Example for a UK furniture brand:
- 0–5 kg: £4.95 (parcel courier)
- 5–25 kg: £9.95 (parcel courier, larger box)
- 25–50 kg: £29.95 (pallet courier, single item)
- 50–100 kg: £59.95 (two-man delivery)
- 100 kg+: £99.95 (two-man delivery, ground floor only)
Step 3: Apply tiers per zone. The same weight might cost different amounts depending on destination. A 30 kg package to central London costs less than the same package to the Scottish Highlands. In Flare's shipping rate automation, you define zones by postcode district and set different rate tiers per zone — so the customer sees the correct rate for their location and weight combination.
Step 4: Handle mixed carts. When a customer orders a 2 kg accessory and a 40 kg table, how do rates combine? Options include charging for the heaviest item only, summing weights and applying the total to a tier, or applying each product's rate independently. Your app needs to support the blending logic that matches your actual shipping costs. For more on this, see our guide on shipping rules for heavy items.
How to set up shipping rules by postcode zone
Postcode-based rules are essential for any brand where delivery costs or transit times vary within a single country.
Step 1: Map your delivery zones. Group postcodes by what they have in common operationally. Example for a UK brand:
- Zone 1 (London & Southeast): EC, WC, E, N, W, SW, SE, NW, BR, CR, DA, EN, HA, IG, KT, RM, SM, TN, TW, UB, WD — next-day available, £4.95 delivery
- Zone 2 (England & Wales): all other English and Welsh postcodes — 2-day delivery, £7.95
- Zone 3 (Scotland mainland): AB, DD, DG, EH, FK, G, IV1-IV28, KA, KY, ML, PA1-PA19, PH1-PH14, TD — 3-day delivery, £12.95
- Zone 4 (Scottish Highlands & Islands): IV30+, KW, PA20+, PH15+, HS, ZE — 5-day delivery, £24.95, no next-day
Step 2: Assign transit times per zone. Each zone gets a transit time in working days. This is where rates connect to delivery dates — the same zone definition drives both the rate charged and the date shown. When you use postcode delivery rules in Flare, a single zone configuration controls rates, dates and method availability simultaneously.
Step 3: Block methods by zone. Next-day delivery shouldn't appear for Highland postcodes if your courier can't fulfil it. In a combined rules engine, blocking a method for a zone automatically removes it from checkout for customers in that zone — they never see an option you can't fulfil.
Step 4: Handle edge cases. Some postcodes don't fit neatly into zones. Individual business addresses might get different rates. Islands might be excluded entirely. Your shipping rules app needs to support both broad zone rules and specific postcode overrides.
How to set up shipping rules by product type
Product-specific rules handle the scenario where different items in the same order need different shipping treatment.
Common product-specific rules:
- Perishable goods: Must ship Monday–Wednesday only (to avoid weekend transit). Block Friday shipping for chilled items.
- Oversized items: Require two-man delivery. Surcharge applies. No click-and-collect option.
- Hazardous materials: Cannot ship by air. Ground only. Certain postcodes excluded.
- Made-to-order items: Lead time of 2–6 weeks before shipping. Standard transit time applies after production.
- Gift items: Offer gift wrapping as a shipping add-on. Allow a different delivery address.
In Flare, product rules are configured through profiles — a profile is a set of rules that applies to specific products or collections. A "perishable" profile might block weekend shipping, limit to specific zones, and require chilled courier rates. A "furniture" profile might add a two-man delivery surcharge and extend the delivery date by the production lead time.
The key is that product rules interact with zone rules. A perishable item going to a Highland postcode gets both the Highland zone's extended transit time and the perishable profile's weekday-only shipping restriction. The delivery date shown at checkout reflects both constraints. The rate charged reflects both the zone surcharge and the product handling fee.
Connecting shipping rules to delivery dates
This is the gap that most shipping rate apps don't address — and it's the one that causes the most customer service issues.
When shipping rules and delivery dates are separate:
- A customer selects "next-day delivery" and pays the premium rate, but the date picker shows a date three days out because the product has a two-day lead time. The customer expects tomorrow. The order arrives Thursday.
- A customer in a remote postcode sees a delivery date of Wednesday, but the rate charged is for standard five-day shipping. The rate and the date don't match because they're calculated by different apps with different zone definitions.
- You update your cut-off time from 2pm to 1pm in your date picker app but forget to update it in your rate app. Customers ordering at 1:30pm see tomorrow's date but get charged for same-day because the rate app still thinks the cut-off is 2pm.
700+ Shopify brands use Flare to avoid this problem entirely. Flare calculates both the delivery date and the shipping rate from the same rule set. One zone definition. One cut-off configuration. One product profile. When you change a rule, it updates everywhere — the date picker, the rate shown, the available methods and the checkout validation — in a single save.
The result is 99.8% order accuracy. The date the customer sees is the date the order arrives. The rate they pay matches the service they receive.
Shipping rules checklist
Before configuring your shipping rules — whether natively in Shopify or through an app — work through this checklist:
Products:
- Every product has an accurate weight (including packaging)
- Products with different shipping requirements are identified (perishable, oversized, made-to-order, hazardous)
- Mixed cart scenarios are documented — what happens when different product types are in the same order?
Zones:
- Delivery zones are mapped by postcode or ZIP code, not just country
- Transit times are assigned per zone in working days
- Rates are defined per zone (not just one domestic rate)
- Remote or island postcodes are handled — either with extended transit times or exclusions
Methods:
- Shipping methods match what your couriers actually offer per zone
- Methods are blocked for zones where they can't be fulfilled
- Surcharges (Saturday, remote, heavyweight) are documented
Cut-offs:
- Daily cut-off times are defined — the time after which orders shift to the next working day
- Cut-offs are consistent between your rate logic and your delivery date logic
- Weekend and bank holiday handling is configured
Validation:
- Orders without a valid delivery date are blocked at checkout
- Orders to undeliverable postcodes are caught before payment
- Mixed carts with conflicting lead times show only valid dates
Frequently asked questions
Can Shopify handle complex shipping rules without an app?
For basic setups — flat rates, weight tiers, free shipping thresholds — yes. But if you need postcode-level rules, product-specific methods, conditional surcharges, or shipping rules connected to delivery dates, you need a third-party app. Shopify's native shipping doesn't support postcode zones within a country, method blocking by location, or any connection between rates and delivery dates.
What's the difference between a shipping rate app and a shipping rules engine?
A shipping rate app controls what rates appear at checkout. A shipping rules engine controls rates, delivery dates, method availability and checkout validation from a single configuration. The practical difference is that a rules engine keeps everything in sync — when you update a zone, the rate, date and available methods all update together. A standalone rate app requires a separate date picker, and the two can drift apart.
Do I need a developer to set up advanced shipping rules?
Not with most modern Shopify shipping apps. Flare's rules are configured through a dashboard — zones, weight tiers, product profiles, cut-offs and surcharges are all set up through a visual interface. No Liquid code, no theme editing, no API integration required. Most brands are live within a day.
How do shipping rules work with Shopify Plus checkout?
On Shopify Plus, shipping rules apps can use Checkout Extensibility to display rates, dates and validation natively inside the checkout page. The rules run at checkout speed (Flare averages 195ms API response time) and the customer sees rates, dates and methods as native checkout elements — not injected scripts or iframes.
Can I show different shipping options based on what's in the cart?
Yes — with a product-aware shipping rules app. In Flare, product profiles let you define which shipping methods, rates and delivery date rules apply to specific products or collections. A cart containing both perishable and ambient items shows only methods that can handle both — the rules interact automatically.
What happens when a customer orders products with different lead times?
In a properly configured rules engine, the date picker shows only dates that are valid for every product in the cart. If one item ships in two days and another needs three weeks of production, the earliest available delivery date accounts for the longest lead time. The customer can't select a date that's impossible for any item in their order.
Accurate delivery dates. Automated shipping rules. No code.
700+ Shopify brands trust Flare to handle their delivery logic — from blocked dates to postcode zones to checkout validation.
7-day free trial · Assisted setup included