Shipping zones stop at the country, and for a handful of countries at the state or province. Real delivery constraints are smaller than that: a courier that only serves the metro area, a same-day van with a 15 km radius, a service that will not deliver to a PO box, a remote-area surcharge for certain postcode prefixes. This guide explains what Shopify handles natively and how to hide or restrict rates by postcode when it does not.
What Shopify does natively
- Local delivery (Settings → Shipping and delivery → Local delivery) can be limited to a radius around a location or to a list of ZIP/postal codes. It is a separate delivery method, not a filter on your shipping rates.
- Local pickup is offered to every customer who reaches checkout, regardless of distance. There is no postcode restriction.
- Shipping zones cannot contain postcodes. A rate is either available to the whole country (or state) or not at all.
- PO boxes are accepted by checkout. Shopify does not validate or block them.

Rule 1: a rate only for certain postcodes
The pattern is to create the rate for the whole zone, then hide it for every address outside the postcodes you serve. In Shipzo:
- Hide the methods Same-day courier when postcode is not in range 2000 to 2250 (Sydney metro).
- Hide the methods Store pickup when postcode does not start with SW, SE, W, E, N, NW (London).
- Hide the methods Local van delivery when city is not Austin, for stores that prefer city over postcode.
Postcode conditions support is, starts with, in list, in range and their negatives. Ranges understand numeric postcodes (US, Australia, India, most of Europe) and prefix matching covers alphanumeric systems (UK, Canada, Netherlands). Spaces and case are ignored, so "sw1a 1aa" matches "SW1A1AA".
Rule 2: block PO boxes for couriers that refuse them
UPS, FedEx and most courier services will not deliver to a PO box, but your checkout will happily sell the service and the parcel comes back a week later. The fix is to hide those rates whenever the address looks like a PO box and leave the postal service rate visible.
- Hide the methods UPS® Ground, FedEx Home Delivery® when address is a PO box.
- Optionally Rename USPS Priority Mail to USPS Priority Mail (PO box accepted) in the same rule so the customer understands why the list changed.
The PO box condition checks address line 1 and 2 for the usual forms: PO Box 12, P.O. Box, Post Office Box, POB, Postfach, Boîte postale, Casilla. Because the Function re-runs as the customer types the address, the rates update as soon as the field changes.
Rule 3: surcharge regions without a surcharge
Shopify cannot add a surcharge to a rate by postcode. What you can do is offer two rates in the zone, Standard and Standard (remote area), and hide the one that does not apply: hide Standard (remote area) when the postcode is in the metro list, and hide Standard when it is not. The customer only ever sees one Standard rate at the correct price.
Setting up a postcode rule
- 1Install Shipzo. On the home page choose the template Pickup by postcode or click Create rule.
- 2Action: Hide. Methods: pick Store pickup or your local courier rate.
- 3Conditions: Destination → Postcode → not in range → 2000 to 2250. Add Country is Australia so the rule never touches other countries.
- 4Save and activate, then test with an address inside and outside the range. The tester in the app shows which conditions matched.



