Scotland Delivery Set up

Hello

I have a shopify plus website nearing completion but the delivery set up to Scotland is causing an issue as we have a complex delivery brief.

1 Mainland zone with 5 shipping profiles (date picker shown, available days, shipping rates for each)
13 non-Mainland zones with 13 shipping profiles and hidden date picker (shipping rates for each
Excluded postcodes (GY, JE etc.) - blocked for delivery where non-serviceable
Cut-off and lead time rules by profile (for your Priority/Next Working Day) and by day of week (rolling business days across weekends)
Checkout extension - date picker shown at the checkout step
Checkout validator - prevents stale dates carrying through to orders
ShipTheory integration - fulfillment routing
Post-purchase date communications - customer notificatications

The 13 non mainland is for Scotland where if a customers buy a second pallet of goods there is a charge, but some of those products also need to be exclude from Scotland delivery postcodes

Is there an app that can do this or any suggestions on how to set up Highlands & Islands - Mainland Scotland Delivery

Thanks

The thing that will bite first is that a product can only sit in one shipping profile at a time. Shopify’s docs are explicit about it, adding a product to a second profile automatically removes it from the first. So 13 profiles for your 13 non-mainland zones can’t each hold the catalogue. You’d need 13 disjoint product sets, which isn’t what you’re describing.

Zones are the geography axis and they live inside a profile. Profiles are the product axis. One profile can hold all 14 zones quite happily. You only want extra profiles when a specific set of products needs different rates from everything else, which sounds like your pallet goods rather than your regions.

That matters beyond tidiness. When a cart pulls products from more than one profile, Shopify combines the rates. Rates with the same name across profiles get added together. If all the names differ it takes the cheapest from each profile, adds those, and shows the customer one line called “Shipping”. With pallet pricing that produces a number nobody designed, and it only appears on mixed carts so it survives most testing.

Second problem. Highlands and Islands cannot be a zone. The UK splits into England, Scotland, Wales, Northern Ireland and British Forces, which has been there since 2021, but nothing below that. Zones have no postcode granularity at all. So IV, HS, KW, PA20-49, PH17-50, ZE and friends have to be handled outside the zone system entirely.

Worth auditing your excluded list too. GY and JE aren’t UK postcodes you need to block. Guernsey and Jersey are separate countries in Shopify’s country list, same as Isle of Man. Never add them to a zone and they’re already unshippable with no logic required. That leaves only the genuine in-GB Highland and Island postcodes as the hard part.

For that hard part, two different functions do the two halves and they’re easy to conflate. Excluding certain products from certain postcodes is a Cart and Checkout Validation function. It can read cart.deliveryGroups[0].deliveryAddress.zip and block with your own message, and since you already run a validator for stale dates it’s another rule rather than a new build. Limit is 25 active validation functions per store.

The second pallet charge is the one that catches people out. A delivery customization function cannot change a price. It only hides, renames and reorders delivery options. So the surcharge has to come from the rate card itself, weight or item count tiers, or from a carrier service returning computed rates. If the plan was to bolt the pallet charge on with a function, better to find that out now than after ShipTheory is wired in.

What are you keying the pallet charge off, weight or line item quantity? That decides which of those two routes is actually open.

Thank you for the details, I’m very confused with it all, i am unfamiliar with shopify ful stop. i tried setting it up as weight based but there is so many combinations of weights a customer could order.
Then i thought using line quantity would work but there are some products that cant be sent to Scotland unless its with a pallet, they cant be sent there there own.

So i am at a loss.

If you where me want would you do?

Hey @Ulefos, with 18 profiles the checkout maths is what’ll catch you out. Shopify combines rates across profiles, and it only adds them into one line when the rate names match exactly, character for character; where the names differ it takes the cheapest option from each profile and shows a generic “Shipping”. So use one identical string, say “Next Working Day”, in all 18 profiles. For the second pallet charge, price it as a weight band in the Scottish non-mainland zones, since manual rates only condition on order value or weight and a pallet has a known weight. Test with a two-pallet cart to an IV postcode and check you get a single named line with both amounts added.