Dependant layered navigation filters in Magento

Although not the best method, we wrote a quick and easy means to remove layered navigation filters that are dependant on other filters being enabled. This code should really be in the block and popped into an extension - with the attributes administrable via the backend, but for the purposes of this tutorial - we are just going to hardcode it into the template and let you decide how you want to improve it.
  • 1


    Open ./app/design/frontend/default/default/template/catalogue/layer/view.phtml
  • 2


     $_depends = array(
     "fits product" => array("product manufacturer")
    foreach ($_filters as $_filter):
    $_activeFilters[] = strtolower($_filter->getName());
    just before getStateHtml() ?>
  • 3


    Replace the contents of
     getFilters() ?>
     getItemsCount()): ?>
     $_filterDepends = &$_depends[strtolower($_filter->getName())];
     foreach ($_filterDepends as $_filterDepend):
     if (!in_array($_filterDepend,$_activeFilters) && $_showFilter) {
    $_showFilter = false;
    __($_filter->getName()) ?>
    getHtml() ?>
  • 4


    Change $_depends in step 1 to reflect the names of the attributes that have dependencies on each other.
     $_depends = array(
     "fits product" => array("product manufacturer")
    Ie. In our example, we do not want to display fits product until product manufacturer has been filtered.
  • andy

    this works great to show filter B after filter A has been selected


    is there a way to only show filters B and C after A has been selected?

    • There is a way to anything you want, get in touch with our team for a quote 😉

  • If you're using solr with Enterprise you want to do:


    In order to get the active filters.

  • Paul Young

    Is it possible to adapt this solution to only show certain filters if a user in in a particular category?

    • Of course it is - anything with Magento is possible, its just a case of time and money. But this is more of a 'working concept' than production solution.

      In practice, we don't perform any logic in the template files, but in the relevant blocks/models that precede those.

  • Mary Brook

    Hi, I recommend to take a look at Improved Navigation Extension by Amasty. it provides you with functionality to show certain filters according to dependent attributes. make sure at

  • Robert

    I know this is an old post, how would I use this to not display "fits product" or "model" until product manufacturer is filtered? Basically creating a double dependency.