Skip to content

2.8.0

Compare
Choose a tag to compare
@romainruaud romainruaud released this 30 Apr 13:52
· 371 commits to 2.8.x since this release

📦 Main Features :

Merchandising Analytics :

On this version we added a Search Usage dashboard.

Main goal is to display to the merchants merchandiser team a dashboard displaying the following panels :

  • Global metrics : number of searches, pages views, sessions with/without search and number of unique visitors.
  • Popular search terms : to see what is actually trending, and how often a given search term is bringing conversion.
  • Spellchecked search terms : to identify common mistakes and fix them with Thesaurus.
  • 0 results search terms : to create a redirect for these search terms or to customize them.
  • Percentage of sessions with search against sessions without search.
  • Percentage of spellchecked requests.
  • Conversion rate for session with search against sessions without search.

Other features :

  • We refactored the category filter in catalog navigation (#1388). Now, via the configuration, you can set them to be used as a drill-down mechanism, which will keep you on the current page and add a filter on the category : this allow the user to keep any previously applied filter when filtering on a category (instead of losing all of them when being redirected).

This relies on a Configuration settings :

Stores > Configuration > ElasticSuite > Catalog Search > Use URL Rewrites for Category Filter in category navigation

Default will be "Yes", which means the legacy behavior will remain by default. If set to "No", you'll be able to have a category filter which behave as a "drill down" mechanism.

  • Added a deprecation plugin to allow proper stock indexing for stores that are not using the MSI modules (#1382).

  • You can now read and write the virtual categories rules via API (#1384).

💻 Technical

  • We refactored the aggregations system (#1258) : coverage rate of facets is now handled directly from the context and currently applied filters. The Collection is not handling anymore the logic to append facets, and the navigation block is not applying them anymore. This allows us to have a complete API centric aggregations system and guarantee them to work the same way when going through the Magento API or through a traditional template engine.

⚠️ The addFacet(), loadProductCount(), getProductCountByAttributeSet(), getProductCountByAttributeCode() method of the Collection that were previously set as deprecated have been removed.

If you wrote previously any custom filter based on the addFacet() or addFacetToCollection() removed method, you have to migrate them into an implementation of Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationInterface. You can see the default implementations for category, price, attribute and decimal here . they contain the same logic that was previously applied by the Attribute Filter Model.

  • We added better caching for the indices configuration (mappings & fields). This allows better performances because previously we had to rebuilt the indices config for each query.

⚠️ We moved the Datasources outside the elasticsuite_indices.xml file. Now they have to be injected via the DI into the Smile\ElasticsuiteCore\Api\Index\DataSourceResolverInterface. For now, we still support datasources defined in the legacy way via the elasticsuite_indices.xml file but this support will be dropped on next major version.

If you did write custom datasources, you'll have to move their declaration into the DI.

  • We began our journey for the Elasticsearch 7 implementation and therefore :
    • we deprecated Types since they are removed in Elasticsearch 7 (\Smile\ElasticsuiteCore\Api\Index\TypeInterface is deprecated, so does all pieces of code related to types)

⚠️ We'll drop support of ElasticSearch 5 in next major release and will support only ES 6 and ES 7.

  • We added the support for pipelines into aggregations building (#1296).

Fixed :

  • An issue (#1387) causing improper computation of virtual category rules based on a list of SKUs (#1394).
  • An issue (#1381) where using addFieldToFilter with an in clause on a multiple list of SKUs was not working properly (#1396).
  • A small display bug (#1368) on the optimizers preview screen in backend (#1395).
  • An issue where search term merchandiser preview was not working properly (#1373).
  • An issue (#1371) on text swatches containing values starting with integers (#1376).
  • An issue (#1378) where layered navigation filters configuration were not displayed on level 2 categories (#1379).
  • A potential concurrent run issue on the category edit form. Thanks to @allanpaiste for contributing it (#1386).
  • An issue (#1369) where virtual category default root was not properly set. (#1392).
  • An issue with old-style layout (#1273)