B2B Navigation Logic (Dawn Theme) – Showing Wholesale Catalog for Logged-In B2B Customers

What’s your question? What do you want to achieve?

Hi Tim,

We’re running a blended Shopify store (Dawn theme) with B2B enabled, and I’m trying to clean up the experience for wholesale customers without over-engineering it.

Current setup:

  • B2B catalogs and pricing are working correctly
  • Logged-in B2B customers only see their assigned products/pricing (as expected)
  • We have a custom “Wholesale Catalog” navigation item meant to appear only for B2B customers

Issue:

  • The nav item shows correctly for some test B2B accounts, but does not appear for newly created B2B customers, even though their catalog access is working
  • Shopify support indicated this is likely tied to the customer.b2b? logic in the theme code controlling visibility

Goal:

  • Ensure the “Wholesale Catalog” nav item reliably displays for all logged-in B2B customers
  • Avoid unnecessary custom code if Shopify already has a cleaner/native approach

Questions:

  1. What is the best-practice way to conditionally show navigation items for B2B customers?
  2. Is customer.b2b? the correct/reliable variable to use, or is there a better condition?
  3. Would you recommend:
    • Fixing the conditional logic in the theme, or
    • Structuring this differently (e.g., collections, templates, or using Shopify’s Trade theme patterns)?

Appreciate any guidance on the cleanest, most maintainable approach.

(Optional) Store URL

The customer.b2b? is indeed the recommended way for Liquid checks as per Shopify dox – Support B2B customers in your theme.

If you have your wholesale set up as a Market, there is no need for liquid checks as you should be able to use specific configuration for this Market in “Edit theme”.
https://help.shopify.com/en/manual/online-store/themes/customizing-themes/store-contextualization (this is Plan-dependent though).

There is no special b2b checking in free Shopify themes as far as I remember.

Sorry, can’t get more specific without seeing your configuration.
There probably is no single best way.