How to add wholesale page without an app 2.0 for Impulse 7.1.0

Topic summary

A user successfully created a wholesale page on Impulse 7.1.0 without using an app, but the solution process was complex and not fully documented.

Original Problem:

  • After upgrading from Impulse 4.1.4 to 7.1.0, the previous wholesale setup stopped working
  • Attempted to follow pre-2.0 tutorials that involved editing theme.liquid and replacing {{ content_for_layout }} with conditional code to check for wholesale customer tags
  • Could not locate expected code snippets like {% for link in linklists.main-menu.links %}

Resolution Status:

  • The original poster resolved the issue after approximately 3 weeks of daily troubleshooting
  • However, they cannot recall the exact solution or steps taken
  • Mentioned playing with different code variations and possibly combining elements from multiple sources

Current State:

  • Multiple users are requesting details about the solution
  • No concrete answer or reproducible steps have been shared
  • The discussion remains unresolved for others facing the same issue with Impulse 7.1.0
Summarized with AI on November 22. AI used: claude-sonnet-4-5-20250929.

Hello,

I just updated my website from Impulse 4.1.4 prior to 2.0 and I had a seperate wholesale page that worked with a different navigation for wholesalers. All was peachy.

A week ago I updated my theme to Impulse 7.1.0 and am following these 2 links (both describing how to add wholesale without an app). Yes I know I can use an app but came to Shopify from Squarespace where you could have a separate wholesale that was hidden and there was no add on app necessary.

Been trying everything I can think of to get it to work. I don’t know code just learning bits as I go along and keep trying different things.

These are the two links I’m referring too (they explain the steps prior to 2.0):

https://www.envision.io/blogs/ecommerce-pulse/80312001-how-to-add-a-wholesale-area-to-your-shopify-store-without-an-app

https://ecomexperts.io/blogs/liquid-tutorial-shopify/add-wholesale-area-to-your-shopify-store-without-the-app-easy-step-by-step-tutorial

So in a nutshell you:

  1. Edit theme.liquid look for {{ content_for_layout }} and replace it with

{% if template contains ‘wholesale’ %}
{% if customer %}
{% if customer.tags contains ‘wholesale’ %}
{{ content_for_layout }}
{% else %}
{% include ‘wholesale-note’ %}
{% endif %}
{% else %}
{% include ‘wholesale-note’ %}
{% endif %}
{% else%}
{{ content_for_layout }}
{% endif %}

  1. Add a snippet called “wholesale-note”

paste in this code:

This page is for approved wholesale customers only.

{% unless customer %} Log in to your account | {% endunless %} Contact us to request a wholesale account.

  1. Add some templates page.wholesale, product.wholesale, collection.wholesale (now they suggest liquid for all of these as it’s supposed to generate it’s own code but no longer does in 2.0 so as suggested under the first article and a you tube of the second article I was told to make all these json files instead of liquid files which I did.

  2. Create a bunch of wholesale products and tag them all wholesale and make sure you use the wholesale template (did that as I had this working in an older version of Impulse)

  3. Add wholesale tag to your wholesale customers which I did (made an account for myself so I can keep checking this out)

  4. Here is where I’m stumped:

In your theme editor, open theme.liquid and search for “main-menu.” If you don’t find anything, try searching for “navigation,” “site-nav,” “nav,” “menu.”

You can also look in the Snippets folder for a snippet called “site-nav,” “navigation,” or “dropdown.”

If your theme uses Sections, look in Sections > header.liquid.

The main thing we’re looking for is the following code:

{% for link in linklists.main-menu.links %} or {% for link in linklists[section.settings.main_linklist].links %}

then replace it with this code:

{% assign menu_handle = ‘main-menu’ %}
{% if customer %}
{% if customer.tags contains ‘wholesale’ %}
{% assign menu_handle = ‘main-menu-wholesale’ %}
{% endif %}
{% endif %}
{% for link in linklists[menu_handle].links %}

I don’t see {% for link in linklists.main-menu.links %} or {% for link in linklists[section.settings.main_linklist].links %} except something similar in line 2 of the header.liquid (see full header.liquid code below)

I used a partial code in my current sections header.liquid 7.1.0 theme which is live and then a copy 7.1.0 that isn’t live.

{% if customer %}

{% if customer.tags contains ‘wholesale’ %}

{% assign main_menu = linklists[‘main-menu-wholesale’] %}

{% endif %}

{% endif %}

I didn’t see If I try to use the full code mentioned in step 6 I get schema errors which I don’t know how to fix it. I can see the header on the wholesale page on my backup copy and the number of products but where the products are it is blank. Attaching a photo.

Here is what my header.liquid looks like:

{%- liquid
assign main_menu = linklists[section.settings.main_menu_link_list]
assign toolbar_menu = linklists[section.settings.toolbar_menu]

assign logo_alignment = ‘left’
if section.settings.main_menu_alignment == ‘center-left’ or section.settings.main_menu_alignment == ‘center-split’ or section.settings.main_menu_alignment == ‘center’ or section.settings.main_menu_alignment == ‘center-drawer’
assign logo_alignment = ‘center’
endif

assign dropdown_alignment = ‘left’
if section.settings.main_menu_alignment == ‘left-center’ or section.settings.main_menu_alignment == ‘center-split’ or section.settings.main_menu_alignment == ‘center’
assign dropdown_alignment = ‘center’
endif

assign template_name = template | replace: ‘.’, ’ ’ | truncatewords: 2, ‘’ | handle

assign sticky_header = false
if section.settings.header_style == ‘sticky’
assign sticky_header = true
endif
assign overlay_header = false
if template_name == ‘index’ and section.settings.sticky_index
assign overlay_header = true
endif
if template_name contains ‘collection’ and collection.image and section.settings.sticky_collection
assign overlay_header = true
endif
-%}

{% if customer %}
{% if customer.tags contains ‘wholesale’ %}
{% assign main_menu = linklists[‘main-menu-wholesale’] %}
{% endif %}
{% endif %}

{%- render ‘drawer-menu’,
section: section,
main_menu: main_menu,
toolbar_menu: toolbar_menu,
logo_alignment: logo_alignment
-%}
{%- render ‘cart-drawer’ -%}

.site-nav__link, .site-nav__dropdown-link:not(.site-nav__dropdown-link--top-level) { font-size: {{ settings.type_navigation_size }}px; } {% if settings.type_navigation_capitalize %} .site-nav__link, .mobile-nav__link--top-level { text-transform: uppercase; letter-spacing: 0.2em; } .mobile-nav__link--top-level { font-size: 1.1em; } {% endif %} {% if mainmenu.length > 6 %} .site-nav__link { padding-left: 10px; padding-right: 10px; } {% endif %} {% unless section.settings.mega_menu_images %} .megamenu__colection-image { display: none; } {% endunless %} {%- if settings.color_header == settings.color_body_bg or settings.color_body_bg contains settings.color_header -%} .site-header { box-shadow: 0 0 1px rgba(0,0,0,0.2); } .toolbar + .header-sticky-wrapper .site-header { border-top: 0; } {%- endif -%} {%- if settings.color_announcement == settings.color_body_bg -%} .announcement-bar { border-bottom: 1px solid; } {%- endif -%}
{%- if overlay_header or section.settings.announcement_above_header -%} {%- render 'announcement-bar', section: section -%} {%- endif -%}

{%- unless overlay_header -%}
{%- if section.settings.show_locale_selector or section.settings.show_currency_selector or section.settings.toolbar_social or section.settings.toolbar_menu != blank -%}
{%- render ‘toolbar’,
section: section,
toolbar_menu: toolbar_menu,
overlay_header: overlay_header
-%}
{%- endif -%}
{%- endunless -%}

{%- if overlay_header -%}
{%- if section.settings.show_locale_selector or section.settings.show_currency_selector or section.settings.toolbar_social or section.settings.toolbar_menu != blank -%}
{%- render ‘toolbar’,
section: section,
toolbar_menu: toolbar_menu,
overlay_header: overlay_header
-%}
{%- endif -%}
{%- endif -%}

{%- if logo_alignment == ‘left’ -%}

{%- render 'header-logo-block', section: section -%}
{%- endif -%}

{%- if logo_alignment == ‘left’ and section.settings.main_menu_alignment != ‘left-drawer’ -%}

{%- render 'header-desktop-nav', main_menu: main_menu, dropdown_alignment: dropdown_alignment -%}
{%- endif -%}

{%- if logo_alignment == ‘center’ -%}

{%- if section.settings.main_menu_alignment == 'center' or section.settings.main_menu_alignment == 'center-split' -%} {%- if settings.search_enable -%} {%- endif -%} {%- endif -%}

{%- if section.settings.main_menu_alignment == ‘center-left’ -%}
{%- render ‘header-desktop-nav’, main_menu: main_menu, dropdown_alignment: dropdown_alignment -%}
{%- endif -%}

{{ 'general.drawers.navigation' | t }}

{%- if section.settings.main_menu_alignment == ‘center-split’ -%}
{%- render ‘header-split-nav’, main_menu: main_menu, section: section, dropdown_alignment: dropdown_alignment -%}
{%- endif -%}

{%- if section.settings.main_menu_alignment != ‘center-split’ -%}

{%- render 'header-logo-block', section: section -%}
{%- endif -%} {%- endif -%}
{%- render 'header-icons', section: section -%}

{%- if section.settings.main_menu_alignment == ‘center’ -%}

{%- render 'header-desktop-nav', main_menu: main_menu, dropdown_alignment: dropdown_alignment -%}
{%- endif -%}
{{ 'general.search.submit' | t }} {{ 'general.accessibility.close_modal' | t | json }} {{ 'general.search.submit' | t }} {{ 'general.accessibility.close_modal' | t | json }}
{%- if settings.predictive_search_enabled -%}
{{ 'general.search.view_more' | t }}
{%- endif -%}

{%- unless overlay_header or section.settings.announcement_above_header -%}
{%- render ‘announcement-bar’, section: section -%}
{%- endunless -%}

{% schema %}
{
“name”: “t:sections.header.name”,
“settings”: [
{
“type”: “link_list”,
“id”: “main_menu_link_list”,
“label”: “t:sections.header.settings.main_menu_link_list.label”,
“default”: “main-menu”
},
{
“type”: “checkbox”,
“id”: “mega_menu_images”,
“label”: “t:sections.header.settings.mega_menu_images.label”,
“default”: true,
“info”: “t:sections.header.settings.mega_menu_images.info”
},
{
“type”: “select”,
“id”: “main_menu_alignment”,
“label”: “t:sections.header.settings.main_menu_alignment.label”,
“default”: “left”,
“options”: [
{
“value”: “left”,
“label”: “t:sections.header.settings.main_menu_alignment.options.left.label”
},
{
“value”: “left-center”,
“label”: “t:sections.header.settings.main_menu_alignment.options.left-center.label”
},
{
“value”: “left-drawer”,
“label”: “t:sections.header.settings.main_menu_alignment.options.left-drawer.label”
},
{
“value”: “center-left”,
“label”: “t:sections.header.settings.main_menu_alignment.options.center-left.label”
},
{
“value”: “center-split”,
“label”: “t:sections.header.settings.main_menu_alignment.options.center-split.label”
},
{
“value”: “center”,
“label”: “t:sections.header.settings.main_menu_alignment.options.center.label”
},
{
“value”: “center-drawer”,
“label”: “t:sections.header.settings.main_menu_alignment.options.center-drawer.label”
}
]
},
{
“type”: “select”,
“id”: “header_style”,
“label”: “t:sections.header.settings.header_style.label”,
“default”: “normal”,
“options”: [
{
“value”: “normal”,
“label”: “t:sections.header.settings.header_style.options.normal.label”
},
{
“value”: “sticky”,
“label”: “t:sections.header.settings.header_style.options.sticky.label”
}
]
},
{
“type”: “checkbox”,
“id”: “sticky_index”,
“label”: “t:sections.header.settings.sticky_index.label”,
“default”: false
},
{
“type”: “checkbox”,
“id”: “sticky_collection”,
“label”: “t:sections.header.settings.sticky_collection.label”,
“info”: “t:sections.header.settings.sticky_collection.info”,
“default”: false
},
{
“type”: “header”,
“content”: “t:sections.header.settings.header_announcement_bar”
},
{
“type”: “checkbox”,
“id”: “announcement_compact”,
“label”: “t:sections.header.settings.announcement_compact.label”
},
{
“type”: “checkbox”,
“id”: “announcement_above_header”,
“label”: “t:sections.header.settings.announcement_above_header.label”
},
{
“type”: “header”,
“content”: “t:sections.header.settings.header_toolbar”
},
{
“type”: “link_list”,
“id”: “toolbar_menu”,
“label”: “t:sections.header.settings.toolbar_menu.label”,
“info”: “t:sections.header.settings.toolbar_menu.info”
},
{
“type”: “checkbox”,
“id”: “toolbar_social”,
“label”: “t:sections.header.settings.toolbar_social.label”
},
{
“type”: “header”,
“content”: “t:sections.header.settings.header_language_selector”,
“info”: “t:sections.header.settings.header_language_selector”
},
{
“type”: “checkbox”,
“id”: “show_locale_selector”,
“label”: “t:sections.header.settings.show_locale_selector.label”,
“default”: true
},
{
“type”: “header”,
“content”: “t:sections.header.settings.header_currency_selector”,
“info”: “t:sections.header.settings.header_currency_selector”
},
{
“type”: “checkbox”,
“id”: “show_currency_selector”,
“label”: “t:sections.header.settings.show_currency_selector.label”,
“default”: true
},
{
“type”: “checkbox”,
“id”: “show_currency_flags”,
“label”: “t:sections.header.settings.show_currency_flags.label”,
“default”: true
}
],
“blocks”: [
{
“type”: “logo”,
“name”: “t:sections.header.blocks.logo.name”,
“limit”: 1,
“settings”: [
{
“type”: “image_picker”,
“id”: “logo”,
“label”: “t:sections.header.blocks.logo.settings.logo.label”
},
{
“type”: “image_picker”,
“id”: “logo-inverted”,
“label”: “t:sections.header.blocks.logo.settings.logo-inverted.label”,
“info”: “t:sections.header.blocks.logo.settings.logo-inverted.info”
},
{
“type”: “range”,
“id”: “desktop_logo_width”,
“label”: “t:sections.header.blocks.logo.settings.desktop_logo_width.label”,
“default”: 200,
“min”: 100,
“max”: 400,
“step”: 10,
“unit”: “px”
},
{
“type”: “range”,
“id”: “mobile_logo_width”,
“label”: “t:sections.header.blocks.logo.settings.mobile_logo_width.label”,
“default”: 140,
“min”: 60,
“max”: 200,
“step”: 10,
“unit”: “px”,
“info”: “t:sections.header.blocks.logo.settings.mobile_logo_width.info”
}
]
},
{
“type”: “announcement”,
“name”: “t:sections.header.blocks.announcement.name”,
“limit”: 3,
“settings”: [
{
“type”: “text”,
“id”: “text”,
“label”: “t:sections.header.blocks.announcement.settings.text.label”,
“default”: “Hassle-free returns”
},
{
“type”: “text”,
“id”: “link_text”,
“label”: “t:sections.header.blocks.announcement.settings.link_text.label”,
“default”: “30-day postage paid returns”
},
{
“type”: “url”,
“id”: “link”,
“label”: “t:sections.header.blocks.announcement.settings.link.label”
}
]
}
],
“default”: {
“settings”: {}
}
}
{% endschema %}

I figured this out last night. Maybe posting it all here helped.

so how did you figure it out ? because i cant lol

1 Like

How did you solve this? I can’t seem to find “{% for link in linklists.main-menu.links %}” in any of my code.

Took me about 3 weeks and hours a day to work on this. I can’t remember exactly what I did. Never found {% for link in linklists.main-menu.links %} or {% for link in linklists[section.settings.main_linklist].links %} so don’t think I deleted anything. Are you using Impulse theme?

I honestly just kept playing around with different lines of code. I had posted this question before and someone on here had mentioned some code so maybe I used some of that with what I already had from a tutorial online I followed.

It’s been a few months since I did this and I don’t remember exactly how I solved it. Are you using Impulse 7.1.0?