Releases: Smile-SA/elasticsuite
2.11.19-rc1
📦 Features
- 💎 [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
- [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
💻 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] 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] Stemming override rule for Swedish (SE) by @rbayet in #3818
- [Core] Introducing support for highlighting results by @rbayet in #3827
- [Tracker] 2.4.9/Symfony 7.x compat by @rbayet in #3820
Full Changelog: 2.11.18.1...2.11.19-rc1
2.10.34-rc1
📦 Features
- 💎 [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
- [Core] Fix #3822, search placeholder german translation by @vahonc in #3823
- [Core] Adding missing Search Relevance Config controller by @rbayet in #3829
💻 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] Support percent as UNIT in attribute property display_pattern (slider) by @vahonc in #3825
- [Core] Stemming override rule for Swedish (SE) by @rbayet in #3818
- [Core] Introducing support for highlighting results by @rbayet in #3827
Full Changelog: 2.10.33.1...2.10.34-rc1
2.11.18.1
Maintenance release
Both Elasticsuite and Magento native search features rely on the opensearch-project/opensearch-php package which provides an Elasticsearch/OpenSearch PHP client.
As Magento requirement for that package was less restrictive than Elasticsuite's latest 2.11.x versions, trying to install Elasticsuite's for the first time with composer require smile/elasticsuite ~2.11.0 on a Magento 2.4.8/2.4.8-pX version would
- actually install Elasticsuite version 2.11.10 (published in december 2024 !)
- force one to retry installing Elasticsuite using the
composer requireoption--with-all-dependenciesto allow composer to downgrade theopensearch-project/opensearch-phppackage to a version meeting Elasticsuite's stricter requirements
This release relaxes Elasticsuite's requirement on opensearch-project/opensearch-php versions and so should greatly reduce the need to use the --with-all-dependencies for installing Elasticsuite for the first time to the cases where a known buggy (performance wise) version of opensearch-project/opensearch-php is already installed (versions 2.4.0, 2.4.1 and 2.4.2).
🐛 Fixes
- 💎 [Beacon] Fix reading the client ID by @rbayet
- [Core] Restrict min score to real fulltext queries/containers by @rbayet in #3814
💻 Technical
- Relax opensearch-php compatibility by @romainruaud in #3811
- [Core] Extending coverage on queries/query builder by @rbayet and @vahonc in #3797
- [Core] Backport request container getters by @rbayet in #3813
Full Changelog: 2.11.18...2.11.18.1
2.10.33.1
Maintenance release
🐛 Fixes
- 💎 [Beacon] Fix reading the client ID by @rbayet
- [Core] Restrict min score to real fulltext queries/containers by @rbayet in #3814
💻 Technical
- [Core] Extending coverage on queries/query builder by @rbayet and @vahonc in #3797
- [Core] Backport request container getters by @rbayet in #3813
Full Changelog: 2.10.33...2.10.33.1
2.11.18
🏆 Main features
Catalog: Tool to migrate product positions in categories
Elasticsuite uses a specific database table to contain manual product positions in categories.
The logic being that
- Elasticsuite's optimizers feature should relieve you from the cumbersome task of manually merchandise your products in all categories for the most part
- but then you still had the ability to assign manual positions there and there
Up to now, when migrating to Elasticsuite, if you really wanted to keep some legacy manual product positions in some categories, you had to manually migrate the data from the native Magento database table catalog_category_product to Elasticsuite's smile_virtualcategory_catalog_category_product_position with a custom data setup or executing SQL queries in your database.
This release introduces the interactive CLI command elasticsuite:category-position:migrate which allows you to migrate product positions either for specific categories (or all if you really feel like it, even though we don't recommend it).
/var/www/html $ php bin/magento elasticsuite:category-position:migrate --help
Description:
Migrate category product positions to ElasticSuite table.
Usage:
elasticsuite:category-position:migrate [options]
Options:
--category=CATEGORY Category ID to migrate (omit to process all categories).
--dry-run Dry-run: preview only (no database changes will be made).
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
As Elasticsuite only supports strictly positive positions and to be able to only pick some positions, the command will ask you how to deal with
- negative positions
- zero positions
- positive positions
/var/www/html $ php bin/magento elasticsuite:category-position:migrate --dry-run
Transfer negative positions to positive and contiguous ones (y/n) y
Transfer zero positions? (y/n) n
Transfer positive positions? (y/n) y
We encourage you to use the "dry run" mode and to test on a select few categories.
💎 Product recommender: option to add parent grouped product(s) to Upsell recommendations
Elasticsuite already provides an option to keep the native Magento behavior of automatically adding the parent bundle products to the manual Upsell recommendations of a product.
This release introduces the Stores > Configuration > Elasticsuite > Recommender > Upsell products > Systematically add parent grouped products to manually selected upsell products setting that will allow you to do that for the parent grouped product(s) of the product you want Upsell recommendations for.
📦 Features
- [Catalog] Feature #3464, migrate legacy product positions in categories to ElasticSuite by @vahonc in #3698
- 💎 [Explain] Behavioral Boosts score detail: extract metrics value and show on tooltip by @vahonc
- 💎 [Recommender] Upsell: add ability to automatically add parent grouped products as well as bundle by @rbayet
🐛 Fixes
- 💎 [Metapackages][GoogleAnalytics] Removing GA module from magento/CE metapackages by @rbayet
- 💎 [Explain] Fix null coalesce on translation string generating error by @vahonc
- [Swatch] Fix error when value is not an array fixes #3800 by @PierreGauthier in #3806
- [VirtualCategories] Fixes #3055 Router vs subcategories w/ same url_key by @rbayet in #3802
💻 Technical
- [Core] Extra unit tests/deprecation fixes by @rbayet in #3795 and #3796
- 💎 [Explain] Differenciate visually highlight and field raw value if multiple values by @rbayet
Full Changelog: 2.11.17.1...2.11.18
2.10.33
🏆 Main features
Catalog: Tool to migrate product positions in categories
Elasticsuite uses a specific database table to contain manual product positions in categories.
The logic being that
- Elasticsuite's optimizers feature should relieve you from the cumbersome task of manually merchandise your products in all categories for the most part
- but then you still had the ability to assign manual positions there and there
Up to now, when migrating to Elasticsuite, if you really wanted to keep some legacy manual product positions in some categories, you had to manually migrate the data from the native Magento database table catalog_category_product to Elasticsuite's smile_virtualcategory_catalog_category_product_position with a custom data setup or executing SQL queries in your database.
This release introduces the interactive CLI command elasticsuite:category-position:migrate which allows you to migrate product positions either for specific categories (or all if you really feel like it, even though we don't recommend it).
/var/www/html $ php bin/magento elasticsuite:category-position:migrate --help
Description:
Migrate category product positions to ElasticSuite table.
Usage:
elasticsuite:category-position:migrate [options]
Options:
--category=CATEGORY Category ID to migrate (omit to process all categories).
--dry-run Dry-run: preview only (no database changes will be made).
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
As Elasticsuite only supports strictly positive positions and to be able to only pick some positions, the command will ask you how to deal with
- negative positions
- zero positions
- positive positions
/var/www/html $ php bin/magento elasticsuite:category-position:migrate --dry-run
Transfer negative positions to positive and contiguous ones (y/n) y
Transfer zero positions? (y/n) n
Transfer positive positions? (y/n) y
We encourage you to use the "dry run" mode and to test on a select few categories.
💎 Product recommender: option to add parent grouped product(s) to Upsell recommendations
Elasticsuite already provides an option to keep the native Magento behavior of automatically adding the parent bundle products to the manual Upsell recommendations of a product.
This release introduces the Stores > Configuration > Elasticsuite > Recommender > Upsell products > Systematically add parent grouped products to manually selected upsell products setting that will allow you to do that for the parent grouped product(s) of the product you want Upsell recommendations for.
📦 Features
- [Catalog] Feature #3464, migrate legacy product positions in categories to ElasticSuite by @vahonc in #3698
- 💎 [Explain] Behavioral Boosts score detail: extract metrics value and show on tooltip by @vahonc
- 💎 [Recommender] Upsell: add ability to automatically add parent grouped products as well as bundle by @rbayet
🐛 Fixes
- 💎 [Metapackages][GoogleAnalytics] Removing GA module from magento/CE metapackages by @rbayet
- 💎 [Explain] Fix null coalesce on translation string generating error by @vahonc
- [Swatch] Fix error when value is not an array fixes #3800 by @PierreGauthier in #3806
- [VirtualCategories] Fixes #3055 Router vs subcategories w/ same url_key by @rbayet in #3802
💻 Technical
- [Core] Extra unit tests/deprecation fixes by @rbayet in #3796
- 💎 [Explain] Differenciate visually highlight and field raw value if multiple values by @rbayet
Full Changelog: 2.10.32.1...2.10.33
2.11.17.1
Maintenance release
💻 Technical
- [Catalog] Prevent XSS in the filter's search box by @saltomorales in #3793
- [Core] Adding extra unit tests by @rbayet in #3792
- [Thesaurus] Do not always enforce SPELLING_TYPE_EXACT for rewritten queries by @rbayet in #3791
Full Changelog: 2.11.17...2.11.17.1
2.10.32.1
Maintenance release
💻 Technical
- [Catalog] Prevent XSS in the filter's search box (2.10.x) by @saltomorales in #3794
- [Core] Adding extra unit tests by @rbayet in #3792
- [Thesaurus] Do not always enforce SPELLING_TYPE_EXACT for rewritten queries by @rbayet in #3791
Full Changelog: 2.10.32...2.10.32.1
2.11.17
🏆 Main features
💎 Amasty compatibility module
The new Elasticsuite Premium package smile/module-elasticsuite-amasty-compatibility (module Smile_ElasticsuiteAmastyCompatibility) provides seamless compatibility with the following Amasty modules (and their own Hyvä compatibility modules)
- Shop by Brand module (
amasty/module-shop-by-brandandamasty/module-shop-by-brand-hyva-compatibility) - Quick Order module (
amasty/module-quick-orderandamasty/module-quick-order-hyva) - Ajax Infinite Scroll module (
amasty/ajax-scrollandamasty/module-scroll-hyva)
It handles automatically the presence of any of those Amasty feature modules.
As it can also handle the total absence of those modules without any side effect, it is already part of our Elasticsuite Premium metapackages smile/elasticsuite-premium-commerce and smile/elasticsuite-premium-magento.
Performing a composer upgrade -w [your-elasticsuite-premium-metapackage] will thus automatically install that new package / module.
💎 Instant Search: better support of special prices, multiple currencies and displaying prices including/excluding tax
The Elasticsuite Premium Instant Search module now displays the original price of products having a special price :

It also handles Magento stores with multiple currencies configured :

Based on your price input and tax display configurations, for instance if the product prices are entered excluding tax in Magento admin and are supposed to be displayed including tax (or including and excluding tax), the Instant Search products price rendering will adapt accordingly :

📦 Features
- 💎 [AmastyCompat] Add module to metapackages by @rbayet
- [Healthcheck] Feature #3769, introduce invalid tracker events check by @vahonc
- 💎 [InstantSearch] Display original price if discount price by @rbayet
- 💎 [InstantSearch] Support multi-currencies stores by @rbayet
- 💎 [InstantSearch][Hyva] Support multi-currencies stores by @rbayet
- 💎 [InstantSearch] Display prices incl. or excl. tax according to store configuration by @rbayet
- [Thesaurus] Fix #3768, remove warning if term repeated only in right hand side of expansions by @vahonc in #3771
- 💎 [Virtual Attribute] Add "is one of" operator by @PierreGauthier
🐛 Fixes
- 💎 [AB Campaign] Fix ab campaign aggregator fix #392 by @PierreGauthier
- [Catalog] Fixes #3750 type issue by @rbayet in #3761
- [CatalogSearch] Fix #3774, cannot configure expanding filters at store level by @vahonc in #3783
- [Indexing] Fixes #3685 - Prevent fallback on default store value when… by @PierreGauthier in #3789
- 💎 [InstantSearch] Fix warning message by @PierreGauthier
- [Optimizers] Fix MariaDB with a whitelist file by @rbayet in #3763
- [Query Building] Better word count for multibyte string fix #3235 by @PierreGauthier in #3773
- [Swatch] Fix #3646 – Use fallback image when a child product has no image by @PierreGauthier in #3790
- [ThesaurusImport] Fix #3723, refactoring thesaurus import model by @vahonc in #3787
- [Tracker] Fix "add to cart" events structure by @rbayet in #3755
- [VirtualCategories][Admin] Fixes #3784, icon missing from virtual categories in category tree by @vahonc in #3786
- 💎 [Virtual Rule] Better management of removing old value for multiselect attribute by @PierreGauthier
💻 Technical
- 💎 [Analytics][AB Campaign] Fix #396, update position of the AB Testing Campaign block by @vahonc
- [Analytics] Optimization of KPI report(s) by @rbayet in #3753
- [Analytics][Dashboard] Update positions of the blocks by @vahonc in #3759
- 💎 [CascadeSearch] Add missing db_schema_whitelist.json by @rbayet
- [Core] Adding missing db_schema_whitelist.json files by @rbayet in #3764
- [Core] Add missing db_schema_whitelist.json for db_schema.xml managed tables (2.10.x) by @rbayet in #3762
- [Core] Support translating install options for opensearch to elasticsuite config by @rbayet in #3788
- [Cosmetic] Fix #3770, add a new brand identity logo by @vahonc in #3776
- 💎 [Explain] Updated thesaurus index constructor by @rbayet
- 💎 [InstantSearch] Remove lazy loading of ACP component by @rbayet
- 💎 [MetaPackages] Changing dependency syntax to self.version by @rbayet
- 💎 [NeuralSearch] Add missing db_schema_whitelist.json by @rbayet
Full Changelog: 2.11.16.1...2.11.17
2.10.32
🏆 Main features
💎 Amasty compatibility module
The new Elasticsuite Premium package smile/module-elasticsuite-amasty-compatibility (module Smile_ElasticsuiteAmastyCompatibility) provides seamless compatibility with the following Amasty modules (and their own Hyvä compatibility modules)
- Shop by Brand module (
amasty/module-shop-by-brandandamasty/module-shop-by-brand-hyva-compatibility) - Quick Order module (
amasty/module-quick-orderandamasty/module-quick-order-hyva) - Ajax Infinite Scroll module (
amasty/ajax-scrollandamasty/module-scroll-hyva)
It handles automatically the presence of any of those Amasty feature modules.
As it can also handle the total absence of those modules without any side effect, it is already part of our Elasticsuite Premium metapackages smile/elasticsuite-premium-commerce and smile/elasticsuite-premium-magento.
Performing a composer upgrade -w [your-elasticsuite-premium-metapackage] will thus automatically install that new package / module.
💎 Instant Search: better support of special prices, multiple currencies and displaying prices including/excluding tax
The Elasticsuite Premium Instant Search module now displays the original price of products having a special price :

It also handles Magento stores with multiple currencies configured :

Based on your price input and tax display configurations, for instance if the product prices are entered excluding tax in Magento admin and are supposed to be displayed including tax (or including and excluding tax), the Instant Search products price rendering will adapt accordingly :

📦 Features
- 💎 [AmastyCompat] Add module to metapackages by @rbayet
- [Healthcheck] Feature #3769, introduce invalid tracker events check by @vahonc in #3782
- 💎 [InstantSearch] Display original price if discount price by @rbayet
- 💎 [InstantSearch] Support multi-currencies stores by @rbayet
- 💎 [InstantSearch][Hyva] Support multi-currencies stores by @rbayet
- 💎 [InstantSearch] Display prices incl. or excl. tax according to store configuration by @rbayet
- [Thesaurus] Fix #3768, remove warning if term repeated only in right hand side of expansions by @vahonc in #3771
- 💎 [Virtual Attribute] Add "is one of" operator by @PierreGauthier
🐛 Fixes
- 💎 [AB Campaign] Fix ab campaign aggregator fix #392 by @PierreGauthier
- [Catalog] Fixes #3750 type issue by @rbayet in #3761
- [CatalogSearch] Fix #3774, cannot configure expanding filters at store level by @vahonc in #3783
- [Indexing] Fixes #3685 - Prevent fallback on default store value when… by @PierreGauthier in #3789
- 💎 [InstantSearch] Fix warning message by @PierreGauthier
- [Query Building] Better word count for multibyte string fix #3235 by @PierreGauthier in #3773
- [Swatch] Fix #3646 – Use fallback image when a child product has no image by @PierreGauthier in #3790
- [ThesaurusImport] Fix #3723, refactoring thesaurus import model by @vahonc in #3787
- [Tracker] Fix "add to cart" events structure by @rbayet in #3755
- [VirtualCategories][Admin] Fixes #3784, icon missing from virtual categories in category tree by @vahonc in #3786
- 💎 [Virtual Rule] Better management of removing old value for multiselect attribute by @PierreGauthier
💻 Technical
- 💎 [Analytics][AB Campaign] Fix #396, update position of the AB Testing Campaign block by @vahonc
- [Analytics] Optimization of KPI report(s) by @rbayet in #3753
- [Analytics][Dashboard] Update positions of the blocks by @vahonc in #3759
- 💎 [CascadeSearch] Add missing db_schema_whitelist.json by @rbayet
- [Core] Add missing db_schema_whitelist.json for db_schema.xml managed tables (2.10.x) by @rbayet in #3762
- [Core] Support translating install options for opensearch to elasticsuite config by @rbayet in #3788
- [Cosmetic] Fix #3770, add a new brand identity logo by @vahonc in #3776
- 💎 [Explain] Updated thesaurus index constructor by @rbayet
- 💎 [InstantSearch] Remove lazy loading of ACP component by @rbayet
- 💎 [MetaPackages] Changing dependency syntax to self.version by @rbayet
Full Changelog: 2.10.31.1...2.10.32