You can show or hide shipping methods by destination at Shopify checkout using conditional rules based on country, region, and zip code. Shopify zones handle broad geography; conditional rules handle the exceptions like postal-code radius or region-specific carriers. This guide covers both and how to set them without code using ShipStar.

Introduction
Where a customer lives changes what delivery options make sense. Same-day courier works in a metro area but not a rural one. Overnight air is wasted on an international address that takes a week through customs. Showing every method to every destination creates failed fulfillments, refunds, and support tickets.
Setting shipping rules by country and zip code at Shopify checkout means showing or hiding delivery options based on the customer's address. Shopify shipping zones handle broad geography. Conditional rules handle the exceptions zones cannot express. This guide covers both, and how to add zip-level logic without code using ShipStar. For value-based and product logic, see our guides on free shipping thresholds and hiding shipping methods.
Why destination-based rules matter
Carriers serve different areas with different service levels. Pricing, transit time, and reliability all vary by destination. Aligning the options at checkout with what you can actually deliver protects both margin and trust.
Failed fulfillment and refunds
If a customer in a region you do not serve picks same-day delivery, you either eat the cost of a workaround or cancel and refund. Either outcome damages the experience. Hiding the method for that region prevents the problem before it starts.
Local delivery and pickup areas
Stores offering local delivery usually serve a set of zip codes near a warehouse or storefront. Showing local delivery to addresses outside that radius leads to canceled orders. A zip-based rule limits the option to the area you cover.
When merchants set geo rules
Out-of-area carriers: hide couriers that do not serve the destination.
Local delivery radius: show local delivery only for nearby zip codes.
Remote surcharge zones: hide standard rates and show a remote-area rate for hard-to-reach postal codes.
Country-specific service: show express only where a carrier guarantees transit time.
Shopify shipping zones and their limits
Shopify zones are the native tool for geography. They are powerful for broad rules and should be your first layer.
What zones handle well
You can group countries and sub-regions into zones and assign rates to each. Domestic in one zone, rest of world in another, with separate rates. For many stores this is enough on its own.
Where zones break down
Zones work at the country and region level, not the individual postal code. They cannot easily express "hide express for this list of zip codes," "show local delivery only within a 20-mile radius," or "hide standard post for remote islands while keeping it elsewhere in the country." They also cannot combine geography with cart value or product in one rule. For that level of control you add conditional rules at checkout. If you only need to suppress a method for a region, compare the native hide approaches first.
Common geo rules merchants use
Most destination logic maps to a small set of conditions. You can combine them with AND / OR logic in ShipStar.
Country: show or hide a carrier for specific countries.
Province or state: hide ground service where it is not offered.
Zip or postal code: show local delivery only for a list of codes.
Zip plus cart total: free local delivery within radius over a threshold.
Market: tailor options per Shopify market.
Step-by-step: set geo rules with ShipStar
ShipStar adds destination conditions that Shopify zones cannot express, without code. The free plan includes one rule forever.
Install from the Shopify App Store. No theme changes.
Open ShipStar in Shopify admin and create a new rule.
Choose the action: hide a method for out-of-area destinations, or keep local delivery only where you serve.
Add the condition: country equals a value, or zip code is in a list, optionally combined with cart total.
Save and test: enter an address inside and outside the area and confirm the right options appear.
Put narrow zip-based rules above broad country rules so the specific case fires first. Rule priority and ordering are covered in our sorting guide.
Scaling geo rules
ShipStar Free covers one rule, enough for a single local-delivery radius or one out-of-area hide. Starter adds five rules for stores juggling domestic, remote, and international logic. Growth and Pro expand condition types for Markets and date ranges. See pricing on the ShipStar app page before mapping every region.
Merchant scenario: furniture store with local delivery
A furniture store offers free local delivery within a set of metro zip codes and standard freight everywhere else. Without a rule, every customer sees the local delivery option, including buyers two states away who then expect it.
With ShipStar they create a rule: show local delivery only when the zip code is in their service list, and hide it otherwise. A nearby customer sees free local delivery plus freight as a backup. A distant customer sees only freight. They add a second rule so local delivery is free over $300 but carries a fee below that, combining zip with cart total.
The store pairs this with a rename so freight reads "White-glove freight (7 to 10 days)" and a sort so local delivery appears first for customers who qualify.
Country rules and Shopify Markets
If you sell internationally through Shopify Markets, destination rules and market rules work together. You might show a domestic express carrier only in your home market while international markets see economy and tracked options. ShipStar supports a market condition alongside country and zip, so you can tailor the shipping step per market without spinning up separate stores.
Keep your zones as the broad foundation and use conditional rules for the exceptions. That layering keeps the setup easy to audit when you add a new market or carrier.
Testing geo rules before go-live
Run at least three test checkouts with different addresses:
In area: an address inside the radius should see the local or regional option.
Out of area: an address outside should not see it but should still have a valid fallback.
Edge zip: test a postal code on the boundary of your list to confirm the match.
Test on mobile checkout and verify that every destination still has at least one valid method. If a region ends up with no options, those customers cannot complete checkout.
Best practices
Use Shopify zones for broad geography and conditional rules only for the exceptions.
Keep a master list of service zip codes in a shared sheet so rules and ops stay in sync.
Always leave a fallback method for every region so checkout can complete.
Combine zip with cart total for free local delivery thresholds.
Pair geo rules with clear labels so customers understand the option.
Common mistakes
No fallback: hiding every method for a region blocks checkout entirely.
Stale zip lists: service areas change; audit the list when routes change.
Overlapping rules: a country rule and a zip rule that conflict can hide the wrong option; set priority.
Ignoring Markets: international markets often need different carriers than your home market.
Conclusion
Destination-based shipping rules keep checkout honest about what you can actually deliver. Shopify zones cover broad geography and should be your foundation. For zip-level radius, remote surcharges, and market-specific carriers, a checkout extension app like ShipStar adds the exceptions without code on every plan.
Start with one rule that fixes your biggest geography problem, such as limiting local delivery to your real service area, and verify it on a test checkout. Then extend to remote zones and market rules as you expand.
Top comments (0)