Automatically associate products to categories with Dynamic Category for Magento 2
Gain considerable time by adding products to the right categories automatically.
Manage matching products with ease
Automatic recovery — Dynamically retrieve the products that are part of each category.
Preview — Check matching products while creating the conditions.
Define your own conditions in one go
Condition import — Import conditions from other categories in one click.
Product attribute — Assign products to categories depending on product attributes.
Special conditions — Use special conditions to retrieve discounted or new products.
MSI conditions — Create conditions based on Multi Stock Inventory attributes.
Easily index matching products
Manual refresh Manually refresh matching products from your Magento back-office.
Automatic refresh Automatically refresh matching products by scheduling the cron tasks.
Content
How to use the Dynamic Category extension for Magento 2?
When using Magento default installation, products can only be assigned to categories manually.
With Dynamic Category, products can be dynamically assigned to categories based on product attributes.
This extension allows you to define product conditions (general and special conditions) for each category, as well as custom product positions and to select matching products.
Follow this guide to know how to use the Dynamic Category extension.
STEP 1: Define conditions on the categories
With Dynamic Category you can define your own conditions from: products › Categories
Select the category for which you want to define conditions and go to: Products in Category › Product Category Rules
General conditions
With Dynamic Category, you can define conditions based on product attributes.
Click on + in the Product Category Rules sub-tab.
From the product attributes list, select the attribute you want to create a condition for (color, size..).
Attribute Set is Clothing
Finally, click on REFRESH MATCHING PRODUCTS to get the list of all the products matching the condition.
Special conditions
Besides the product attributes conditions, Dynamic Category comes with very useful additional conditions that allow you to customize product conditions easily.
Product type You can define a condition based on product types. You can select one or multiple product types for matching products.
Product Type is one of Simple Product, Virtual Product, Downloadable Product
In promo This condition uses the product price index table populated by Magento when the indexation process is over. It verifies if any modification has been made on the product price through either catalog price rules or special prices. In the case of promotions (catalog price rules), the reduced price will appear only on the frontend.
In Promo is Yes
Special price applied Unlike the condition above, this one only verifies if a special price has been applied to the product for a specific period of time. Therefore, any other price reduction or modification won't be included (for ex: catalog price rules).
Special Price Applied is Yes
Total child products quantity in stock It is sometimes useful to filter configurable or grouped products by the quantity their assigned simple products have in stock. Note that each simple product quantity is added to its parent product.
Total Child Products Quantity In Stock is 10
Replace matching simple products by parent products Thanks to this condition you'll be able to replace a simple product with its parent, which will then retrieve the attributes previously stored in the simple product. Regarding simple products that don't have any parent (orphan products), you'll be able to either keep or discard them.
Replace Matching Simple Products By Parent Products and Keep Orphans
Multi Stock Inventory
You can also define conditions based on Multi Stock Inventory attributes.
From the product attributes list, select the source or stock attribute you want to create a condition for.
Source: Source Name - Is In Stock
Source: Default Source - Is in stock is Yes
Source: Source Name - Quantity
Source: Default Source - Quantity is 100
Source: Source Name - Backorders (when using MSI Backorders only)
Source: Default Source - Backorders is one of Allow Qty Below 0
Stock: Stock Name - Salable Quantity
Stock: Default Stock - Salable Quantity equals or greater than 50
STEP 2: Import category rules
In the case where you’ve already created rules for a category and would like to assign those same rules to another, you can directly import them via the Import Category Rules tab.
All you need to do is to choose among the categories the one you want to retrieve the rules for and then click on Import.
In the Product Category Rulessub-tab will be displayed the conditions, which you'll be able to edit.
STEP 3: Index and refresh the matching products
For better performances in the frontend, products that match conditions are indexed in the native Magento database table.
Products are then retrieved in the frontend just like Magento default behavior and in the order that you have defined in the backend.
Because products may not match the defined conditions anymore (attribute has changed, the promotion has expired), they have to be refreshed periodically in order to update the product list in both the backend and frontend.
You have 2 ways of reindexing your products:
manually
automatically
Manually
You can manually index your products and categories from your Magento backend in: products › Categories
Select a category and from theProducts in Category tab, click on Refresh Matching Products to start the indexation process.
From a command line
You can also easily refresh all matching products manually by running the below command line:
wyomind:dynamiccategory:refresh_all
Note that the indexation is launched after the command line is run.
Automatically
The matching products are indexed for performance purposes.
Then, if a product does not match the defined conditions anymore, you’ll have to wait until the scheduled task is over (by default: every 24 hours) for the product to be removed from the list.
You can change the index settings in: Stores › configuration › Wyomind › Dynamic Category › Settings
Automatically Reindex Matching Products Activate that option to reindex the matching products via a scheduled task.
Reindex Matching Products Every Define the frequency of the automatic indexation in hours.
24
Enable Category Reindexation Logging Activate to enable the categories indexation logging.
Note that the default Magento cron.php task must be configured for this to work.
FAQ
Pre-sales informations
Magento Open Source vs Magento Commerce vs Magento Commerce Cloud
Magento offers three variations of its product.
As their names have changed over the past few years, here is a recap:
Magento Open Source: previously Magento Community Edition (CE), is a free and non-hosted e-commerce platform.
Magento Commerce: previously Magento Enterprise (EE), is the paid version of Magento and offers support services.
Magento Commerce Cloud: is the paid version of Magento and offers support and hosting services.
License and domains
License validity
A license is valid for an unlimited period of time on one single installation
If you're using more than one installation, you will have to buy a separate license for each instance.
if you're running several domains on a same installation, you will need only one license for all of them.
Although your license doesn’t have a limited period of validity, your Support & Upgrade period does. By purchasing a module, you’ll be granted a 12-month support period for free. Passed this period, you will have to pay for a new one (see FAQ: Extend your Support period)
Domains pre-registration
You can pre-register your live domain to your license in advance.
Thanks to this option, you'll be able to get the module ready to use on your domain before it goes live.
To pre-register your production domain:
Go to: mY account › Licenses & DOwnloads
Click on the Settings icon next to the module you want your domain to pre-register on.
Click on the link at the bottom of the page saying: Do you want to pre-register your domain in order to be ready to go live?
Finally, enter your domain name and click on pre-register now .
Testing environments
One license is valid for an unlimited period of time on one installation only. However, it is possible to extend or transfer your license in 2 cases:
If you would like to add your testing environments to your license. In that case, it is possible to extend your license to an unlimited number of domains for free. For mywebsite-staging.com or mywebsite-dev.com
If you want to transfer your license to another live domain. In that case, the Support & Upgrade period for your license must still be active.
To be able to use Dynamic Category on both your production and testing environments, follow the instructions below:
Install Dynamic Category on your environment. (see FAQ: Modules installation in Magento or in WooCommerce)
Activate the license. (see FAQ: Licenses activation in Magento or in WooCommerce)
Also, if you are managing a large amount of domains, please contact us so that we can automatically whitelist these domains.
Modules versioning and download
Extensions download
In order to download Dynamic Category, log into your Wyomind account:
Go to: my account › Licenses & downloads
Click on the settings icon next to Dynamic Category.
A new window opens.
Click on the download icon.
Only the latest extension version released within your Support & Upgrade period is available. In order to get the very latest extension version make sure your Support & Upgrade plan is up to date.
Modules upgrade
When purchasing a module from wyomind.com, you benefit from 12 months of upgrade. Within this period you can at any time download the latest version of the module directly from your account.
To upgrade Dynamic Category, follow the steps below:
Go to: my account › Licenses & Downloads
Click on the settings icon next to Dynamic Category.
Click on the download icon.
Install the new version of Dynamic Category in your Magento admin or your WooCommerce back-office.
Modules Installation/Uninstallation
Extensions manual installation
You can install Dynamic Category manually.
Download Dynamic Category (zip file) on: mY ACCOUNT › Licenses & Downloads Refer to the FAQ: Extensions download
Once Dynamic Category is downloaded, open the folder and unzip it.
Copy the content of the unzipped folder and paste all files and directories in your Magento 2 root directory.
In your Command Line Interface, execute:
bin/magento setup:upgrade
If you are using a production mode, execute also:
bin/magento setup:static-content:deploy
bin/magento setup:di:compile
Extensions installation via Composer
You can install Dynamic Category using Composer software in two cases:
if you purchased Dynamic Category on Magento Marketplace.
if you purchased Dynamic Category on Wyomind.com AND requested access to our repository: repo.wyomind.com
Add to your composer configuration our repository:
Extensions activation from the back-office of Magento
Once Dynamic Category is installed, you have to activate the license. For previous versions, you can activate the license from your back-office:
Go to your Magento admin panel. A message pops up at the top of the page.
If the message doesn't appear then you must check that:
1. The Adminhtml_Notifications and Wyomind_Core modules are well enabled. 2. The HTML output of the Adminhtml_Notifications and Wyomind_Core modules are not disabled in: storesconfigurationadvanced advanced 3. The encryption key well exists in app/etc/env.php:
Copy your activation key in: Stores › Configuration › Wyomind › Your extension
You can find your activation key in 2 different places: - In the confirmation email that you received after purchasing Dynamic Category. - In your Wyomind account: My account › Licenses & downloads Select Dynamic Category and click on .
A new page opens where you'll find your activation key (see below).
In your Magento admin go to: Stores › Configuration › Wyomind › Your extension
Paste the activation key in the Activation Key field and choose between the automatic (yes) or the manual (no) activation method: - By choosing Yes, the connection to Wyomind license server will be automatic. - By choosing No, you will have to log on to Wyomind license server yourself.
Click on Save config .
A message appears at the top of your admin panel. Click on that link: Activate it now!
Copy and paste the license code in theLicense code field from your admin or simply click on Activate now!
Finally, refresh your cache, log out and log in back straight after, to complete the installation.
Add another domain to your license
To activate the license on another domain (test, staging...):
Once the extension is installed on the new domain, copy your activation key in: Stores › Configuration › Wyomind › Your extension
After having saved the configuration, a notification appears. Click on Add this domain to my license.
A transfer request will then be sent to our team within an hour. Once the request is taken care of, you will receive a confirmation email. If your transfer request is accepted, you can use Dynamic Category on both environments at the same time.
Note that the order in which you activate your license on your domains does not matter. You can start with your staging/dev/local environment or with your live domain, the process will be the same.
Also, if you have loads of staging domains, or if you are an agency managing load of domains for your customers, please contact us so that we can automatically whitelist these domains.
Extensions activation from the CLI
Once Dynamic Category is installed, you have to activate the license.
For this, you can use the below command line (change the Activation key with the corresponding value):
As a Magento 2 user, I love how the Dynamic Category extension keeps my categories up to date automatically based on product attributes. It's been a huge time-saver and has made managing my online store so much easier. Definitely worth trying out!
M2
Magento 2 Store
Merchant · United States · User for 7 years
★★★★★
Excellent Extension
This extension is very useful. We use it to create auto sale categories and categories for other attributes such as featured, bestselling, etc. A very useful feature is to be able to import the rules that auto select the products from one category to the others. It saves us lots of time. We highly recommend it.
S
Sal
Developer · United States · User for 7 years
★★★★★
Dynamic Category Works Great!
This dynamic category extension allowed us to create a very detailed backend with products filtered down to very specific attributes. By doing this, we allow products to use both the elastic search to filter products or they can go directly into the folder that already has all the filters applied.
S
Studioraz
Ecommerce Agency · Israel · User for 7 years
★★★★★
This is a great extension and essential extension for every Magento store
As Ecommecrce agency we use this extension for most of our projects, Its simplify assigning products dynamically to their categories based on specific attribute values.
MM
Mannan Mughal
Merchant · Malaysia · User for 6 years
★★★★★
Easy & Most useful - Dynamic Category
It's been one year since I'm using Dynamic Category by Wyomind. Very useful & easy to use plugin.
I
Iphigenie
Merchant · United Kingdom · User for 6 years
★★★★★
A godsend for those with grouped products
It works perfectly for grouped products with either visible or hidden simple products. It can properly match on simple product attributes and return the parent product, including for date based attributes like "new to/new from" and sales conditions - better than every other similar "merchandising tool" I had tested before this. Been able to use it for all sorts of scenarios including creating categories that are used solely so other marketing modules like "product labels" or "product highlight" and other "landing pages" that are unable to manage with grouped products. With this module, they can be pointed to "products in xyz category" instead. Anyone who has grouped products will understand the relief of that! There's the odd mystery and early on it was triggering too much cache reset when refreshing a category (with livemage), but considering every other "highlight" "merchanding" or similar tool out there is unable to accommodate grouped products, this is brilliant.
V
VK
Ecommerce Agency · Netherlands
★★★★★
Worked well out of the box
Easy installation and worked pretty much as intended straight away. Saving us a great deal of time!
J
James
Merchant · United Kingdom · User for 10 years
★★★★★
Saves so much time! I highly recommend
I cant count how much time this extension has saved me over the years on magento 1, I highly recommend to anyone. I definitely will be using the magento 2 version on my next magneto project. Thanks Wyomind!
SH
Shane H
Merchant · United States · User for 8 years
★★★★★
Doesn't work, no support, no refund
I had the M1 version of this extension and used it without any issues. However, the M2 version has never worked properly. The does not automatically update categories on a schedule. I contacted support and they weren't helpful in resolving the issue. After spending thousands of dollars and 6+ months with our Magento SI trying to get this working, I gave up. I asked for a refund and it was refused.
S
Shane
Merchant · United States · User for 8 years
★★★★★
Excellent Extension
I have used the Wyomind dynamic category extension on my M1 store for several years. This extension offers a great deal of advanced capability to add and remove products to categories based on the criteria that I define. This is particularly useful to update sale categories that change as products special price starts and ends. Thanks to this extension, I have been able to set up the criteria and not have to manually update the categories. I particularly like the flexibility in the attributes that I can use to define the categories' critera. I would recommend this extension.
M
MitchT
Merchant · United Kingdom · User for 8 years
★★★★★
Best Auto Category for MAg 2
Ive tried several and even bought and removed two other extensions that under performed and under delivered This is the best auto dynamic category extension i can find after extensive resurch and implimentations A few nigling things were corrected in upgrade and support was great when i needed it
M
Matt
Merchant · United States · User for 7 years
★★★★★
Incredibly powerful and flexible category extension
All of our products come into Magento 2 from our inventory system with one category each. But we also want these products in a sale category, or a category for a specific type of activity, or maybe a time-of-year category This dynamic category extension allows us to populate many different categories with each of these products based on any number of attribute combinations. It's a game-changer, it's simple to use, and works extremely well.
J
Jesse
Netherlands · User for 8 years
★★★★★
Powerfull extension
We have been using Dynamic category for over a year now with excellent results. Highly recommended for creating large numbers of specific categories automatically.
O
OBuchan
Japan · User for 9 years
★★★★★
Dynamic category is cool extension
I use Dynamic Category to ease manege what's new category.
K-
Kevin - IT Executive
United States · User for 8 years
★★★★★
Lifesaver for huge Magento 2 catalog
We started our migration project 1.5 years ago, when there were just 3 extensions like that on the market and after some tests, Wyomind dynamic category turned out to be most complete and stable. Can't even imagine what we would do without it.
J
James
United Kingdom · User for 10 years
★★★★★
Saves us massive amounts of time - I cannot fault the product
Ive used the dynamic category extension for a long time now and I would not use anything else - it allows me to automate tens of thousands of products. Thank you!
J
Jan
Germany · User for 9 years
★★★★★
Very useful extension
This module is very easy to install, no problems at all. Once it is setup, it saves you a lot of time. It is definitely worth the money!
R
Ronny
Netherlands · User for 9 years
★★★★★
A extension which saves you hours of work
Very easy to use extension. Just add a filter of attributes to the categories and the extension does the rest! And when something is wrong, just contact the guys at support and they will help you very fast. Response time most times within 15 minutes!
A
Alexander
Germany · User for 9 years
★★★★★
must have
Makes my life easier. Worth of its money.
CO
Clicks Online Business
Germany · User for 10 years
★★★★★
Very good extensions and helpful support.
Very good extensions and helpful support.
Magento 2 Compatibility
Supported by our master extension versions
2.4.8
2.4.7
2.4.6
2.4.5
2.4.4
2.4.3
2.4.2
2.4.1
2.4
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3
Supported by our legacy extension versions
2.2.11
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2
2.1.18
2.1.17
2.1.16
2.1.15
2.1.14
2.1.13
2.1.12
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
Changelog
7.0.12
7.0.11
7.0.10
7.0.9
7.0.8
7.0.7
7.0.6
7.0.5
7.0.4
7.0.3
Bug fix
In the category page, filtering the product grid wasn't possible when a category had dynamic rules
7.0.2
Bug fix
Conditions calculation in storeview context for products associated to websites other than the current storeview's website.
7.0.1
Compatibility
Replace calls to Zend_Date, to comply with latest Mgaento 2 versions
7.0.0
Initial release for the master version
6.0.0 legacy
Initial release for the legacy version
5.0.1
Bug fix
Fix the condition resolution based on multiselect attributes
5.0.0
Compatibility
Compatibility with Magento v2.4.6 + PHP v8.2
4.1.0
Better schema upgrade and data upgrade management
Replace Zend_Db_Select with \Magento\Framework\Db\Select
Remove unwanted var_dump()
4.0.4
Php v8.1 compatibility improvement
4.0.3
Fix for the call of a method for the Magento logger
4.0.2
Fix for a bug that could cause half of the products in the category to refresh and clear the current category/product association
4.0.1
Fix when saving category/product associations for some categories
4.0.0
Improvement
Support for the MSI stock info: qty and stock status (source) and salable qty (stock)
3.3.7
Bug fix
Fix for replacing child products with parent products for Magento Enterprise
Fix in the case where a category has already a rule defined by Magento Visual Merchandiser for Magento Enterprise
3.3.6
Fix for the setup script to install the module at the same time than Magento
3.3.4
Improvement
Scenario updated for the demo
3.3.3
Minor fix on code
3.3.2
Fix for the error: Class WyomindDynamicCategoryModelPsrLogLoggerInterface does not exist
3.3.1
Minor fix on code
3.3.0
Improvement
Improved license management system (Clear code)
3.2.7
Scenario added for the demo
3.2.6
Bug fix
Generation of the product URLs by store view and of the ones including the category path
Improvement
Sample date available for the scenario
3.2.5
Fix on sample data
Fix on the Quantity rule
Compatibility with Magento 2.3.3
3.2.4
Improvement
Sample data
3.2.3
Improvement
Management of indexes
Option to refresh products in categories
Patch v3.2.3.7
New output when running wyomind:dynamiccategory:refresh_all
Patch v3.2.3.6
Fix for the product grid refresh after the conditions are updated
Patch v3.2.3.5
Display of products according to the website categories
Patch v3.2.3.4
Fix on the command line to reindex the categories
Patch v3.2.3.3
Fix on the command line to reindex the categories
Patch v3.2.3.2
Fix on a typo
Patch v3.2.3.1
Fix on a typo
3.2.2
Improvement
Ability to refresh the category product association even if the rules have not be updated
Patch v3.2.2.2
Fix on the cron task
Patch v3.2.2.1
Fix for allowing the latest rule to be deleted
3.2.1
Improvement
catalogsearch_fulltext is now invalided when new rules are save (Elasticsearch only)
Patch v3.2.1.1
Fix for allowing the latest rule to be deleted
3.2.0
Improvement
Magento v2.2.1 compatibilty
Patch v3.2.0.3
Fix for allowing the latest rule to be deleted
Patch v3.2.0.2
Fix to prevent the rules from being removed when the product tab isn't deployed
Patch v3.2.0.1
Magento Enterprise Edition compatibility
3.1.1
Improvement
Better url rewrite management
Patch v3.1.1.2
Fix for allowing the latest rule to be deleted
Patch v3.1.1.1
Fix to prevent the rules from being removed when the product tab isn't deployed
3.1.0
Improvement
Url rewrites generated on the fly when indexing products to categories
Patch v3.1.0.4
Fix for allowing the latest rule to be deleted
Patch v3.1.0.3
Fix to prevent the rules from being removed when the product tab isn't deployed
Patch v3.1.0.2
fix for missing method _validateProduct() for boolean attributes and stocks attributes
Patch v3.1.0.1
Fix for the manual assignation of the products
3.0.2
Improvement
Attributes categories installation process improved
Patch v3.0.2.7
Fix for allowing the latest rule to be deleted
Patch v3.0.2.6
Fix to prevent the rules from being removed when the product tab isn't deployed
Patch v3.0.2.5
fix for missing method _validateProduct() for boolean attributes and stocks attributes
Patch v3.0.2.4
Fix for the manual assignation of the products
Patch v3.0.2.3
Indexing issues with cron jobs are fixed
Patch v3.0.2.2
Attribute set condition fixed
Patch v3.0.2.1
Fix on attributes category installation
3.0.1
Bug fix
Generic product attributes can now be used to create category rules
Patch v3.0.1.7
Fix for allowing the latest rule to be deleted
Patch v3.0.1.6
Fix to prevent the rules from being removed when the product tab isn't deployed
Patch v3.0.1.5
fix for missing method _validateProduct() for boolean attributes and stocks attributes
Patch v3.0.1.4
Fix for the manual assignation of the products
Patch v3.0.1.3
Indexing issues with cron jobs are fixed
Patch v3.0.1.2
Fix for the attribute_set condition
Patch v3.0.1.1
Fix on product type rule
3.0.0
Magento 2 stable release
Patch v3.0.0.3
Fix for allowing the latest rule to be deleted
Patch v3.0.0.2
Fix to prevent the rules from being removed when the product tab isn't deployed
Patch v3.0.0.1
Fix for the manual assignation of the products
Feature request
Specific needs or any ideas of enhancements and new features to add to the extension? Tell us more, we'll get back to you shortly!