There are two ways to handle a product you cannot sell to a country. The first is to let the visitor find it, add it to cart, and then tell them at checkout that it cannot be shipped. The second is to not show it to them at all.
The first costs you the customer. They invested time in a product page, picked a variant, filled a cart, and only then met a wall. The second costs you nothing, because the restriction was never presented as a rejection.
Why Shopify does not do this natively
Shopify's visibility controls work at the channel and market level, not the visitor level. You can publish a product to specific sales channels, and you can control which products a market can buy. Those are catalogue decisions.
Country targeting is a different question: where is this visitor physically browsing from right now. Shopify alone has no switch that says "hide this product from visitors in this country", so you either write theme logic with Liquid, or you use an app that attaches content to visitor country. Shopify's market and catalogue controls are documented in markets if you want to compare the two approaches.
The four situations that actually need this
- Legal restrictions. Some goods cannot be sold into certain jurisdictions, or are subject to rules about labelling or age.
- Shipping restrictions. Batteries, aerosols, liquids and perishables cannot go by air, or cannot clear a particular border at all.
- Commercial logic. A distributor or exclusivity agreement means you cannot sell direct in a territory.
- Temporary suspensions. A courier outage or a customs backlog makes a destination unserviceable for a few weeks.
The first three are permanent conditions and suit hiding. The fourth is temporary, and hiding is usually the wrong answer because you want visitors to understand that it is temporary and come back.
Hiding a product, versus hiding a price
These solve different problems and the distinction matters.
- Hide the product. The product disappears from collections, search results and the cart for that country. Use this when the item genuinely cannot be sold there.
- Hide the price. The product is visible but the price is replaced by something like "Available on request" or a contact prompt. Use this where you can supply, but not at a price you can show, which is common when local tax or freight makes the online figure misleading.
Hiding the price keeps the product discoverable and indexable while avoiding a number you would have to renegotiate. Hiding the product removes the temptation entirely.
Choose the least invasive tool that works
| Method | Best for | Trade-off |
|---|---|---|
| Theme code (Liquid) | Permanent, rarely changing rules | Developer needed, deploy per change |
| Geolocation app rule | Rules that change, or that marketing owns | Depends on country detection accuracy |
| Checkout blocking | Explaining a temporary restriction | Visitor had already decided to buy |
| Market availability | Catalogue-level, whole-market decisions | Not per-visitor country |
Setting it up
- List the restricted products and the countries. Be specific. "EU" is not a country and the rules inside it differ.
- Decide hide versus block for each one, using the guidance above.
- Create the rule with the products and the target countries, and set it Active.
- Check the collection pages, not just the product page. A hidden product that still appears in a collection grid is worse than one left visible.
- Decide what the visitor sees instead. An empty collection looks broken. A short message explaining that some products are not available in their region looks deliberate.
Two things that catch people out
1. Search engines and the sitemap
If a product is hidden from human visitors in a country but still listed in your sitemap, search engines will keep sending people to a page they cannot use. Either keep the page genuinely useful for those visitors, or remove the URL from the sitemap so searches stop pointing at it.
2. Country detection is not infallible
Anyone travelling, on a corporate network or on a VPN may be detected in the wrong country. Hiding a product is a low-risk response to that, because the visitor sees a smaller catalogue rather than an error. Blocking a checkout is a high-risk response, because the wrong visitor gets a hard failure. This is a good reason to prefer hiding over blocking wherever the restriction allows it.
Frequently asked questions
Can Shopify hide a product from one country only?
Not natively. Shopify controls visibility with sales channel publishing and market availability, which is not the same as hiding from visitors physically in one country. Hiding by visitor country needs a geolocation rule or a theme change.
Should I hide the product or block the checkout?
Hiding suits permanent restrictions, because the visitor never forms the intent to buy. Blocking suits cases where you want to explain the situation, such as a temporary shipping suspension.
Does hiding a product by country hurt SEO?
It can, if you hide it from search crawlers as well as shoppers. Hide it for the visitor after they arrive and let the page stay crawlable, or drop the URL from your sitemap so search engines do not send people to a page they cannot use.