Can I create subcategories within a large product collection?

Topic summary

A user with a 600+ SKU collection seeks a way to organize products into subcategories (Tables, Chairs, Beds, etc.) to improve navigation and prevent customers from scrolling through hundreds of items.

Current Situation:

  • No existing apps found with this capability
  • Customer experience concern: users would need to scroll extensively to find specific product types

Proposed Solution:
A respondent suggests a custom code approach:

  • Add navigation menu/dropdown in collection.liquid to display subcategory options
  • Implement filtering logic in collection-template.liquid using Liquid tags to filter products by selected subcategory
  • Code snippets provided show tag-based filtering mechanism

Status: Solution remains unverified; implementation requires theme code editing and technical knowledge of Liquid templating.

Summarized with AI on November 19. AI used: claude-sonnet-4-5-20250929.

I want to know if it is possible to add subcategories within a collection? The existing collection has over 600 sku’s. To find a product easily the collection needs to have sub"collections" in a sense. if you are looking for tables, you would have to search and scroll through hundreds of items to find what you’re looking for. Surely the customer would get bored! When a customer clicks on the Collection link it should open and they can then select the category of interest. Tables, Chairs, Bed etc. We searched for any app with this capability and there are none. Please advise.

Hello @LOVEROFOLE2022 ,

You can try to follow these steps:

Go to Online Store → Themes → Actions → Edit code

Go to collection.liquid file → add a navigation menu or a dropdown menu to represent the subcategories. Here’s an example code:


  
  

Go to collection-template.liquid or collection.liquid file

Add code to handle the subcategory filtering like this:

{% assign selectedSubcategory = request.params.subcategory %}

{% if selectedSubcategory %}
  {% assign filteredProducts = collection.products | where: 'tag', selectedSubcategory %}
{% else %}
  {% assign filteredProducts = collection.products %}
{% endif %}

{% for product in filteredProducts %}
  
{% endfor %}

Save and preview

Hope this can help.

Transcy