Skip to content

🏆 Main features

Introducing Elasticsuite 2.12.x for Magento 2.4.9

Magento 2.4.9 was officially released two weeks ago with, sadly, some breaking changes that were not present in the its latest beta because we all need a bit of fun and adventure in our lives /s.

Since some fixes were not possible to integrate in the 2.11.x branch (which was already stretched on a wide range of PHP, MySQL/MariaDB and Elasticsearch/OpenSearch versions, let’s be honest), the location of 2.4.9+ Elasticsuite compatibility will be the 2.12.x branch and this is its first official 2.12.0 release.

💎 Highlighting of autocomplete search results

To enable the highlighting of matched text in the popular term and product autocomplete search results, new settings are available at
Stores > Configuration > Elasticsuite > Autocomplete > Popular Term Autocomplete > Highlight Results

Stores > Configuration > Elasticsuite > Autocomplete > Product Autocomplete > Highlight Results

The feature is available both in the legacy React-based and Vanilla JS InstantSearch autocomplete.

For popular terms, the text matching the initial user query is highlighted.
For products, the text matching the actual search term(s) used to search for products is highlighted, so the behavior will vary according to the situation and the search terms expansion rules dictated by the settings below Stores > Configuration > Elasticsuite > Autocomplete > Advanced Settings.

The example shown below reflects the default settings where the products found are those matching the popular search term « yoga bag », thus both term « yoga » and « bag » highlighted in the visible products.

Future releases might provide
– additional finer grain settings to control the highlighting
– highlighted of additional sections of the autocomplete

💎 Ability to migrate only the top X legacy category product positions

We’ve introduced a few releases ago the CLI bin/magento interactive command elasticsuite:category-position:migrate to allow you to migrate your legacy product positioning in categories to the Elasticsuite specific positioning.
This release adds an interactive step where you can restrict the number of original positions to retain per category.


/var/www/html $ php bin/magento elasticsuite:category-position:migrate
Transfer negative positions to positive and contiguous ones? (y/n) [default: n] y
Transfer zero positions? (y/n) [default: n] n
Transfer positive positions? (y/n) [default: y] y
It can be useful to set a limit on the number of positions to migrate per category, since you probably want to only make sure that:

or even better, the first two rows of the first page
to let your optimizers merchandise the rest automatically.
Setting a low limit also avoids slowing down category pages in the BO
Maximum number of positions (negative then positive) per category to migrate (leave blank for all matching positions): 5

This is particularly useful if you have a catalog with a significant size and some categories with a lot of products positioned, to avoid the performance issues associated with the Elasticsuite category preview having to deal with more than 200 or even 500 products positioned.
This is also a way for you, on a per-category basis for instance, to try relying more and more on the Optimizers feature to merchandise your categories.

💎 Frontend performance: delayed loading of Vanilla JS InstantSearch Javascript

To improve your site FCP (First Contentful Paint) score, the InstantSearch Vanilla JS components are now loaded with defer by default.
The React version of the InstantSearch will follow in an upcoming release.

Please be advised that regarding the Elasticsuite tracker, for the time being, it is not possible to relocate and use delayed (defer) or asynchronous (async) execution for the two render-blocking scripts located in the .

📦 Features

  • [Catalog] Option to limit max number of product positions migration command
  • 💎 [InstantSearch] Highlighting of results (products, terms)
  • 💎 [LayeredNavigation] Add discount percentage filter
  • [Tracker] Add child simple order item of configurable product

🧰 Technical

  • 💎 [BehavioralAutocomplete] Better performance for trending queries
  • [Catalog] Allow override filter type for specific attributes
  • [Catalog] Change the visibility of the private methods for Decimal filter
  • [Catalog] Removing remnant of facet coverage computation
  • [Catalog] Support percent as UNIT in attribute property display_pattern (slider)
  • 💎 [Compat] 2.4.9/Symfony 7.x compat
  • [Core] Fixing 2.4.9/PHPUnit issues (PHPUnit 12 required in 2.4.9)
  • [Core] Fixing PHPUnit 12 deprecations (dataProvider as PHP annotations)
  • [Core] Remove PHPUnit notice on mock object without expectations
  • 💎 [Core] Update composer constraint for 2.12.0 releases
  • [Core] Stemming override rule for Swedish (SE)
  • [Core] Introducing support for highlighting results
  • 💎 [Explain] Remove erroneous reference to Ab Campaign
  • 💎 [Explain] Decouple Explain and BehavioralOptimizer module
  • [Optimizer] Replace « validate-number-range » rule with a combination of the built-in rules
  • 💎 [InstantSearch] Add defer true to VanillaJS instant search scripts
  • [RuleEngine] Attribute Locator interface
  • [RuleEngine] Attribute Locator interface, refactor Optimizer locator with filter pool, update tests
  • 💎 [RuleEngine][AbCampaign] Attribute Locator interface, add A/B optimizer attribute location provider and tests
  • [Tracker] 2.4.9/Symfony 7.x compat
  • [Tracker] Add missing return type declaration
  • [Tools] Update 20-integration.yml
  • 💎 [Tools] PHPUnit: make dataproviders static
  • 💎 [Tools] PHPUnit: dataproviders as annotations

🐛 Fixes

  • [Catalog] Remove obsolete jquery-ui-modules/core dependency for Magento 2.4.9 compatibility
  • [Catalog] Fixes issue 3801 Prevent duplicate queries (2.10.x)
  • [Catalog] Fix category position migrator visibility join for CE/Mage-OS (2.10.x)
  • [Catalog] Fix: use catalog_product_entity join for visibility in category position migrate
  • [Core] Fix issue 3822, search placeholder german translation
  • [Core] Adding missing Search Relevance Config controller
  • [Core] Fixes issue 3815 search relevance config form
  • [Core] Fix condition check for mouseout event
  • [Core] Fix condition check for mouseout event (2.10.x)
  • [Core] Fix issue 3828, PHP operator precedence bug in Config.php
  • 💎 [Healthcheck] Add missing modules to PackageVersionsMismatchCheck
  • 💎 [Healthcheck] Add missing modules to PackageVersionsMismatchCheck (2.11.x)

Full Changelogs :

2.12.0: 2.11.18.1…2.12.0
2.11.19: 2.11.18.1…2.11.19
2.10.34: 2.10.33.1…2.10.34