Blog Sections Open

Creating Checkbox-Based Catalog Filters with tagManager

Checkbox filters are one of the simplest ways to make a catalog easier to browse, as long as the URLs and filter templates stay consistent.

A follow-up tagManager note from the old archive focused on a smaller but important piece of the same catalog problem: how to render checkbox filters cleanly and keep the filter URL format understandable.

Example filter row

<div class="filter_row">
    <input type="checkbox" id="[[+name]]__[[+index]]" name="f_[[+name]][]" value="[[+value]]" />
    <a class="label" href="[[+url]]?f_[[+name]]=[[+value]]">[[+value]]</a>
</div>

Filter container

<div id="filters">
[[!tmCatalogFilters?
  &jsMap=`1`
  &innerTpl=`filters_innerTpl`
  &outerTpl=`filters_outerTpl`
  &priceName=`cena-skidka`
]]
</div>

Why this approach is still useful

Even if your current stack uses a different frontend layer, the principle is still solid:

  • the input name should tell you which filter group is being changed
  • the public URL should remain readable and reproducible
  • templates should not guess the filter state from random markup
  • the same rendering logic should work with and without JavaScript enhancements

On older Evo stores this kind of setup often solved a very practical problem: editors could add products and product attributes in the manager, while the storefront kept using one reusable filtering layer instead of hard-coded category pages for every attribute combination.

Newer post

Rendering Checkbox TV Values with DocInfo and DocLister

How to turn stored checkbox TV values into readable output in Evolution CMS by combining a helper snippet, DocInfo, and DocLister.

Older post

Building AJAX Catalog Filters with tagManager and getPage

A practical pattern for building AJAX-driven catalog filters in Evolution CMS with tagManager, custom templates, and getPage pagination.