Store setup: Shopify Plus. Single primary US market. Markets only shows US states as regions no territories listed anywhere.
The problem:
US territories like Puerto Rico, Guam, and US Virgin Islands are appearing as selectable options in the checkout country/region dropdown even though they are not added to any shipping zone and not listed anywhere in Markets settings. Because no shipping rates exist for them, customers who select these locations hit a dead end with “no shipping methods available.”
What I’ve checked:
Shipping zones US territories are not added to any zone
Markets → Primary Market (US) only shows states/regions, no option to add or remove territories
No secondary or international market exists where these territories are assigned
There is no visible way in the admin to block or hide specific territories from appearing at checkout
What I want:
Either remove these territories from the checkout dropdown entirely so customers cannot select them, or understand why Shopify is showing them despite no shipping zone or market being configured for them.
Questions:
Why does Shopify show US territories at checkout when they are not part of any shipping zone or market?
Is there a way to remove or hide specific territories from the checkout without a custom app or code?
If not, what is the recommended approach on Shopify Plus checkout extension, theme code, or something else?
Since you’re on Shopify Plus, there are a couple of approaches worth exploring for your specific case.
The territories can’t be removed from the dropdown natively, but you can intercept what happens when a customer selects one. Two options I’ve seen that could work:
Cart and Checkout Validation Function: lets you add server-side logic that checks the selected province code and blocks checkout with a proper error message (“We don’t ship to this location”) instead of the confusing “no shipping methods available” dead end. This is probably the cleaner of the two options.
Checkout UI Extension with block_progress: uses the useShippingAddress API to read the province in real time and intercept checkout progress when a blocked territory is selected.
Both require some dev work. If you don’t have a developer handy, it might be worth checking the App Store for a Checkout Validation app that supports province/state blocklists.
Most U.S. territories can be shipped to using domestic shipping services.
You may just need to adjust your shipping fees by creating a new shipping zone, say, to charge more than other states and add a margin if you need to cover additional costs. If you are using real-time carrier shipping rates, it would be calculated automatically.
Yeah, this is a frustrating gap in Shopify’s checkout defaults. The territories show up because they’re baked into Shopify’s country list at the checkout level, separate from your shipping zones and markets config. No native admin toggle removes them.
Your best path on Plus is a checkout extension. You’d use the `@shopify/checkout-ui-extensions` to hook into the delivery address section and filter the country picker before it renders. Basically intercept the country list, remove PR/GU/VI, and pass back the cleaned array.
Alternatively, you can configure validation rules using Checkout Boost, which provides an UI layer with highly configurable functions+extensions.
Many Plus merchants just add those territories to a shipping zone and a delivery message like “We don’t currently ship here.” Not elegant, but it stops the dead-end experience.
Appreciate the detailed explanation. This is one of those issues that can be confusing until you run into it yourself. The breakdown of the limitations and possible workarounds was very helpful. Thanks for taking the time to share it.