Not every variant should be visible to every customer.
Wholesale buyers should see the 48-pack. VIP members should see the limited colourway. Customers outside your shipping regions shouldn't see the bundle that can't be delivered to them.
Shopify doesn't have a built-in way to control this at the variant level. You either show a variant to everyone or you don't have it in your catalogue. That's a frustrating limitation if you're running tiered pricing, a loyalty programme, a wholesale channel, or anything with region-specific products on a single storefront.
Here's how people usually handle it.
Camouflage lets you set up rules that show or hide specific variants based on the tags on a customer's account. So a variant tagged for wholesale customers stays hidden for everyone else and only appears once a wholesale buyer logs in.
Setup in the app is straightforward. Create a rule, set the condition to Customer Tag, enter the tag, choose the variants it applies to, save. When a customer logs in, their tags are read and the variant visibility updates on the spot without a page reload.
Customers who aren't logged in get treated as having no tags, so tag-gated variants default to hidden for anonymous visitors.
Same idea, different condition. You pick a country or a list of countries, and set whether the variant should be shown or hidden for visitors from those locations. Useful when you're selling across multiple regions from one store and certain products or sizes aren't available everywhere.
This is a lot simpler than managing separate storefronts or trying to configure Shopify Markets for something that's really just a storefront display preference.
If you're on Shopify Plus, B2B gives you proper wholesale catalogue management including price lists and product visibility by company. It's a solid option if wholesale is a significant part of your business and you're already on Plus. If you're not on Plus, it's not accessible.
A developer can build customer tag detection directly into your theme and conditionally render variants based on the logged-in user's data. It works well but needs maintaining whenever your theme updates, and any changes to the logic means going back to the developer.
Worth knowing: Camouflage lets you stack conditions. You could hide a variant for customers who are outside a specific country and don't have a particular tag. That kind of flexibility is useful if your variant visibility logic is a bit more involved than a simple on/off toggle.
Raj founded WeThinkPro in 2021 in Ghaziabad, India. He writes here once a month about Shopify development, the app store, and the merchant problems that keep him up at night.
Client-side variant hiding is a UX improvement. Someone with developer tools can still find the variant data in the page source. If you're selling access-controlled products where it genuinely matters who can buy what, you need to enforce that at checkout as well. For most use cases though, keeping the storefront clean is the entire point and this does that well.