Skip to content

2.12.0

Choose a tag to compare

@rbayet rbayet released this 01 Jun 13:34
· 135 commits to 2.12.x since this release

馃弳 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 in Elasticsuite Premium 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.
image

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: 
 - the first page of products is migrated as is ; 
 - 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 <head>.

馃摝 Features

  • [Catalog] Option to limit max number of product positions migration command by @rbayet in #3858
  • 馃拵 [InstantSearch] Highlighting of results (products, terms) by @rbayet
  • 馃拵 [LayeredNavigation] Add discount percentage filter by @vahonc
  • [Tracker] Add child simple order item of configurable product by @rbayet in #3819

馃悰 Fixes

  • [Catalog] Remove obsolete jquery-ui-modules/core dependency for Magento 2.4.9 compatibility by @vahonc in #3857
  • [Catalog] Fixes #3801 Prevent duplicate queries (2.10.x) by @rbayet in #3832
  • [Catalog] Fix category position migrator visibility join for CE/Mage-OS (2.10.x) by @rbayet in #3838
  • [Catalog] Fix: use catalog_product_entity join for visibility in category position migrate by @mtytula in #3841
  • [Core] Fix #3822, search placeholder german translation by @vahonc in #3823
  • [Core] Adding missing Search Relevance Config controller by @rbayet in #3829
  • [Core] Fixes #3815 search relevance config form by @rbayet in #3830
  • [Core] Fix condition check for mouseout event by @groomershop-mt in #3833
  • [Core] Fix condition check for mouseout event (2.10.x) by @rbayet in #3834
  • [Core] Fix #3828, PHP operator precedence bug in Config.php by @vahonc in #3831
  • 馃拵 [Healthcheck] Add missing modules to PackageVersionsMismatchCheck by @rbayet
  • 馃拵 [Healthcheck] Add missing modules to PackageVersionsMismatchCheck (2.11.x) by @rbayet

馃捇 Technical

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

New Contributors

Full Changelog: 2.11.18.1...2.12.0