Shopify Postcode Shipping Troubleshooting
First Test: Open Your Own Checkout
Before I touch the configuration, I run the test that catches half of these problems on its own.
I open a private browser window. I go to the store’s homepage. I add a real product to the cart. I run through to the shipping step of checkout and I look — actually look — at the rates that come back.
The diagnostic that catches half these problems is the cheapest to run and the easiest to skip. The admin tells you what’s configured. The checkout tells you what customers see. Those are not the same thing.
I do this with three postcodes if the store ships to mixed UK destinations: a mainland one (Manchester works), a pure Highland one (Inverness — IV1 1AA), and an overlap-prone Highland one (Highland Aberdeenshire — AB31 1AA). The three together expose the most common patterns. The Parcelify walkthrough covers what each test reveals.
With that test in hand, the symptom usually tells me which of the five causes it is.
Symptom 1: A Rate I Added Doesn’t Show At Checkout
I configured a rate. The admin shows it. At checkout the customer doesn’t see it. Four candidate causes:
The Parcelify location is still Disabled. When Parcelify first installs, every location is Disabled by default — it’s the safety belt that stops half-configured rates from breaking checkout. The fix is one click: Locations → Enable. But the click is easy to forget after a long configuration session, especially if you came back to the admin a day later and assumed previous-you had already done it.
The delegation line isn’t in the Shopify zone. Parcelify is a Shopify CarrierService app. To make Shopify actually ask Parcelify for rates, the Shopify zone needs a rate of type “Use carrier or app to calculate rates” pointing to Parcelify. Without that line, Parcelify can be Enabled and stuffed with rates, and Shopify still never asks it for anything. The fix is Settings → Shipping and delivery → your profile → your zone → Add shipping rate → “Use carrier or app to calculate rates” → Parcelify.
The cart weight doesn’t fall in the rate’s weight band. A rate restricted to 0–15kg won’t fire on a 16kg cart. Easy to miss if you set up weight bands with a manual gap — “0 to 15” then “16 to 30” leaves 15–16kg uncovered. Use overlapping or near-gapless boundaries: “0 to 15.001kg” then “15.002 to 25.001kg” is the convention I follow. The 0.001 gap is small enough to be customer-invisible but mathematically clean.
The customer’s postcode doesn’t match the rate’s restriction. If you’ve added a postcode-starts-with restriction and the customer’s postcode isn’t in your list, the rate won’t fire. Worth opening the rate’s restriction and confirming the customer’s actual postcode prefix is present.
The diagnostic order is usually: Parcelify Enabled? Delegation line? Weight band? Postcode list? Whichever fails first is the answer.
Symptom 2: Customers See The Cheap Rate When They Should See The Surcharge
This is the silent margin leak. The rate exists at checkout, but customers always pick the cheaper option, so the surcharge never captures anything. Two candidate causes:
Native and Parcelify rates coexist in the same zone. Shopify-native flat rates and Parcelify-provided rates both appear at checkout, sorted cheapest to most expensive. The customer always picks the cheapest. If your native UK rates are still configured at £3.99 and £8.99, and your Parcelify Highland surcharge is £13.94, the Highland customer sees all three and clicks £3.99. The surcharge is theatre.
The fix is uncomfortable but mechanical: delete the native UK rates and let Parcelify provide both the standard AND surcharged versions, with postcode restrictions on each. Mainland customers only see the mainland-restricted Parcelify rates. Highland customers only see the Highland-restricted Parcelify rates. No escape route. Full sequence and rationale in the Highland surcharge piece.
Postcode prefix overlap. Parcelify matches postcodes with literal “starts with” logic — it does not understand that “AB31” is more specific than “AB”. If your mainland list contains “AB” and your Highland list contains “AB31”, a Highland Aberdeenshire customer at AB31 matches both lists. Both rates fire. They pick the cheaper one — your mainland rate. The surcharge leaks for every postcode where a Highland outward code shares its area code with mainland Scotland: AB31, FK17-21, KA27-28, PA20-78, PH17-50.
The fastest way to find this is to put AB31 1AA into your live checkout from a private browser. If you see only your Highland-priced rate, the postcode logic is working. If you see your cheaper mainland rate alongside, the overlap is leaking and the fix is the Route B enumeration in the Highland surcharge piece.
Symptom 3: Heavy Carts Get No Shipping Options
A cart with several heavy items reaches checkout and Shopify says “no shipping options available”. Two candidate causes:
The weight bracket ladder doesn’t extend high enough. If your top rate covers 90–100kg and the cart weighs 110kg, no rate matches. The cart sees nothing. The fix is to add brackets above your previous maximum — typically I run UK rates up to 160kg+ or 1000kg as a catch-all on the heaviest bracket, depending on whether the merchant ever realistically ships those weights.
The cart routed to a warehouse without coverage. Multi-warehouse stores use Shopify’s order routing rules to decide which location fulfils each order. If a heavy cart routes to a warehouse whose UK zone caps at 30kg, and your other warehouse has rates up to 160kg, the heavy customer gets nothing because the routing locked them to the lighter-cap warehouse. The fix is either to extend the lighter warehouse’s brackets, or adjust the order routing rules so heavy carts go to the warehouse that can handle them, or both.
I usually diagnose this by adding a known-heavy product to a test cart and watching the order routing decision in the Shopify admin (Settings → Locations → Fulfillable inventory shows which location currently holds the stock; Settings → Shipping and delivery → Order routing shows the rules).
Symptom 4: My New Parcelify Config Won’t Import
Less common, but if you’re rebuilding a Parcelify setup from scratch and using the Backup & Restore feature, this catches you. The import fails validation with a message like Zone provinces[gb-eng] Province exists in another zone.
Cause: Province ownership across the account. Each UK province (ENG, SCT, WLS, NIR, BFP) can only exist in one Parcelify zone across the entire account. If a previous setup attempt left an orphan zone claiming ENG/SCT/WLS — even on a Disabled location you don’t ship from any more — that orphan still claims the provinces. Your new build can’t import.
The fix is to find every Parcelify zone in your account (including in Disabled locations — click “Show Inactive” on the Locations page) and delete the orphan that claims the provinces you need. After that, the import succeeds.
I check this whenever an import fails with a province-related error. The validation message is helpful — it names the province causing the collision, and from there it’s straightforward to find which zone owns it.
Symptom 5: Customer Reports A Wrong Charge
A customer emails saying their shipping seemed wrong. Maybe they were charged too much; maybe they were charged too little; maybe their free-shipping-over-£X tier didn’t trigger when they expected. Three candidate causes:
A weight bracket gap. “0 to 15” then “16 to 30” leaves 15-16kg uncovered. A cart in that range sees no rate. If the customer somehow completed checkout, something between Shopify and the merchant’s order management filled the gap with a default that wasn’t what either party intended.
An off-by-one in the postcode list. Highland Perthshire is PH17-50. Mainland Perthshire is PH1-16. If your mainland list says “PH” but your Highland list says “PH17” to “PH50”, a PH17 customer matches both and picks the cheaper mainland one. If your mainland list says PH1 through PH16 explicitly, the overlap disappears.
A free-shipping-over-threshold rule mis-tuned. A value-restricted £0 pricing strategy intended to give free shipping over £100 might fire at £99.99 due to a comparison off-by-one, or fire on a cart subtotal that excludes the discount the customer applied. Worth reproducing the customer’s exact cart in a private browser and watching what the rate engine returns.
The Three-Postcode Test That Catches Most Of This
Worth restating because it’s the single most useful diagnostic discipline I know:
| Postcode | What it tells you |
|---|---|
| M1 1AA (Manchester) | Mainland rates work, postcode lists include mainland prefixes, native+Parcelify aren’t producing duplicates |
| IV1 1AA (Inverness) | Highland-only zone fires correctly, no leak from mainland rates |
| AB31 1AA (Highland Aberdeenshire) | The overlap test — if mainland AB matches AB31, the surcharge leaks; if not, the Route B enumeration is intact |
Run those three through your checkout. If all three return what you expect, the system is probably healthy. If any of them return something surprising, you have a specific diagnostic starting point — and the symptom usually maps cleanly to one of the five causes above.
Related Reading
The Highland surcharge piece covers the postcode-precision case in depth, the Parcelify walkthrough covers app-side configuration, and the original UK Shopify Shipping guide covers the broader rate-zone foundation that everything else builds on.
Resources
Parcelify documentation: Parcelify Help Center — the official reference for the most-installed UK Shopify shipping app.
Shopify order routing docs: Shopify Help Center on order routing — for the multi-warehouse case that surfaces in Symptom 3.
Shopify shipping profile docs: Shopify Help Center on shipping profiles — for the native side of the architecture.
Tony Cooper
Founder
Put My Crackerjack Digital Marketing Skills To Work On Your Next Website Design Project!
Get Started