aurmil / magento-customize-price-filter

Allows to customize the layered navigation price filter with some options (e.g. custom price ranges)
MIT License
19 stars 7 forks source link

Magento - Customize price filter extension

Overview

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]".

Compatibility

Tested on Magento CE 1.6 - 1.9

Notes

Installation

No Magento files will be modified but following classes will be extended and some of their methods overridden:

With modman

Manually

With composer

{
    "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": "./"
    }
}

Usage

In System > Configuration > Catalog > Catalog > Layered Navigation, this extension adds three new options:

Enable/disable 0.01 subtraction from the highest value of each price range

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.

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.

Enable/disable using text in the first range label

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.

The text/translation can be modified, if needed, in app/locale/xx_XX/Aurmil_CustomizePriceFilter.csv files.

Use custom price ranges

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:

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.

Uninstall

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à.

License

The MIT License (MIT). Please see License File for more information.