Magento 2 Dynamic Categories
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
Assign Products to Categories by Rules, Not by Hand
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.
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
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.
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
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.
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.
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.
It significantly reduces manual work and saves a lot of time when managing the catalog.
Stable, reliable and well worth the investment. Highly recommended.
Save time by starting your support request online and we'll connect you to an expert.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 argumentsetup: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]())= or a malformed segment, attribute conditions with an unusual scope code, and stores where the category tree could not be loadedBlog
We are committed to being open and transparent with our customers. When you purchase our module, you automatically receive one year of free support service and free updates.
Why is this important?
- Seamless Installation and Configuration: We understand that setting up a new module can take time to configure according to your specific needs. That’s why we offer a full year of free support. Our experienced team is here to assist you with installation, configuration, and any questions you might have. We're eager to share our expertise to ensure you get the most out of your purchase.
- Stay Updated with Magento (Adobe Commerce) Releases: Magento releases new versions approximately every three months. These updates can sometimes introduce compatibility challenges. To keep your store running smoothly, we provide a year of free access to the latest versions of our modules, ensuring that you can upgrade Magento and our modules without encountering any obstacles.
- Subscription Included: Renewing your subscription ensures continued access to the latest updates and support from our team. This means you can be confident that any issues you encounter with the extension will be resolved quickly and efficiently. You can cancel your subscription at any time without any additional fees.
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.
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.
30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.
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.
We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.
You can customize extension according to your needs and requirements.
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.
No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.
Andriy Kovalenko