How do I restrict certain products to only show/sell in certain countries without using a Catalog

I can’t make another catalog which only sells to these specific countries applied to the certain products because it messes with the products visibility in those countries on Google Merchant. Is there any way I can make specific products only sell in Germany, Czech Republic, UK, France & US without using a catalog. My store URL is cheffings.net .

Thanks

Hi @lukafernada ,

I hope you are well!

Basically you have 3 options to restrict

  1. Shopify Markets + Product Restrictions

If you’re on Shopify Markets, you can:

  • Go to Settings → Markets.

  • Select the market (e.g., “Germany”).

  • Under Products, you can manage availability per market.
    :backhand_index_pointing_right: This way, the product only appears and sells in Germany, Czech Republic, UK, France, and US — and is hidden elsewhere.

:warning: Note: This method does not create a new “catalog,” so your Google Merchant feed won’t get broken up. Instead, Shopify hides the product at the checkout level for non-eligible markets.


2. Geolocation / Theme Conditional Logic

If you want more flexibility at the storefront level:

  • Use Shopify’s Liquid with IP-based geolocation (or Shopify’s free Geolocation app).

  • Example in Liquid (in main-product.liquid):

{% assign allowed_countries = "DE,CZ,GB,FR,US" | split: "," %}
{% if localization.country.iso_code contains allowed_countries %}
  <!-- Show Add to Cart button -->
  {{ form | payment_button }}
{% else %}
  <p>This product is not available in your country.</p>
{% endif %}

This uses the buyer’s detected country (localization.country.iso_code) and blocks the product if they’re outside your list.

:warning: Users can still “find” the product link if they change VPN/location, but they won’t be able to add to cart.


3. Restrict at Checkout (Hard Block)

If you want to absolutely prevent orders:

  • Add a shipping profile for those specific products.

  • Only assign shipping zones for Germany, Czech Republic, UK, France & US.

  • Result:

    • Visitors in other countries can see the product, but they cannot check out because no shipping option is available.

    • Cleaner user experience if you combine this with theme hiding (option 2).

With Option 3, despite not including the outside countries I don’t want in the shipping zones, will my primary existing shipping profile not allow the shipping of these items internationally since that one is set to apply to all products? Or does my new shipping profile override?

Shopify Shipping Profile Rules:

  • Every product must belong to exactly one profile.

  • If you don’t assign a product to a custom shipping profile, it automatically falls under the general profile (your “primary existing shipping profile”).

  • Once you create a new profile and assign products to it, those products are removed from the general profile and governed only by the new one.

What this means for your case

  • If you create a new profile (e.g. Restricted Products Profile) and add those items:

    • They will no longer use the rates from your general/global profile.

    • They’ll only ship to the zones you set (Germany, Czech Republic, UK, France & US).

  • Your other products remain in the general profile and still ship internationally.

So the new profile overrides the general one for the products you assign to it.

Also, you must know

  • If you forget to add a country/zone in the new profile, those products will appear unsellable in checkout for that location (“No shipping rates available”).

  • If you want the product to be visible but unpurchasable outside your zones, this is perfect.

  • If you want it completely hidden outside those zones, combine with Markets product restrictions or Liquid theme logic (as in Option 1 or 2).