Magento – How to add custom attributes as top navigation menu items

attributesce-1.9.1.0custom-attributesmagento-1.9menu

I am trying to categorize my products by different attributes for easy cross-match layered navigation. Example:

  • (category) shoes, clothes… // i have these categories already
  • (color): red, black… // attribute
  • (material): leather, fabric… // attribute
  • etc.

Achieving this by creating categories only for the attributes is not helpful as it seems Magento cannot cross-match 2 different categories. Also repeating the same properties as a subcategory for each item is not a good option for this store in particular (e.g. Shoes/red, Shoes/black, T-shirt/red, T-shirt/black etc) . So I am looking for a way to give the customer the ability to browse not only by category but also by attributes and cross match those at any time. Example: start by material Leather and then cross-match it with color Red in layered navigation.

So instead of having the default menu structure:

Cat1 Cat2 Cat3 … (with subcategories)

I want to have a top menu like:

Browse by: Category Attr1 Attr2 Attr3

Where hovering Category will unfold the subcategories and AttrN will unfold the used values for the custom attribute.

This will also help to avoid the current problem of having too many root-level categories (resulting in multi-line top menu).

How can I achieve this?

Best Answer

This may not be exactly what you need, and it will not work if you have a lot of attributes but it might help you.
I recommend you this free extension. It allows you to build custom product lists and add links to them in the main menu based on some rules. The rules are managed in the same way as you manage the catalog discount rules.
A full description on what it does and how can be found here.

So you have to create a rule for each attribute and each value of that attribute.
You might need to work a bit on it to group the menu items somehow.
Like I said, if you have a lot of attributes and a lot of values for them it may not work for you.