PHPackages                             mage2kishan/module-sale-filter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. mage2kishan/module-sale-filter

ActiveMagento2-module[Search &amp; Filtering](/categories/search)

mage2kishan/module-sale-filter
==============================

Panth Sale Filter — "On Sale" layered navigation filter for Magento 2, backed by a custom indexer that respects catalog rules, special prices, customer groups, websites, and all product types (simple, configurable, grouped, bundle, virtual, downloadable). Hyva and Luma compatible.

1.0.20(1mo ago)011proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since Apr 22Pushed 1mo agoCompare

[ Source](https://github.com/mage2sk/module-sale-filter)[ Packagist](https://packagist.org/packages/mage2kishan/module-sale-filter)[ Docs](https://kishansavaliya.com)[ RSS](/packages/mage2kishan-module-sale-filter/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (26)Versions (21)Used By (1)

Magento 2 Sale Filter Extension: "On Sale" Layered Navigation Filter (Hyva + Luma)
==================================================================================

[](#magento-2-sale-filter-extension-on-sale-layered-navigation-filter-hyva--luma)

[![Magento 2.4.4 - 2.4.8](https://camo.githubusercontent.com/079c832211eed4f9451ebe264e3865f825b0f9f31b041cbf03676c6e254535d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e342532302d2d253230322e342e382d6f72616e67653f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://magento.com)[![PHP 8.1 - 8.4](https://camo.githubusercontent.com/56b3cce18841623e2cbed2ebf09b06be1be8807e99e6e054a89d304ab4790b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532302d2d253230382e342d626c75653f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)[![Hyva + Luma](https://camo.githubusercontent.com/d4d6a05401973034a5aae392f030440eefa40afc9191ffb06ed897af5d25adb1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5468656d65732d487976612532302532422532304c756d612d313462386136)](https://www.hyva.io)[![Live Demo & Details](https://camo.githubusercontent.com/8fdc637edb3b8221d1e0cf234b11af54158b502661433ebc79458564936c6dbd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c69766525323044656d6f25323025323625323044657461696c732d6d6167656e746f2d2d322d2d73616c652d2d66696c7465722d3044393438383f7374796c653d666c6174)](https://kishansavaliya.com/magento-2-sale-filter.html)[![Packagist](https://camo.githubusercontent.com/b6f35cd9cd54ca992cc2539cbf7985d7a22496654b863a7aefef37b98ccae0d2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d6d616765326b697368616e2532466d6f64756c652d2d73616c652d2d66696c7465722d6f72616e67653f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/mage2kishan/module-sale-filter)[![Upwork Top Rated Plus](https://camo.githubusercontent.com/6f72584179420c41ed90432fd2579a4ed36199d4229e8181d20f353c1c4ee4eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5570776f726b2d546f702532305261746564253230506c75732d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)[![Website](https://camo.githubusercontent.com/f1ae86d28e2b505aee60f240d3e5508e390b0a8dc7a9b7ecf1b450fad862053f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d6b697368616e736176616c6979612e636f6d2d304439343838)](https://kishansavaliya.com)

> **Let shoppers narrow any category or search result to discounted products in one click.** Panth Sale Filter adds an "On Sale" option to Magento 2 layered navigation, backed by a dedicated indexer that reads catalog rules, special prices, tier prices, and customer-group pricing. Works on Luma out of the box; a companion module adds the Hyva Alpine.js template.

**Product page:** [kishansavaliya.com/magento-2-sale-filter.html](https://kishansavaliya.com/magento-2-sale-filter.html)

---

Quick Answer
------------

[](#quick-answer)

**What is Panth Sale Filter?** It is a Magento 2 layered navigation extension that adds a "Sale Status" filter to category and search pages, so shoppers can show only discounted products with one click.

**What does it add to my store?**

- A **"Shop By Sale Status"** option in layered navigation on category AND search-result pages.
- **Real-time counts** next to each option (`On Sale (12)`) that match the grid total after clicking.
- An **indexer-driven discount engine** that checks catalog price rules, special prices, tier prices, and customer-group pricing.
- **Parent aggregation** so a configurable, grouped, or bundle product shows as on sale as soon as any eligible child is discounted.
- An **admin index grid** at System → Panth Infotech → Sale Filter → Index Grid for debugging individual products.

**Which themes are supported?** **Luma** natively. For **Hyva**, install the free companion package `mage2kishan/module-sale-filter-hyva`.

**What does it need?** Magento 2.4.4 to 2.4.8, PHP 8.1 to 8.4, Elasticsearch or OpenSearch, and the free `mage2kishan/module-core` package.

---

Need Custom Magento 2 Development?
----------------------------------

[](#need-custom-magento-2-development)

> **Get a free quote for your project in 24 hours** for custom modules, Hyva themes, performance work, M1 to M2 migrations, and Adobe Commerce Cloud.

 [ ![Get a Free Quote](https://camo.githubusercontent.com/eac8c45d21cff8b139ddc392325f3bd6c8266a6f3d7b23f15131c958f3d3c8d0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476574253230612532304672656525323051756f74652532302545322538362539322d5265706c7925323077697468696e2532303234253230686f7572732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

### Kishan Savaliya

[](#kishan-savaliya)

**Top Rated Plus on Upwork**

[![Hire on Upwork](https://camo.githubusercontent.com/b69353d3c6e192f4d03cc36bb8883612004e32f54dd2dbcc1e700dd791acd875/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532306f6e2532305570776f726b2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)

100% Job Success - 10+ Years Magento Experience Adobe Certified - Hyva Specialist

### Panth Infotech Agency

[](#panth-infotech-agency)

**Magento Development Team**

[![Visit Agency](https://camo.githubusercontent.com/bbf04bdd2aff502082508568ec42ace3a7475c98756f596e2013056c89726ed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742532304167656e63792d50616e7468253230496e666f746563682d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)

Custom Modules - Theme Design - Migrations Performance - SEO - Adobe Commerce Cloud

**Visit our website:** [kishansavaliya.com](https://kishansavaliya.com) | **Get a quote:** [kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Who Is It For](#who-is-it-for)
- [Key Features](#key-features)
- [Screenshots](#screenshots)
- [Compatibility](#compatibility)
- [Installation](#installation)
- [Configuration](#configuration)
- [How It Works](#how-it-works)
- [Admin Index Grid](#admin-index-grid)
- [Indexing](#indexing)
- [Caching](#caching)
- [Dated Discounts](#dated-discounts)
- [URL Parameters](#url-parameters)
- [CLI Reference](#cli-reference)
- [FAQ](#faq)
- [Support](#support)
- [About Panth Infotech](#about-panth-infotech)
- [Quick Links](#quick-links)

---

Who Is It For
-------------

[](#who-is-it-for)

- **Stores that run promotions** where a large share of the catalog is temporarily discounted and shoppers want to browse only the sale items.
- **Fashion, electronics, and home stores** where customers arrive specifically to shop the sale and expect a filter to find it quickly.
- **Multi-group B2B merchants** where Wholesale and Retailer groups see different prices, so "on sale" means something different per group.
- **Hyva and Luma storefronts** that want an accurate, indexed filter instead of a slow attribute query across a large catalog.
- **Merchants who need reliable counts** next to filter options, not approximate or stale totals.

---

Key Features
------------

[](#key-features)

### Storefront Filter

[](#storefront-filter)

- **"Shop By Sale Status"** option in layered navigation on category pages and search-result pages.
- **"On Sale" and "Regular Price" options** with configurable labels per store view.
- **Real-time counts** (`On Sale (12)`) scoped to the current category and visibility, never a store-wide tally.
- **Cross-filter accurate** counts that shift when Brand, Color, Size, Price range, or other filters are already active.
- **Stock-aware counts** that respect the "Display Out of Stock Products" setting.
- **"Now Shopping by" chip** with a one-click clear, integrated with Magento's active-filter UI.
- **Pagination-safe** so the filter state carries across `?p=2`, `?product_list_limit=24`, and sort changes.

### Discount Detection

[](#discount-detection)

- **Catalog price rules** including all operators (by percent, by fixed, to percent, to fixed) and dated windows.
- **Per-product special prices** with `special_from_date` and `special_to_date` awareness.
- **Tier prices** that fall below the regular price.
- **Customer-group-specific pricing** covering NOT LOGGED IN, General, Wholesale, Retailer, and any custom group.
- **Parent aggregation** for configurable, grouped, and bundle products based on any eligible child.
- **All product types** including simple, configurable, grouped, bundle, virtual, and downloadable.

### Indexer

[](#indexer)

- **Dedicated indexer** `panth_salefilter_product` shown in System → Tools → Index Management.
- **MView subscriptions** on product price, special price date, catalog rule price, and product relation tables for automatic updates.
- **Update by Schedule** (default, cron-driven, recommended for production) and **Update on Save** (synchronous, good for staging).
- **Flat index table** `panth_salefilter_product_index` keyed by `(entity_id, customer_group_id, website_id)` for fast JOIN lookups.
- **Dated discounts flip automatically** at the minute they start or end via Magento's `catalogrule_apply_all` nightly cron.

### Admin and Operations

[](#admin-and-operations)

- **Admin index grid** at Panth Infotech → Sale Filter → Index Grid showing product id, SKU, type, website, customer group, regular price, special price, is-on-sale, rule price, discount %, active rules, and match source.
- **CLI helpers** `bin/magento panth_salefilter:reindex` and `panth_salefilter:status`.
- **Cache invalidation** across all configured cache frontends, including split Redis setups.
- **Per-customer-group FPC keying** so each shopper group sees its own correct cached count.

### Quality

[](#quality)

- **MEQP-compliant** code with no third-party PHP dependencies.
- **Declarative schema** via `db_schema.xml`.
- **Constructor dependency injection only** throughout.
- **Translation ready** with every label using Magento's `__()` function.

---

Screenshots
-----------

[](#screenshots)

### Storefront (Luma)

[](#storefront-luma)

Sidebar filterFilter applied - On SaleFilter applied - Regular[![Luma sidebar](docs/images/luma-sidebar.png)](docs/images/luma-sidebar.png)[![On Sale active](docs/images/luma-active-on-sale.png)](docs/images/luma-active-on-sale.png)[![Regular active](docs/images/luma-active-regular.png)](docs/images/luma-active-regular.png)### Storefront (Hyva)

[](#storefront-hyva)

[![Hyva sidebar](docs/images/hyva-sidebar.png)](docs/images/hyva-sidebar.png)

### Admin - live demo

[](#admin---live-demo)

[![Admin configuration demo](docs/images/admin-config-demo.gif)](docs/images/admin-config-demo.gif)

### Admin - configuration, grid, indexer

[](#admin---configuration-grid-indexer)

ConfigurationSale Filter Index gridIndexer registration[![Admin configuration](docs/images/admin-configuration.png)](docs/images/admin-configuration.png)[![Sale Filter Index](docs/images/admin-index-grid.png)](docs/images/admin-index-grid.png)[![Indexer list](docs/images/admin-index-management.png)](docs/images/admin-index-management.png)---

Compatibility
-------------

[](#compatibility)

RequirementVersions SupportedMagento Open Source2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce Cloud2.4.4 to 2.4.8PHP8.1.x, 8.2.x, 8.3.x, 8.4.xMySQL8.0+MariaDB10.4+Search EngineElasticsearch 7/8, OpenSearch 1/2Hyva Theme1.3+ (via companion module `mage2kishan/module-sale-filter-hyva`)Luma ThemeNative supportRequired Dependency`mage2kishan/module-core` (free)---

Installation
------------

[](#installation)

### Composer Installation (Recommended)

[](#composer-installation-recommended)

```
composer require mage2kishan/module-sale-filter
bin/magento module:enable Panth_Core Panth_SaleFilter
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento indexer:reindex panth_salefilter_product
bin/magento cache:flush
```

### Hyva Storefronts

[](#hyva-storefronts)

Also install the companion module, which ships the Alpine.js template and Tailwind styles:

```
composer require mage2kishan/module-sale-filter-hyva
bin/magento module:enable Panth_SaleFilterHyva
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```

### Manual Installation via ZIP

[](#manual-installation-via-zip)

1. Download the latest release from [Packagist](https://packagist.org/packages/mage2kishan/module-sale-filter) or from the [product page](https://kishansavaliya.com/magento-2-sale-filter.html).
2. Extract it to `app/code/Panth/SaleFilter/` in your Magento install.
3. Make sure `Panth_Core` is installed too (required dependency).
4. Run the commands above starting from `bin/magento module:enable`.

### Verify Installation

[](#verify-installation)

```
bin/magento module:status Panth_SaleFilter
# Expected: Module is enabled

bin/magento indexer:status panth_salefilter_product
# Expected: Ready / Update by Schedule / idle
```

After install, open:

```
Admin → Stores → Configuration → Panth Extensions → Sale Filter

```

---

Configuration
-------------

[](#configuration)

Go to **Stores → Configuration → Panth Extensions → Sale Filter**.

All fields are store-scoped, so you can set different labels per store view for multi-locale installs.

SettingGroupDefaultDescriptionEnabledGeneralYesMaster switch. Off means the filter disappears from layered navigation and `?sale_filter=` URL params become no-ops.Filter TitleGeneralSale StatusHeading shown above the filter options in the sidebar.Option Label - On SaleGeneralOn SaleLabel for the discounted option.Show "Not On Sale" OptionGeneralNoWhen on, a second option appears so shoppers can also filter to regular-price products.Option Label - Not On SaleGeneralRegular PriceLabel for the regular-price option. Shown only when the above is enabled.Show Product CountGeneralYesToggles the `(12)` counter next to each option.Include Special PricesGeneralYesWhen off, the indexer ignores per-product special prices.Include Catalog RulesGeneralYesWhen off, the indexer ignores catalog price rules.Filter PositionGeneral100Sort order in layered navigation. Lower values appear higher in the sidebar.---

How It Works
------------

[](#how-it-works)

1. The indexer `Panth\SaleFilter\Model\Indexer\ProductIndexer` walks every product × customer group × website combination, resolves the effective on-sale flag from catalog rules, special prices, and tier prices, and writes a row to `panth_salefilter_product_index`.
2. MView subscriptions on price, date, rule-price, and product-relation tables keep the index current without a full reindex on every change.
3. A layered-navigation plugin runs `afterGetProductCollection` on both `Catalog\Model\Layer\Category` and `Catalog\Model\Layer\Search`. It intersects the index with the current category and visibility, then replaces Magento's `SearchResultApplier` with a filter-aware version so paging slices the filtered list rather than intersecting the full ES result after the fact.
4. A `getSize()` plugin returns the pre-computed post-filter count so the toolbar pager shows the correct total.

---

Admin Index Grid
----------------

[](#admin-index-grid)

Open **Panth Infotech → Sale Filter → Index Grid** in the admin.

[![Sale Filter Index grid](docs/images/admin-index-grid.png)](docs/images/admin-index-grid.png)

The grid is a UI component over `panth_salefilter_product_index` with filters, column chooser, and CSV export. It is useful for checking the computed sale state of a specific product or verifying that a rule change propagated correctly.

ColumnDescriptionProduct IDMagento entity idSKUProduct SKUTypesimple, configurable, grouped, bundle, virtual, or downloadableWebsiteWebsite code and idCustomer GroupGroup name and idRegular PricePre-discount priceSpecial PriceConfigured special price if anyOn SaleYes or No, the effective sale stateUpdated AtLast indexer write timestampRule PriceFinal price after the best applicable catalog ruleDiscount %Relative discount versus regular priceActive Catalog RulesComma-separated list of matching rule namesMatch SourceCatalog Rule, Special Price, or Both---

Indexing
--------

[](#indexing)

`panth_salefilter_product` appears in **System → Tools → Index Management**.

[![Index Management](docs/images/admin-index-management.png)](docs/images/admin-index-management.png)

Two modes are available:

- **Update by Schedule** (default) - MView changelog captures changed product ids, and Magento's `indexer_update_all_views` cron processes them approximately every minute. Recommended for production.
- **Update on Save** - observers fire `reindexRow` inline on every relevant save. More DB writes during bulk imports, but the storefront reflects changes immediately. Good for staging.

Switch modes via the Index Management grid (Actions → Update Mode) or via CLI:

```
bin/magento indexer:set-mode schedule panth_salefilter_product
bin/magento indexer:set-mode realtime panth_salefilter_product
```

---

Caching
-------

[](#caching)

The "On Sale" counts differ per customer group. If the cache ignores the group, one visitor's render is served to everyone and the counts are wrong. The module solves this with two Magento hooks.

`Block/LayeredNavigation/FilterRenderer.php` implements `IdentityInterface` and overrides two methods:

- **`getCacheKeyInfo()`** mixes in store id, website id, customer group, currency, current category id, and the active `sale_filter` URL parameter. Each combination gets its own cached HTML fragment.
- **`getIdentities()`** returns `cat_p` and `panth_salefilter` cache tags. When a product or catalog rule changes, only entries with these tags are evicted.

Customer group is read from `HttpContext`, not `CustomerSession`. The session is wiped before cacheable blocks render, so `HttpContext` is the only reliable source.

On Magento 2.4.7 and later, a plugin restores cookie-aware FPC keying (`X-Magento-Vary`) for both `Identifier` and `IdentifierForSave`, so each customer group gets its own FPC entry at both load and save time.

---

Dated Discounts
---------------

[](#dated-discounts)

Dated discounts flip at the minute they start or end. Three triggers keep the index fresh:

1. **Immediate** - when you save a product or catalog rule, the observer calls `reindexRow` (Update on Save mode) or writes to the MView changelog (Update by Schedule mode).
2. **MView + Magento cron** - the `indexer_update_all_views` cron (every 1 minute) processes any pending changelog entries.
3. **Daily catalog rule refresh** - Magento's built-in `catalogrule_apply_all` job runs at midnight every day and rebuilds `catalogrule_product_price` for the current date. Rules whose window starts today come online; rules whose window ended yesterday drop out. The MView subscription detects these writes and queues the affected products. Within about one minute after midnight, the index reflects the new state.

If `bin/magento cron:run` is not scheduled in your OS crontab, timed discounts will not flip automatically. This is a baseline Magento requirement.

To force an immediate refresh:

```
bin/magento catalog:rule:apply-all
bin/magento indexer:reindex panth_salefilter_product
bin/magento cache:flush
```

---

URL Parameters
--------------

[](#url-parameters)

- `?sale_filter=1` shows on-sale products only.
- `?sale_filter=0` shows regular-price products only (respected only when "Show Not On Sale Option" is enabled).

Both parameters are preserved across pagination (`&p=2`), per-page override (`&product_list_limit=24`), and sort changes.

---

CLI Reference
-------------

[](#cli-reference)

```
# Full reindex
bin/magento indexer:reindex panth_salefilter_product
# or the dedicated command with friendlier output
bin/magento panth_salefilter:reindex

# Health check
bin/magento panth_salefilter:status
bin/magento indexer:status panth_salefilter_product

# Switch modes
bin/magento indexer:set-mode schedule panth_salefilter_product
bin/magento indexer:set-mode realtime panth_salefilter_product

# Refresh catalog rules as if it is midnight
bin/magento catalog:rule:apply-all

# Clear caches tagged by this module
bin/magento cache:clean panth_salefilter
```

---

FAQ
---

[](#faq)

### Does this work with Hyva themes?

[](#does-this-work-with-hyva-themes)

Yes, with the companion module. Install `mage2kishan/module-sale-filter-hyva` alongside the base module and it ships the Alpine.js plus Tailwind template for Hyva. Luma works out of the box without the companion.

### Does it respect dated catalog rules?

[](#does-it-respect-dated-catalog-rules)

Yes. Dated rules flip automatically at the minute they start or end via Magento's built-in `catalogrule_apply_all` nightly cron plus the `indexer_update_all_views` cron that runs every minute. See the [Dated Discounts](#dated-discounts) section for the full timeline.

### Will a configurable product show as On Sale if only one child is discounted?

[](#will-a-configurable-product-show-as-on-sale-if-only-one-child-is-discounted)

Yes. Parent aggregation is on by default. A configurable, grouped, or bundle product is marked on sale as soon as any eligible child is discounted.

### Does it work with Elasticsearch and OpenSearch?

[](#does-it-work-with-elasticsearch-and-opensearch)

Yes. Tested on Elasticsearch 7/8 and OpenSearch 1/2. The module ships a custom `SearchResultApplier` that intersects the ES result set with the on-sale id list before paging, so page 1 shows the first N filtered products rather than the first N ES results that happen to be on sale.

### Does it work on search-result pages, not just category pages?

[](#does-it-work-on-search-result-pages-not-just-category-pages)

Yes. The filter is wired to both `Catalog\Model\Layer\Category` and `Catalog\Model\Layer\Search`.

### What is the difference between "Include Special Prices" and "Include Catalog Rules"?

[](#what-is-the-difference-between-include-special-prices-and-include-catalog-rules)

Turning one off tells the indexer to ignore that discount source. Useful when a merchant only wants the filter to react to explicit special prices and not the dynamic catalog rules that affect the whole catalog.

### Does it support custom customer groups?

[](#does-it-support-custom-customer-groups)

Yes. The indexer walks every group in the `customer_group` table, so stores with custom groups all get accurate per-group discount state.

### Does it support multi-store and multi-website setups?

[](#does-it-support-multi-store-and-multi-website-setups)

Yes. The index table is keyed by `(entity_id, customer_group_id, website_id)` so you get per-website discount states, and all labels are store-scoped.

### Can I uninstall it cleanly?

[](#can-i-uninstall-it-cleanly)

Yes. Run `composer remove mage2kishan/module-sale-filter` then `bin/magento setup:upgrade`. The index table and MView changelog are dropped automatically via declarative schema.

---

Support
-------

[](#support)

ChannelContactProduct Page[kishansavaliya.com/magento-2-sale-filter.html](https://kishansavaliya.com/magento-2-sale-filter.html)EmailWebsite[kishansavaliya.com](https://kishansavaliya.com)WhatsApp+91 84012 70422GitHub Issues[github.com/mage2sk/module-sale-filter/issues](https://github.com/mage2sk/module-sale-filter/issues)Upwork (Top Rated Plus)[Hire Kishan Savaliya](https://www.upwork.com/freelancers/~016dd1767321100e21)Upwork Agency[Panth Infotech](https://www.upwork.com/agencies/1881421506131960778/)Response time: 1-2 business days.

### Need Custom Magento Development?

[](#need-custom-magento-development)

Looking for **custom Magento module development**, **Hyva theme work**, **store migrations**, or **performance tuning**? Get a free quote in 24 hours:

 [ ![Get a Free Quote](https://camo.githubusercontent.com/0d9512dc4f89ef40179e9f650fd0786b6bc846d289ab2cb04a223a43f2833eeb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f254630253946253932254143253230476574253230612532304672656525323051756f74652d6b697368616e736176616c6979612e636f6d2532466765742d2d71756f74652d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

 [ ![Hire on Upwork](https://camo.githubusercontent.com/fad56e8be7896e39593f090cd2ed32e6bf86b4b6e75974cf292aee99d45f5077/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532304b697368616e2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465) ](https://www.upwork.com/freelancers/~016dd1767321100e21) [ ![Visit Agency](https://camo.githubusercontent.com/fdf45a9d937d72b896f5e2557337d47efebc0e06b7ad4d4c162c0a64375a62fa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742d50616e7468253230496e666f746563682532304167656e63792d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465) ](https://www.upwork.com/agencies/1881421506131960778/) [ ![View Product Page](https://camo.githubusercontent.com/0138e328c99ddfb6434cabe73b3544c17c53ad1d36899eb7794f04b1ec9d86ac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5669657725323050726f64756374253230506167652d6d6167656e746f2d2d322d2d73616c652d2d66696c7465722d3044393438383f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/magento-2-sale-filter.html)

---

About Panth Infotech
--------------------

[](#about-panth-infotech)

Built and maintained by **Kishan Savaliya** ([kishansavaliya.com](https://kishansavaliya.com)), a **Top Rated Plus** Magento developer on Upwork with 10+ years of eCommerce experience.

**Panth Infotech** is a Magento 2 development agency that builds high-quality, security-focused extensions and themes for both Hyva and Luma storefronts. The extension suite covers SEO, performance, checkout, product presentation, customer engagement, and store management, with each module built to MEQP standards and tested across Magento 2.4.4 to 2.4.8.

Browse the full extension catalog on our [Magento extensions page](https://kishansavaliya.com/magento-extensions.html) or on [Packagist](https://packagist.org/packages/mage2kishan/).

---

Quick Links
-----------

[](#quick-links)

ResourceLink**Product Page**[magento-2-sale-filter.html](https://kishansavaliya.com/magento-2-sale-filter.html)**Packagist**[mage2kishan/module-sale-filter](https://packagist.org/packages/mage2kishan/module-sale-filter)**GitHub**[mage2sk/module-sale-filter](https://github.com/mage2sk/module-sale-filter)**Website**[kishansavaliya.com](https://kishansavaliya.com)**Free Quote**[kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)**Upwork (Top Rated Plus)**[Hire Kishan Savaliya](https://www.upwork.com/freelancers/~016dd1767321100e21)**Upwork Agency**[Panth Infotech](https://www.upwork.com/agencies/1881421506131960778/)**Email****WhatsApp**+91 84012 70422---

 **Ready to help shoppers find your sale items faster?**
 [ ![See Sale Filter](https://camo.githubusercontent.com/c8fad76b75a201aca743f06d1f2e9cd8e31aeef0b002557035917af1a875554b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f25463025394625394125383025323053656525323053616c6525323046696c7465722532302545322538362539322d50726f647563742532305061676525323025323625323044656d6f2d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/magento-2-sale-filter.html)

---

**SEO Keywords:** magento 2 on sale filter, magento 2 sale filter extension, magento 2 layered navigation sale filter, magento 2 shop by sale, magento 2 discount filter, magento 2 catalog rule filter, magento 2 special price filter, magento 2 sale status layered navigation, magento 2 on sale layered navigation, hyva sale filter, hyva layered navigation filter, luma sale filter, magento 2 elasticsearch sale filter, magento 2 opensearch sale filter, magento 2 configurable on sale, magento 2 parent child sale aggregation, magento 2 dated discount indexer, magento 2 sale filter indexer, magento 2 customer group pricing filter, magento 2 category filter extension, panth sale filter, panth infotech, mage2kishan, mage2sk, kishan savaliya magento, top rated plus upwork magento, hire magento developer, magento 2.4.8 module, php 8.4 magento module, meqp compliant magento module, custom magento development

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance91

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Recently: every ~13 days

Total

20

Last Release

36d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/343e344aa298f189db888b32d62f9202d31ced1a5ea23411850a63dc4a30299c?d=identicon)[kishansavaliya](/maintainers/kishansavaliya)

---

Top Contributors

[![KishanSavaliya](https://avatars.githubusercontent.com/u/16853223?v=4)](https://github.com/KishanSavaliya "KishanSavaliya (20 commits)")

---

Tags

seomagento2layered-navigationmagento2 modulepanthsale-filter

### Embed Badge

![Health badge](/badges/mage2kishan-module-sale-filter/health.svg)

```
[![Health](https://phpackages.com/badges/mage2kishan-module-sale-filter/health.svg)](https://phpackages.com/packages/mage2kishan-module-sale-filter)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.9k2](/packages/opengento-module-category-import-export)[smile/elasticsuite

Magento 2 merchandising and search engine built on ElasticSearch

8064.7M50](/packages/smile-elasticsuite)[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k8](/packages/buckaroo-magento2)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50398.5k20](/packages/dotdigital-dotdigital-magento2-extension)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
