In short
Shopify’s regular shipping zones only distinguish country and state or region — blocking an order by individual postcode isn’t possible with them. Only the separate “local delivery” feature can genuinely fence off an area by postcode list or radius, and that’s limited to your own delivery within the same country: no carrier, no cross-border shipping. To restrict the delivery area for regular shipping, you need an app that defines its own postcode zones through Shopify’s Carrier Service API and simply offers no rate outside them.
The problem, in merchants’ words
Merchants have asked for postcode-level delivery limits for years — usually because they only deliver in one region, or because they want to deliberately exclude areas that are hard to reach. The answers point to apps again and again, because Shopify has no postcode condition for regular shipping methods. The reasons are concrete: own-fleet delivery with a limited range, a carrier contract that excludes certain areas, or simply not wanting to accept orders that can’t be fulfilled economically.
The native way in Shopify
Set up local delivery: Settings › Shipping and delivery › “Add local delivery”. Choose either a delivery radius around the location (up to 160 km / 100 miles) or a list of postcodes. Up to 10 such delivery zones are possible per location, with up to 3,000 characters of postcodes per zone.
If local delivery is the only active shipping method, the delivery area is genuinely limited: an address outside the radius or the postcode list doesn’t see that method — and with no other method configured, can’t order.
Regular shipping zones: Settings › Shipping and delivery › “Manage rates”. A zone groups countries or states/regions. If no active zone covers the delivery address’s country or region, checkout shows no shipping method there — which restricts a delivery area at country or region level, but no finer.
Where Shopify stops
- Local delivery is not a substitute for shipping. It only covers your own delivery within the same country — no carrier, no cross-border shipping, no route beyond 160 km / 100 miles.
- Regular shipping zones don’t know postcodes. The finest native level is state or region within a country; excluding a single area or postcode range inside one isn’t possible.
- The “leave out a zone” trick is coarse. With no matching zone there’s no order — but only if the whole country or region is affected. Inside a covered state you can’t carve out a single postcode.
How a postcode-zone app solves it
An app with its own rate logic through Shopify’s Carrier Service API can group postcodes into delivery areas and deliberately return no rate outside them:
| Goal | Setup |
|---|---|
| Serve one city and its surroundings | Zone “SW1” (prefix) → rate configured, no catch-all zone |
| Deliberately exclude certain postcodes | Create the surrounding zones, leave the affected ranges out |
| Don’t offer the rest of the country at all | Configure no catch-all zone |
What the customer sees: a delivery address whose postcode falls in a configured zone shows the shipping method with its rate. An address outside every defined zone — from a region with no zone of its own and no catch-all — never sees that method; if no other shipping method is configured, the order can’t be completed with that address.
Technically, the app registers a Carrier Service with Shopify: on every rate request at checkout, Shopify hands over the delivery address, the app checks whether a matching postcode zone exists and only then answers with a rate. With no match the response stays empty and the shipping method doesn’t appear. That runs inside checkout, without touching the theme, on every plan that supports carrier-calculated shipping.
Things to watch
- Carrier-calculated shipping is a requirement. Apps that supply their own shipping rates need the “Third-party carrier-calculated shipping” feature — included automatically on the Advanced and Plus plans, available on Grow with annual billing or as a paid add-on, usually not available on Basic.
- Leaving gaps is the point here. Unlike a pure price-tiering setup (see shipping rates by postcode), the absence of a catch-all zone is deliberate — it’s what limits the delivery area rather than rounding it out.
- Other shipping methods are unaffected. If another method is active alongside the app — a manual rate for “pickup”, say — customers outside the delivery area can still order through that route. Check whether that’s what you want.
- Local delivery and a postcode-zone app combine well. Local delivery for the immediate area, the app for a larger delivery area by carrier beyond it.
The app from this business does this with numeric postcodes or a kilometre radius in Germany and nearby countries, not with UK postcodes: limit your delivery area by postcode or distance with an app.
Frequently asked questions
Can I block orders from certain postcodes in Shopify?
Not with regular shipping zones — those only work at country and state/region level, never a single postcode. Only the separate "local delivery" feature can fence off an area by postcode list or radius, and it's restricted to your own delivery within the same country.
How do I restrict my delivery area by postcode?
For local delivery: Settings › Shipping and delivery › "Add local delivery", choose the postcode criterion and enter the postcodes you serve. For regular carrier shipping across a larger area, you need an app that defines its own zones by postcode prefix through the Carrier Service API and simply returns no rate outside them.
Is it enough to just not create a shipping zone to exclude an area?
That only works at country or region level: if no active shipping zone covers the delivery address's country or state, checkout shows no shipping method there and the order can't be completed. For individual postcodes inside a covered country the trick doesn't help, because regular zones have no postcode condition.
Can local delivery reach beyond my own town?
Yes, but only within the same country and with limited reach: a delivery radius of up to 160 km / 100 miles, or a list of postcodes, with up to 10 such delivery zones per location. Local delivery isn't designed for areas that cross a border, or for carrier shipping rather than delivery by your own staff.
Do I need Shopify Plus to restrict my delivery area?
No. Local delivery by postcode or radius is available on every plan. Restricting regular shipping methods needs the shop to have "Third-party carrier-calculated shipping" — included automatically on the Advanced and Plus plans, available on Grow with annual billing or as a paid add-on, usually not available on Basic.
What does a customer outside the delivery area see at checkout?
It depends on the route. With local delivery as the only shipping method, the option simply disappears — and with no other method configured, the customer can't order. With a postcode-zone app and no catch-all zone, that shipping method returns no rate at all; any other configured methods are unaffected.
Sources
- Shopify Help Center: Setting up shipping zones
- Shopify Help Center: Setting up local delivery for online orders (postcodes, radius, limits)
- Shopify Help Center: Shipping zones and markets (no zone for a country/region → order can't be placed)
- Shopify Community: "Restrict delivery area by postcode"
- Shopify App Store: KM Distance Shipping (hard edge on the delivery area, postcode zones without a catch-all)