I'd build a three-layer gate: first, a Liquid tag check on the collection template itself that throws a 404 for anyone without the b2b tag trying to access restricted handles; second, hide those collections from navigation and search results for retail eyes only; third, a verification workflow in Shopify Flow to tag qualifying customers automatically or flag them for staff review. The key is that the 404 is the enforcement layer — the nav hiding is just UX polish.
A wholesale-focused DTC on a standard Plus or higher plan needed to completely hide B2B collections from retail customers. Rather than redirecting or showing a generic message, non-verified accounts should encounter a 404 page, while tagged B2B accounts see the collections normally.
Four pieces
Storefront
Collection Tag Gate
Checks if the logged-in customer has the b2b tag; if not, renders a 404 page instead of the collection.
Theme collection template + Liquid
theme/templates/collection.json (or theme/snippets/collection-gate.liquid called early in the template)liquid
Replace 'wholesale' and 'b2b-only' with your actual collection handles. The tag name 'b2b' must match the tag you assign to B2B customer records in the Shopify admin.
B2B / Wholesale
B2B Customer Tag Sync
Automatically tags customers in Shopify when they sign up through your B2B company portal or are manually approved.
Tags passed as an array replace existing tags entirely; to append without removing others, fetch the customer's current tags first, merge, then update.
Storefront
Search & Nav Blackout
Removes wholesale collections from search results and main navigation menus for retail customers; B2B accounts see them normally.
Theme snippets + Liquid conditionals
theme/snippets/main-nav.liquid (or your header/navigation snippet)liquid
{% assign show_wholesale_nav = false %}
{% if customer and customer.tags contains 'b2b' %}
{% assign show_wholesale_nav = true %}
{% endif %}
<!-- In your navigation or menu loop: -->
{% for link in linklists.main-menu.links %}
{% assign is_wholesale_collection = false %}
{% if link.type == 'collection_link' %}
{% if link.object.handle == 'wholesale' or link.object.handle == 'b2b-only' %}
{% assign is_wholesale_collection = true %}
{% endif %}
{% endif %}
{% unless is_wholesale_collection and show_wholesale_nav == false %}
<li><a href="{{ link.url }}">{{ link.title }}</a></li>
{% endunless %}
{% endfor %}
Adjust the collection handle list to match your wholesale collections. This hides links but does not prevent direct URL access — rely on the Collection Tag Gate for that enforcement.
Operations
B2B Verification Workflow
A manual or automated process to review and tag new accounts as B2B within the Shopify admin, so they unlock collection access immediately.
Shopify Flow + admin custom columns
Shopify Flow editor: When → Thenflow
Trigger: Customer created or updated (by staff in admin)
Condition: Customer.email contains specific domain (e.g., @yourb2bpartner.com) OR customer added to a specific group/tag
Then: Tag customer with "b2b"
Alternative: Trigger a Shopify admin notification for manual review → Staff reviews → Tags customer in admin directly
For semi-automated: Trigger on order > X value from new customer → Assign "b2b" tag → Send approval email to staff.
Pure automation (domain-based tagging) is fast but may mis-tag. Manual review is slower but safer. Hybrid (threshold-based notification) balances both.
Got a similar problem?
Sketch your build in 30 seconds — voice, type, or attach a screenshot.