Magento is able to display price ranges in the layered navigation. It offers 3 ways to calculate price step. But none of them allows to specify exactly the price ranges you want to see.
Another point is that Magento subtracts 0.01 to the highest value of each price range when displaying them. I.e. if range is "100-200", Magento will display "100.00 - 199.99".
This extension allows you to set the exact price ranges you need (globally, per store and/or per category), to disable subtraction of 0.01 and to display "Up to [price]" instead of "0.00 - [price]".
Tested on Magento CE 1.6 - 1.9
- Free and open source
- Fully configurable
- Bundled with English and French translations
No Magento files will be modified but following classes will be extended and some of their methods overridden:
- Mage_Catalog_Model_Layer_Filter_Price
- Mage_Catalog_Model_Resource_Layer_Filter_Price
$ modman clone https://github.com/aurmil/magento-customize-price-filter.git
- Download the latest version of this module here
- Unzip it
- Move the "app" folder into the root directory of your Magento application, it will be merged with the existing "app" folder
- Adapt the following "composer.json" file into yours:
{
"require": {
"aurmil/magento-customize-price-filter": "dev-master"
},
"repositories": [
{
"type": "composer",
"url": "http://packages.firegento.com"
},
{
"type": "vcs",
"url": "git://github.com/aurmil/magento-customize-price-filter"
}
],
"extra": {
"magento-root-dir": "./"
}
}
- Install or update your composer project dependencies
In System > Configuration > Catalog > Catalog > Layered Navigation, this extension adds three new options:
Allows to display, for example, "100.00 - 200.00" instead of "100.00 - 199.99".
This option is available regardless of the value set for Price Navigation Step Calculation and has absolutely no effect on Magento CE < 1.7 as these versions do not substract 0.01.
- Select "Yes" (default value) to stay with the Magento default behavior
- Select "No" to disable subtraction
When disabling subtraction, the price filter becomes inclusive. This means that if the upper value of a range is X, products with min price equals exactly X will be listed (and counted in) for this filter.
Allows to display, for example, "Up to 99.99" instead of "0.00 - 99.99".
This option is available regardless of the value set for Price Navigation Step Calculation.
- Select "Yes" to display text
- Select "No" (default value) to stay with the Magento default behavior
The text/translation can be modified, if needed, in app/locale/xx_XX/Aurmil_CustomizePriceFilter.csv files.
Note about the screenshot: you can see a semicolon at the end of the field. This is just because the value continues on the right, this is not the last character of the price range.
This option is only available if you choose Manual for Price Navigation Step Calculation.
Leaving this field empty means stay with the Magento basic behavior for manual calculation.
You have to stick to this format:
- ; separates prices ranges
- - separates min and max values of a given range
- values must be integers
- min value of the first range and max value of the last range are optional
In Catalog > Manage Categories, this extension adds a new category attribute: Price Ranges in the Display Settings tab panel.
This attribute allows you to override the price ranges configuration option for each catalog category. It will be considered when browsing the corresponding category frontend page.
Leaving this field empty means using the price ranges configuration option.
If you disable the module or completely remove the files, you will get an error as the catalog category attribute is still in DB and its backend model can not be found anymore.
So remove "filter_price_ranges" attribute from "eav_attribute" table and "aurmil_customizepricefilter_setup" entry from "core_resource" table then clear caches, rebuild indexes and voilà.
The MIT License (MIT). Please see License File for more information.