Magento 2 Dynamic Categories

View Demo

Magento 2 Dynamic Categories extension assigns products to categories by rules and keeps them up to date: products join a category when they start matching and leave when they stop.

Build rules from any attribute or 11 smart conditions such as discount percentage, stock, rating and new arrivals, preview the result, and arrange the order with a drag-and-drop visual merchandiser.

  • Assign products by rules: attributes, discount %, stock, rating, new
  • Add and remove products automatically as data changes
  • Preview matching products before saving
  • Visual merchandiser: drag-and-drop, grid or tile view
  • Works with Hyvä, Live Search and any theme
Marketplace Approved
Hyvä
Magento Cloud
WCAG
Mage-OS
Compatible with:
Community:
2.3.* - 2.4.9
Enterprise:
2.3.* - 2.4.9

Assign Products to Categories by Rules, Not by Hand

Problem

Magento makes you assign every product to its categories by hand. With thousands of products, keeping a sale, a new arrivals page or a seasonal collection current means hours of ticking checkboxes, and products still get missed.

Solution

Dynamic Categories fills categories by rules: products join when they start matching and leave when they stop. Beyond attribute rules, 11 smart conditions cover discount percentage, stock, rating and inventory source. One store runs 600 dynamic categories over 100,000 products.

Rules That Fill Categories for You

An example of conditions in Mirasvit Magento 2 Dynamic Categories extension
Conditions

Any attribute plus 11 smart conditions

Build a rule from any product attribute enabled for promo rule conditions and combine conditions in AND/OR groups. Match SKUs by a pattern, or check an attribute on the parent product or on its child variants. On top of that, smart conditions turn a category into a smart category that reacts to prices, stock and reviews:

  • Is New and Created (within the last N days)
  • Has Active Special Price, Is Discounted and Percent Discount
  • Stock Quantity, Is Salable and Source (for Multi-Source Inventory, MSI)
  • Rating and Number of reviews
  • Product Type

See the setup guide for examples of rules.

Built for large catalogs

There is no hard limit on the number of dynamic categories or the products in them: one store runs 600 dynamic categories over a 100,000-product catalog. Updates go through a background queue, so saving a product doesn't slow down the admin. Each category shows its queue status, and Force Reindex rebuilds it on demand.

An example of conversion category to dynamic one
Conversion in one click

Streamline the management of existing categories

Turn any existing category into a virtual category with one switch. Its other settings stay as they are, and the product list is rebuilt from the rule.

Categories That Update Themselves

A product is checked again when it's saved in the admin or through the REST API, when attributes are mass-updated, when catalog price rules are applied and when prices are reindexed. If it starts matching a rule, it joins the category; if it stops, it leaves. Four categories most stores build first:

Automatic sale category

Use Has Active Special Price, Is Discounted or Percent Discount (for example, 20% or more). Products join when the promotion starts and leave when it ends, so nobody has to clean up after the sale.

New arrivals

Use Is New (the product's "Set Product as New" dates) or Created within the last N days. Products drop out on their own once they are no longer new.

Top rated

Combine Rating (1 to 5 stars) with Number of reviews to show the products customers already trust.

In stock and low stock

Use Is Salable, Stock Quantity or the MSI Source to build categories by stock level: salable products only, a last-chance category for low stock, or products from one warehouse.

Visual Merchandiser for Every Category

Set the product order of any category, dynamic or regular, right on its admin page. Switch between grid and tile view, choose which attributes the tiles show, and filter the grid to find a product. The merchandiser guide shows each step.

Sorting in one click

Sort by name or SKU, from A to Z or from Z to A. With Improved Sorting installed, its rule-based sorting criteria appear in the same list.

Drag-and-drop positions

Move products into place by drag and drop. Manual positions are kept when the category is reindexed.

Running Adobe Commerce? Dynamic Categories works next to its built-in Visual Merchandiser and keeps it from rebuilding the categories your rules manage.

Set Up, Preview, Done

Setting the conditions for the category in Mirasvit Dynamic Categories Magento 2 extension
Setup

From a switch to a filled category

Switch the category to dynamic, add conditions, check the preview and save. The category is queued and filled in the background.

Previewing the category products in Mirasvit Dynamic Categories Magento 2 extension
No guessing

Built-in Product Preview

Before you save, preview exactly which products match the rule. Every matching product is added, so nothing is skipped by hand, and a wrong condition shows up in the preview instead of on the storefront.

Rules plus manual picks

Add products by hand next to the rule

Need a product the rule doesn't catch? Assign it manually. The product grid marks each item as Manual or By rule, and manual picks stay in place through reindexes. If a category must follow the rule only, turn manual assignment off.

Great for SEO Landing Pages

Make keyword-targeted categories

Create a category for a search phrase such as "red dresses under $50", set the rule once, and it stays filled as the catalog changes. If your store uses category paths in product URLs, those URLs are created for new products in the category automatically.

Works With Your Storefront

On the storefront, dynamic categories are regular Magento categories: products are saved as standard category assignments. That's why they work with Hyvä and any other theme, with Adobe Live Search and with headless storefronts through standard GraphQL, without extra modules. The extension itself runs in the admin only.

Stop assigning products by hand: install Dynamic Categories.
No hidden fees
Our developers install the extension on your store and configure it for your setup, free of charge.
Lifetime access to source code
Access to free support and updates for 1 year
Updates and support prolongation - $90

Pay today $149 for the first year.

Then $90 for updates and support services per year.

Cancel anytime.

30 days money back guarantee
See it in action!
Pick a quick tutorial to learn about various aspects of this extension
Customer Reviews 15
Earn points for your review about this extension modules. $1 = 10 points
Write Your Own Review

check-circle You submitted your review for moderation.

Michal Verified Buyer
From Konin, Poland
Using the module for over 3 years
Easy installation and quick configuration.
The module works exactly as expected and integrates smoothly with Magento.
It significantly reduces manual work and saves a lot of time when managing the catalog.
Stable, reliable and well worth the investment. Highly recommended.
Also installed:
Advanced Product Feeds
Lukasz Verified Buyer
From Gdańsk, Poland
Using the module for 19 days
Very good extension
Easy to configuration. Works very well with Hyva theme.
Also installed:
Blog MX,  Advanced SEO Suite,  Improved Sorting,  Mass Product Actions,  Order Management,  Admin Bookmarks,  Product Labels and 16 more
Davide Verified Buyer
From Pavia, Italy
Using the module for over 3 years
Excellent module
We needed a merchandising module to visually manage the order of products within category pages. After discarding a non-functional one from another vendor, we adopted this one, and it works perfectly.
Also installed:
Elastic Search Ultimate,  Advanced Product Feeds,  Advanced SEO Suite,  Advanced Reports,  Follow Up Email,  IP Geolocation Redirect,  Google PageSpeed Optimizer and 17 more
Paolo Verified Buyer
From Gandino, Italy
Using the module for over 3 years
Reduced work, with this extension
Fantastic extension. I had several stores with products imported from external management systems, and instead of rebuilding the category tree, I used the extension to populate the categories dynamically and automatically. Highly recommended.
Also installed:
Product Kits ,  Automatic Related Products,  RMA,  Help Desk MX,  Follow Up Email,  Reward Points,  Elastic Search Ultimate and 25 more
WRC Verified Buyer
From Istanbul, Turkey
Using the module for almost 1 month
I love this extension
We've solved a lot of business needs with that extension, it was our best investment! This extension saves so much time when handling large catalog. Thank you so much Mirasvit!
Also installed:
Health & Performance Monitoring Suite,  Full Page Cache Warmer,  Reward Points,  Follow Up Email,  Advanced Reports,  Help Desk MX,  Advanced SEO Suite and 30 more
Manual & Support
Need more help?

Save time by starting your support request online and we'll connect you to an expert.

Frequently asked questions
chevron-down chevron-right

What exactly does the module Dynamic Categories do?

It assigns products to categories by rules instead of by hand. You set conditions on product attributes and smart conditions such as discount percentage, stock or rating, and the extension adds a product to the category when it starts matching and removes it when it stops, for example after its attributes or price change.

A typical example is a promo category. Each promo product has a special price for its own period, so adding products when a promotion starts and removing them when it expires takes a lot of manual work. With Dynamic Categories, products join and leave the promo category automatically.

chevron-down chevron-right

Can I filter products in a dynamic category by discount amount?

Yes. Use the Percent Discount condition, for example "Percent Discount equals or greater than 15" for a promo category and "equals or greater than 25" for a super promo category. The discount is calculated from the indexed price, so special prices and catalog price rules are included. To include any discounted product regardless of the amount, use Is Discounted or Has Active Special Price.

chevron-down chevron-right

What product attributes can be used as conditions?

Any product attribute with Use for Promo Rule Conditions set to Yes. On top of that, there are smart conditions: Is New, Created, Has Active Special Price, Is Discounted, Percent Discount, Stock Quantity, Is Salable, Rating, Number of reviews, Product Type and Source (MSI). Conditions can be combined in AND/OR groups, text values can be matched by a pattern, and each attribute can be checked on the parent product or on its child variants.

If you don't see an attribute in the list, enable Use for Promo Rule Conditions for it in the attribute settings.

chevron-down chevron-right

How are configurable products handled?

Stock Quantity and Is Salable are checked on the child variants, so a configurable product joins the category when any of its variants matches, for example when one size is in stock. With Add parent automatically enabled, the configurable product is shown in the category when one of its children matches. You can also check an attribute on the parent only or on the children only.

chevron-down chevron-right

Can I add products to a dynamic category manually?

Yes. A dynamic category can hold products assigned by the rule and products you add by hand. The product grid marks each item as Manual or By rule, and manual picks stay in place through reindexes. If you want categories to follow their rules only, turn off Allow manual product assignment in the settings.

chevron-down chevron-right

How are products sorted in a dynamic category?

By position, which you control in the built-in visual merchandiser on the category page: drag and drop products in grid or tile view, or sort the list by name or SKU. Manual positions are kept when the category is reindexed, and the merchandiser works for regular categories too.

For rule-based sorting such as bestsellers or top rated first, add the Improved Sorting extension: its criteria appear in the same merchandiser list.

chevron-down chevron-right

Is it an alternative to the Adobe Commerce Visual Merchandiser?

On Magento Open Source, yes: you get rule-based categories and a visual merchandiser with drag-and-drop positions, grid and tile view. On Adobe Commerce, Dynamic Categories works next to the built-in Visual Merchandiser and keeps it from rebuilding the categories your rules manage.

chevron-down chevron-right

Does it work with Hyvä, Adobe Live Search and headless storefronts?

Yes. On the storefront, dynamic categories are regular Magento categories: products are saved as standard category assignments, and the extension itself runs only in the admin. That's why they work with Hyvä and any other theme, with Adobe Live Search and with headless storefronts that read categories through standard Magento GraphQL.

chevron-down chevron-right

Will it handle a large catalog?

Yes. There is no hard limit on dynamic categories or products, and one store runs 600 dynamic categories over a 100,000-product catalog. Category updates are processed in a background queue, and product validation on save can run asynchronously, so saving products doesn't slow down the admin. Each category shows its queue status, and Force Reindex rebuilds it on demand.

chevron-down chevron-right

Is it possible to create a dynamic category that includes products from only one source?

Yes. With Multi-Source Inventory, use the Source condition (source is or is not the selected source) and pick the source from the drop-down. Is Salable also takes MSI stock into account.

chevron-down chevron-right

Can the conditions of a dynamic category be copied to another dynamic category?

Yes. Use the Load Conditions From option and select the dynamic category to copy from: its conditions are loaded right away, and you can adjust them before saving. The option is available from version 1.0.17.

chevron-down chevron-right

Does the dynamic categories extension work with prices changed by cart or category rules?

Catalog price rules, yes: Is Discounted and Percent Discount use the indexed price, which includes catalog price rules and special prices. Shopping cart rules can't be used, because they apply only within a specific cart and to the products in it.

chevron-down chevron-right

Can I import or export dynamic categories?

There is no built-in import or export. The rules are stored in the mst_dynamic_category table (manual picks in mst_dynamic_category_link), so you can back them up or copy them with any database tool. Rules are linked to category IDs, so a copy works on a store with the same category IDs.

Changelog
Version 1.4.55Oct 5, 2026
Dynamic category reindexing no longer causes an endless price reindex loop on stores that manually assign products to dynamic categories. Every reindex removed manually added products that did not match the rule and then immediately added them back. This change in category product links re-triggered the price indexer on each run, so indexing never settled. Manually assigned products now stay untouched across reindexes, so the price index is no longer invalidated when nothing actually changed (pm[#432]())
Version 1.4.54Sep 28, 2026
Internal code improvements and maintenance.
Version 1.4.53Sep 25, 2026
⚠️ Dynamic category data (rule attributes, queued category changes, the product queue) is now stored and read with Magento's standard JSON serializer instead of the Mirasvit Core serializer. During setup:upgrade, a one-time data patch converts any remaining old-format (PHP-serialized) values in the mst_dynamic_category table to JSON; values it cannot read are logged and left as they are. Custom code that constructs the module's classes directly (bypassing dependency injection) needs updating, as several constructors now take an extra JSON serializer argument
setup:upgrade no longer hangs for hours when upgrading on stores with many dynamic category product links. The upgrade step that removes duplicate links before adding the unique index took time that grew quadratically with table size (about 5 minutes for 40,000 links); it now finishes in seconds even for a million links, and an interrupted run is completed on the next upgrade (pm[#375]())
Product saves no longer fail with "The product was unable to be saved. Please try again." when one dynamic category has unreadable stored rule attributes. That category is now treated as having no extra attributes and a warning naming it is written to the log
Dynamic category reindexing no longer stops with an error when a product in the batch was deleted or is excluded from the product collection; such a product is now skipped
Fixed errors in the admin and during reindexing for rules saved without a conditions block, admin product grid filters with a value containing = or a malformed segment, attribute conditions with an unusual scope code, and stores where the category tree could not be loaded
Version 1.4.52Sep 22, 2026
Dynamic categories built on a "Category is one of" condition now always pick up the current products of the category they point at. When reindexing ran through the message queue, the long-running consumer kept using the category membership it saw on its first job, so later edits to the source category were ignored — or the dynamic category was even rolled back to an hours-old product list — until the consumer was restarted or a reindex was run from the console. With "Update by Schedule" indexing, a product just removed from the source category could also still be counted as a member. Category membership is now read fresh for every rule evaluation.
Dynamic category rules with a "Quantity and Stock Status" condition no longer fail with "Unknown column 'stock.quantity_and_stock_status' in 'where clause'" on stores that use the default (non-MSI) stock; such categories are now filled with the matching products again.
Version 1.4.51Sep 21, 2026
Turning "Dynamic Category" off now actually disables the category. Saving with the toggle set to No reported success but left the rule active, so the toggle read Yes again after a refresh and the rule kept assigning products
⚠️ A dynamic category with NO conditions no longer assigns the whole catalog. An empty condition set — the rule itself, or a "Conditions Combination" group left empty — now matches no products, in Preview Products and during reindexing alike, and the Admin warns about it. Previously every eligible product was assigned "by rule". A category that relied on an empty rule to collect everything needs an explicit condition instead
Reasons to choose Mirasvit
Client focusing and satisfaction

These are our primary. A major portion of our new clients come from referrals from our existing clients. Our professional team of developers, marketers and support staff have invested the best knowledge and experience in the field into our work, so you know you can come back to us again and again.

Remarkable support

One year free and high quality support. We go to great lengths to provide maximum satisfaction with every module you have purchased in our store. By helping you with installation, configuration, answering your every question, we do all our best to eliminate any possible problems.

Risk-free Investment

30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.

Constant improvements and upgrades

We constantly add new features to all our modules, and are always interested in hearing your opinion and implementing your suggested features in our future developments.

Comprehensive Documentation

We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.

Unencrypted source code of our products

You can customize extension according to your needs and requirements.

Usability and Performance

The Module is easy to install and upgrade, just follow our step-by-step user guide. Additionally, the extension is ready to use with the Hyvä theme.

Ready for Magento Cloud

No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.

Loading...