This release introduces a new field (page.order.items.date) in the Elasticsuite tracker related behavioral data indices which requires
updating the mapping of tracker_log_event indices where the field does not exist yet in the mapping fixing the mapping of tracker_log_event indices where the field already exists but with the wrong type which requires “cloning” those indices and re-indexing them locally
in all likelihood, this should concern only the last created tracker_log_event indices (one per store)
the re-indexing operation should be pretty quick, even with millions of events on such indices updating all orders events to propagate the order date to the page.order.items.date structure
which will take more time the bigger your retention delay and the more numerous your average number of sales per month
The steps above are automated in a Magento data upgrade script, executed by setup:upgrar.
๐ Main features
๐ Introducing revenue as a metric
We’re introducing a new Elasticsuite Premium composer package named smile/module-elasticsuite-category-monitoring.
It provides a new module Smile_ElasticsuiteCategoryMonitoring whose feature is a new menu entry under “Elasticsuite Categories > Virtual Categories Dashboard“.
As its name suggests, it provides a screen listing all your virtual categories with some relevant information, alerts if need be and a direct link to go edit the virtual category.r.
Products accumulated revenue is now available as a behavioral data metric with the ability to create behavioral optimizers on
โข Total revenue (accumulated revenue on the whole behavioral data retention delay)
โข Cumulative revenue on the lastย 30ย days (accumulated revenue on the “daily” stats window, which isย 30ย days by default)
โข Cumulative revenue on the lastย 60ย days (accumulated revenue on the “weekly” stats window, which isย 60ย days by default)
โข Averaged daily revenue on the last fullย 7ย days (moving average indicated as “on the lastย 30ย days”)
โข Averaged weekly revenue on the last fullย 4ย weeks (moving average indicated as “on the last โข 60_days”)
(This is a reminder that we haven’t introduced yet the ability to extend the moving average metrics computation for all metrics to use the full window available for “daily” and “weekly” stats. This is something tuate your virtual categories.
๐Changes for the โBased on attribute valueโ and โBased on behavioral dataโ optimizers
The โBased on attribute valueโ andย ย โBased on behavioral dataโ rely on a per-product value (attribute value or behavioral metric, respectively) to determine their boost.
That raw value is multiplied by a โscale factorโ (the same for all products) which is valued at 1 by default but could be changed in the optimizer edit form field โBoost value (multiplier)โ.
Thatย field has been renamedย to be (we hope !) more explicit :.
โMetric value pre-multiplierโ forย ย โBased on behavioral dataโ optimizers
It is also now located just below the attribute or metric select field.r.
โAttribute value pre-multiplierโ for โBased on attribute valueโ optimizers
- โข either to all categories
- โข or only to some categories

Preventing โnegative boostingโ when the product value is too low
The per-product attribute/metric value, multiplied by that โscale factorโ / value pre-multiplier can then be passed through a function represented by the โBoost impactโ to potentially reduce the actual score boost it will generate
- the High boost impact is the identify function
if the pre-multiplied attribute/metric value is 10, your product score will be multiplied by 10
if the pre-multiplied attribute/metric is 100, your product score will be multiplied by 100
this means huge differences in attribute or metric value will generate huge differences in score multipliers
- the Medium boost impact uses the square root function
if the pre-multiplied attribute/metric value is 10, your product score will be multiplied by ~3.16
if the pre-multiplied attribute/metric is 100, your product score will be multiplied by 10
this helps reduce the range of score multipliers compared to the original range of attribute/metric value between products
- the Low boost impact uses the common (decimal) logarithm to reduce the attribute/metric value+1 more aggressively
if the pre-multiplied attribute/metric value is 10, your product score will be multiplied by ~1.041
if the pre-multiplied attribute/metric value is 50, your product score will be multiplied by ~1.707
if the pre-multiplied attribute/metric is 100, your product score will be multiplied by ~2.004
Historically, we only made sure to exclude any product with an invalid value for the function behind each boost impact.
But that didnโt prevent some products with a defined but low attribute/metric value from being actually penalized compared to products without any value.
For instance, for an optimizer
- – boosting products according to their average daily sales number
- – with a โBoost value (multiply)โ (now named โMetric value pre-multiplierโ) of 1 (default value)
- – and the โLow impactโ selected
a product with an average daily sales of 5 would actually get a score multiplier of 0.77, so lowering its final, compared to a new product with no sales at all yet
The introduced changes now make sure to exclude any product with an attribute/metric value too low to result in a score multiplier greater than 1 :
for the High and Medium impact, that will be 1 and lower (divided by the pre-multiplier)
for the Low impact, that will be 9 and lower (divided by the pre-multiplier)
Given the previous example, the product with an average daily sales of 5 will no longer be penalized, but it wonโt be boosted either.
The solution in this case, which is the traditional one when using the โLow impact boostโ is to use an โAttribute/Metric value pre-multiplierโ of 10 instead of 1.
If for whatever reason, you want for a given Attribute value/Behavioral data optimizer, to revert back to the historical behavior, you can do so with switching to Yes the new optimizer parameter โAllow negative boostโ.
Its default value is No to make all existing optimizers benefit from the new products exclusion mechanism

๐ฆ Features
- ๐[BehavioralData] Introduce revenue as a metric
- [Catalog] Implementing Category permissions
- ๐[BehavioralOptimizer] Move up and change label for โBoost value (multiplier)โ
- ๐[BehavioralOptimizer] Scale function/factor dependant products exclusion
- [CatalogOptimizer] Move up and change label for โBoost value (multiplier)โ
- [CatalogOptimizer] Scale function/factor dependant products exclusion
- [CatalogOptimizer] Adding the products SKU in the preview area
- ๐[Explain] Display alternative queries weight
- [Healthcheck] Introduce the notion of Severity for checks
- [Healthcheck] Severity color coding
๐ป Technical
- [CatalogRule] Adding basic unit tests
- [Core] Allow providing a value for โmissingโ values in sort order params
- [Healthcheck] No menu decoration if Debug Mode enabled
- [Tools] Code quality to use PHP 8.1 to support associative array unpacking
- [Tracker] Make sure the order date is available at the order items level
- [Virtual Category] Prevent using cached query for sub virtual category
๐ Fixes
- ๐ [Explain] All store views optimizers not indexed in percolator
- ๐[Explain] All store views optimizers not visible in Explain
- [Healthcheck] Prevent shift of Admin Menu
- [Healthcheck] Fixing invalid package version reading