How to make a custom attribute in magento to show as range in layered navigation like price any ideas please help
So in principle what you will need to do is create your own model for the filter and then in this model create a function
_getItemsData. This function will create all the filter items that need to be shown, in your case the different ranges. Each item should be in the following format.
$data = array( 'label' => 'String To show for the filter', 'value' => $fromValue . '-' . $toValue, 'count' => 'How many items are in this range', );
When you create a filter block you can attach a model for calulating it's data via
$this->_filterModelName = 'your/layer_filter_model';
How to add new filters I am not completely sure but once that has been sorted the key is getting the data items. You can look into how the price filter works and mirror this.
You can accomplish this with the Improved Layered Navigation extension.
To create a new numeric attribute (e.g. length, width, height) please follow these steps:
- Go to admin panel > Catalog > Attributes > Manage Attributes > Create New
- Choose catalog input type ‘Price’ for numeric attributes if you would like to use sliders for them.
- Set the ‘Use in Layered Navigation’ option to ‘Filterable’.
- Once you create the ‘price’ attributes please go to Catalog > Improved Navigation > Filters and click ‘Load’ button. After that, the numeric attributes will appear in the list of filters.