GithubHelp home page GithubHelp logo

smile-sa / elasticsuite Goto Github PK

View Code? Open in Web Editor NEW
757.0 45.0 336.0 27.56 MB

Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch

Home Page: https://elasticsuite.io

License: Open Software License 3.0

PHP 77.56% JavaScript 18.87% HTML 2.74% CSS 0.11% Less 0.72%
elasticsearch magento2 module magento search search-engine merchandising facets autocomplete

elasticsuite's Introduction

PHP Code Quality Integration Packagist GitHub stars GitHub forks GitHub contributors PRs Welcome Open Source Love

Smile

News

⚠️ Magento versions compatibility :

Due to several changes in Magento 2.4.6, especially the introduction of Elasticsearch 8 and Opensearch 2 we cannot ensure compatibility between ElasticSuite <2.11 and Magento >=2.4.6 versions.

So :

  • if your project is based on Magento >= 2.4.6, you can start working with ElasticSuite today using the latest 2.11.x release
  • if your project is based on Magento < 2.4.6, the latest Elasticsuite release you can use is the 2.10.x

🎉 Hyvä compatibility

Elasticsuite is compatible with Hyvä theme. Please checkout their blog article to find out more about that.

If you want to use Elasticsuite with Hyvä theme, you'll need to install the compatibility module

Breezefront compatibility

If you want to use Elasticsuite with the Breezefront themes, you will need to install their module

Which version should I use ?

Magento Version (Open Source/Commerce) ElasticSuite Latest Version Elasticsearch OpenSearch Actively maintained
2.0.x ElasticSuite 2.1.x : composer require smile/elasticsuite ~2.1.0 2.x - No
2.1.x ElasticSuite 2.3.x : composer require smile/elasticsuite ~2.3.0 2.x & 5.x - No
2.2.x ElasticSuite 2.6.x : composer require smile/elasticsuite ~2.6.0 5.x & 6.x - No
<2.3.2 ElasticSuite 2.8.4 : composer require smile/elasticsuite 2.8.4 5.x & 6.x - No
<2.3.5 ElasticSuite 2.8.x : composer require smile/elasticsuite ~2.8.0 5.x & 6.x - No
>=2.3.5 ElasticSuite 2.9.x : composer require smile/elasticsuite ~2.9.0 6.x & 7.x - No
2.4.0 ElasticSuite 2.10.1 : composer require smile/elasticsuite 2.10.1 6.x & 7.x - No
>=2.4.1 && < 2.4.6 ElasticSuite 2.10.x : composer require smile/elasticsuite ~2.10.13 6.x & 7.x - Yes
>=2.4.6 ElasticSuite >=2.11.x : composer require smile/elasticsuite ~2.11.0 7.x & 8.x 1.x & 2.x Yes

Magento2 B2B Compatibility

If your are using Magento Commerce (formerly known as Enterprise Edition) B2B feature with Elasticsuite, you will need to install :

  • Elasticsuite Shared Catalog module which is located here

  • Elasticsuite Quick Order module which is located here

Introducing Elasticsuite modules

We are glad to announce officially that we now have a complete list of additional modules to Elasticsuite, which are all available for free and are published Open Source on Github :

Module Name Description
CMS Search Allow to search for CMS pages (in autocomplete and search results).
Ratings Allow to filter and/or sort on ratings (based on standard Magento rating module).
Elasticsuite for Retailers A complete suite of retail oriented modules : Store Locator, Price segmentation per store, etc...
TargetRules with Elasticsearch This module allow to compute target rules via Elasticsearch instead of full MySQL (require Magento Commerce (EE)).

Community Add-ons

We have now some of our fellow users that are distributing add-ons for ElasticSuite. We would like to thanks them for supporting and using ElasticSuite.

Here is a list of currently published add-ons :

Add-on Name Description
ComWrap ElasticsuiteBlog A bridge to use ElasticSuite with MageFan Blog.
It allows to index Blog posts into the search engine and display them into the autocomplete results, and also on the search result page.

What is ElasticSuite for Magento 2 ?

ElasticSuite is a merchandising suite for Magento which aims to provide out the box a lot of features usually only available with proprietary merchandising tools.

The project was originally created by Smile and released to the Open Source community for Magento 1.x. You can still find the Magento 1.x module here.

Who is developing ElasticSuite ?

Smile

Smile

ElasticSuite is built by the Innovation board of Smile.

Smile is the European leader of Open Source and also a four-times Europe Partner of the the Year (2010-2014), two-times Spirit of Excellence (2015-2016), Global Elite Partner (2017-now), and Regional Commercial Partner (2018) awarded by Magento.

Our multidisciplinary team brings together experts in technology, innovation, and new applications.

Together we explore, invent, and test technologies of the future, to better serve our clients.

Where can I see it in action ?

A demonstration store including the latest version of ElasticSuite is available here : ElasticSuite Demo

How to contribute ?

Contributions can take the form of new components or features, changes to existing features, tests, documentation (such as developer guides, user guides, examples, or specifications), bug fixes, optimizations, or just good suggestions.

To learn about how to make a contribution, click here.

To learn about issues, click here. To open an issue, click here.

Main Features

Current version

The current version 2.10.0 has been focused on the Compatibility with Magento 2.4.0.

Feel free to read the whole changelog of this version here

This version is designed to be used on both Magento Open Source and Commerce versions >2.4.

Actually, there are the features actually included :


  • Virtual categories :

    ElasticSuite allows you to define categories based on rules (in addition to the standard manual selection). The rule definition is based on the Magento rules components, so you will not be disoriented. You are able to define categories such as "All products for men that are currently discounted".

    The engine will automatically refresh products matching the selection in Front-Office and will prevent you from having to re-assign products manually.

    Virtual Categories

    A dynamic preview of the results in the Back-Office is also included for more convenience.


  • Recommendations engine (premium version only) :

    On top of the behavioral analysis part will come our recommendations engine. It allows you to propose custom recommendations to your customers, based on their previous visits on your websites, and on other customer behaviors.

    Recommendations features are :

    • "Customers also bought"
    • Similar products
    • Cross Selling
    • Per-user recommendations, based on current customer profile and its previous visits and orders.

  • Search optimizations :

    ElasticSuite also features several ways to optimize the search engine relevance. This part is again based on rules that can be defined in the Magento's back-office.

    This allows you to create rules like "Boost all products that are in stock", "Boost all new products", "Boost men products", etc ...

    Search Optimizers

    You are also able to preview each fine-tuning before publishing it :

    Search Optimizers Preview


  • Behavioral Optimizers (premium version only) :

    This allows you to build rules matching your customer's behavior. Thanks to this feature, optimization rules like "Apply a boost for most viewed products" or "Boost the top sales products" are now possible to create.


  • Categories Merchandising :

    A new Merchandising panel has been added into the category edition screen of Magento's Back-Office. It features a direct preview of the current product list according to category settings.

    Inside this panel, you are also able to use a drag-and-drop interface to apply custom sort order on some of the category products.

    This feature is compatible with "standard" categories but also with the Virtual Categories described before.

    Virtual Categories


  • Facet Management by category :

    Inside the Display Settings panel of each category, you will be able to customize various layered navigation filters parameters :

    • Filter position (pinned/unpinned)
    • Display mode (always hidden, always displayed, automatic mode)
    • Facet Max Size
    • Facet coverage
    • Facet sort order

    This allow you to have a deeper level of configuration for your layered navigation for each category.

    Facet by category


  • Search Analytics :

    ElasticSuite features a Search Usage dashboard.

    It gives to the merchants merchandising 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.

    Search Analytics


  • Search Terms Merchandising :

    A new Merchandiser link has been added into the search term screen of Magento's Back-Office. It features a direct preview of the current product list that will be returned by this search query in front office.

    Inside this panel, you are also able to use a drag-and-drop interface to apply custom sort order on some of the products (Eg : to ensure your bestseller always appear at first position).

    Term Merchandiser


  • Products, Categories & Attributes autocomplete :

    ElasticSuite features enhanced content in the autocomplete box : popular search terms, products and categories, and also attributes.

    The autocomplete is fully extensible to add custom content, such as shop pages (if your store uses a store locator), CMS pages, etc...

    You can see the wiki page about adding custom content into the autocomplete results.

    Products Autocomplete


  • Enhanced thesaurus management :

    Thesaurus are now managed directly by the engine instead of the legacy Magento's behavior.

    Our module allows you to add complete thesauri in the Magento Back-Office. Actually, the module supports two types of thesauri :

    • Synonyms : standard synonym feature, let you contribute a list of terms which are synonyms of each others.

    Synonyms

    This means that adding a synonym between "men" and "man" will make it working in all queries containing "men" like "men shirt" or "men pants" instead of having to define a synonym for each query.

    • Expansions : this kind of thesaurus allows to expand all search for a given term to an other list of terms.

    Expansions

    This means that adding an expansion between "sport" and "fitness, gym, running" will make it expanding for all queries containing "sport" like "sport shoes" (which would be expanded to "fitness shoes", "gym shoes", and "running shoes").


  • Autocomplete in layered navigation filters :

    The module allows the users to search into filters values via an autocomplete box.

    Facet Autocomplete


  • Enhanced price slider :

    The module features an out of the box price slider.

    Price Slider


  • Multiple select in layered navigation :

    The module allows customers to apply multiple values of the same filter criteria.

    Multi Select Facet


  • Multiple select for swatches :

    Same as above, the module allow the users to choose several swatches for filtering.

    Multi Select Swatches


  • Redirect on one result :

    The module allow to redirect to the product page when a full text search matches only one product.

    Redirect One Result


  • Approaching search and spellchecking :

    The module automatically detects typing mistakes and handles correct results for them. Don't worry about "fat-finger syndrome" anymore !

    Approaching Search


  • Automatic stopwords detection :

    The module is able to automatically detect "stopwords" based on their frequency into the search index. This means the engine is able to deal with queries containing stopwords, but also with pure stopwords queries such as "to be or not to be" or even "he and she"!


  • Fully Configurable relevance configuration :

    You are able to customize - on your own, via a dedicated screen in Magento's back-office - each technical parameters that are used to communicate with ElasticSearch. Doig so, you can fine-tune the engine's configuration to fit your needs according to your store's data typology.


  • Customizable filters :

    Each attribute can now be configured in Magento's back-office to change its behavior when used for filtering

    • Conditional display of the filter based on its coverage rate.
    • Maximum number of elements displayed by the filter.
    • Sort order of elements of the filter.

    Facet Configuration


And more to come !

The next versions that will be coming all among this year will include the following features :

  • And many of our users' RFCs !

    There are now many people using ElasticSuite and we are very happy to see this ! Feel free to share you RFCs with us by submitting issues !

Documentation

Documentation is available here.

The User Guide is also available on PDF format here

Standards & Code Quality

Built on top of Magento2, our module respects all its prerequisites and code quality rules.

You can also find our PHPCS Standards and PHPMD rulesets in the Resource directory.

The module is also continuously tested on :

Tools Results
Code Climate Code Climate

elasticsuite's People

Contributors

afoucret avatar amenk avatar androshchuk avatar bashev avatar botissmile avatar danielimi avatar elvinristi avatar fredden avatar gabriellumao avatar illidar avatar kdckrs avatar lbajsarowicz avatar lumnn avatar mvenghaus avatar nuranto avatar peterjaap avatar pierregauthier avatar pierrelemaguer avatar pigau avatar pykettk avatar rbayet avatar replacementchicken avatar robjstanley avatar romainruaud avatar rosenberger-e-conomix avatar sambolek avatar shochdoerfer avatar thomas-kl1 avatar vahonc avatar wahidnory avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elasticsuite's Issues

Elastic Suite 2.2.x Magento 2.1 Custom Theme compatibility issue.

Installed fresh copy of Magento 2.1 with elasticsuite 2.2.x
Fully Functional 2.1 with Elastic suite working correctly.

Preconditions

  1. Magento 2.1, php7.0.8, mysql 5.7, nginx, Elastic Suite 2.2.x
  2. Proto Magento 2.1 theme version 2.3.2

Steps to reproduce

  1. Verify Magento 2.1 & elasticsuite 2.2.x is functioning
  2. Copy Theme files to Magento folder
  3. Run php bin/magento setup:upgrade
  4. Run php bin/magento setup:di:compile
  5. Run php bin/magento setup:static-content:deploy

Expected result

  1. Correctly Deployed Static content of the New custom Porto theme.

Actual result

  1. Result is a known Error with _module.less issue but not with Luma or Blank Theme
  2. Results An issue "variable @autocomplete-item__border is undefined in file"
    3.
    _module less

I know this issue is known and that's the reason for using the 2.2.x version to begin using Elastic Suite but before i go complaining to the Theme dev I wanted to see what Team-Smile has to say.
Also for dev purposes i can supply a custom them for your trouble shooting.

Small mistake in the help message of "Fuzziness Prefix Length"

Open the menu "ElasticSuite > Search relevance"
Open the tab "spellchecking configuration"

The help message for the setting "Fuzziness Prefix Length" is:
"Allowed values "0", "1" or "AUTO". See doc here for more information"

This message should be:
"Allowed values "1", "2" or "AUTO". See doc here for more information"

Explanation:

  • Value 0 doesn't make sense (you should disable fuzzy search).
  • Value 2 is working and allows 2 wrong letters (I tested it)

Same remark for the setting "Phonetic fuzziness value"

Anchor attribute in InstallData.php

Hi,

Between https://github.com/Smile-SA/elasticsuite/blob/master/src/module-elasticsuite-catalog/Setup/InstallData.php and https://github.com/Smile-SA/elasticsuite/blob/2.2.x/src/module-elasticsuite-catalog/Setup/InstallData.php, there is a difference with "updateAttributeDefaultValue" method and "is_anchor" parameter: a new "excludedIds" parameter is added.

I have an issue with "is_anchor" attribute of "tree root id" category which is set to 1 because of master version, I guess. Indeed, I can't add category when I try to save a product.

Should we force "is_anchor" attribute of "tree root id" category to 0 in a update data setup?

Thanks,

Class 'Magento\Catalog\Model\Layer\Filter\ItemFactory' not found

$ bin/magento dev:tests:run static
---- dev/tests/static> php ./vendor/phpunit/phpunit/phpunit

Fatal error: Class 'Magento\Catalog\Model\Layer\Filter\ItemFactory' not found in vendor/smile-sa/elasticsuite/src/module-elasticsuite-catalog/Model/Layer/Filter/Item/AttributeFactory.php on line 23

I know that class will exists after the Factory gets created automatically however for static testing fails each time.

No getType on RequestInterface

While doing a search throught the nativ REST API
I stumble upon this error :

Fatal error: Call to undefined method Magento\Framework\Search\Request::getType()

Which come from the fact that in Search/Adapter/ElasticSuite/Adapter.php on l.75 and l.94 the function await a Magento\Framework\Search\RequestInterface which has no getType method.

Fatal error: Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Response\QueryResponse

When running on Magento 2.1.0

setup:di:compile

the output of Repositories code generation is a fatal error

Fatal error: Class Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Response\QueryResponse cannot implement previously implemented interface IteratorAggregate in /home/httpd/www/_test-dev.test.summit.co.uk/vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Adapter/Elasticsuite/Response/QueryResponse.php on line 27

llegal_argument_exception: Alias ... has more than one indices associated with it

Error:
illegal_argument_exception: Alias [magento2_blue_eng_thesaurus] has more than one indices associated with it [[magento2_blue_eng_thesaurus_20160815_085616, magento2_blue_eng_thesaurus_20160811_161751]], can't execute a single index op

Trace:
#0 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(632): Elasticsearch\Connections\Connection->tryDeserializeError(Array, 'Elasticsearch\C...')
#1 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(553): Elasticsearch\Connections\Connection->tryDeserialize400Error(Array)
#2 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(262): Elasticsearch\Connections\Connection->process4xxError(Array, Array, Array)
#3 /var/www/releases/d-N318X92ZG/vendor/react/promise/src/FulfilledPromise.php(25): Elasticsearch\Connections\Connection->Elasticsearch\Connections{closure}(Array)
#4 /var/www/releases/d-N318X92ZG/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
#5 /var/www/releases/d-N318X92ZG/vendor/guzzlehttp/ringphp/src/Core.php(341): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
#6 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(283): GuzzleHttp\Ring\Core::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
#7 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(159): Elasticsearch\Connections\Connection->Elasticsearch\Connections{closure}(Array, Object(Elasticsearch\Connections\Connection), Object(Elasticsearch\Transport), Array)
#8 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Transport.php(99): Elasticsearch\Connections\Connection->performRequest('GET', '/magento2_blue_...', Array, NULL, Array, Object(Elasticsearch\Transport))
#9 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Endpoints/AbstractEndpoint.php(79): Elasticsearch\Transport->performRequest('GET', '/magento2_blue_...', Array, NULL, Array)
#10 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Namespaces/IndicesNamespace.php(957): Elasticsearch\Endpoints\AbstractEndpoint->performRequest()
#11 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-thesaurus/Model/Index.php(136): Elasticsearch\Namespaces\IndicesNamespace->analyze(Array)
#12 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-thesaurus/Model/Index.php(90): Smile\ElasticsuiteThesaurus\Model\Index->getSynonymRewrites(4, 'rice', 'synonym')
#13 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-thesaurus/Plugin/QueryRewrite.php(97): Smile\ElasticsuiteThesaurus\Model\Index->getQueryRewrites(Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), 'rice')
#14 [internal function]: Smile\ElasticsuiteThesaurus\Plugin\QueryRewrite->aroundCreate(Object(Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder\Interceptor), Object(Closure), Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), Array, 1)
#15 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#16 /var/www/releases/d-N318X92ZG/var/generation/Smile/ElasticsuiteCore/Search/Request/Query/Fulltext/QueryBuilder/Interceptor.php(27): Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder\Interceptor->___callPlugins('create', Array, Array)
#17 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/Query/Builder.php(84): Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder\Interceptor->create(Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), Array, 1)
#18 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/Builder.php(155): Smile\ElasticsuiteCore\Search\Request\Query\Builder->createQuery(Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), Array, Array, 1)
#19 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(470): Smile\ElasticsuiteCore\Search\Request\Builder->create(4, 'catalog_view_co...', 0, 5, Array, Array, Array, Array, Array)
#20 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(367): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareRequest()
#21 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Data/Collection/AbstractDb.php(331): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFiltersBefore()
#22 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(403): Magento\Framework\Data\Collection\AbstractDb->_renderFilters()
#23 /var/www/releases/d-N318X92ZG/vendor/magento/module-eav/Model/Entity/Collection/AbstractCollection.php(906): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFilters()
#24 /var/www/releases/d-N318X92ZG/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection.php(719): Magento\Eav\Model\Entity\Collection\AbstractCollection->load(false, false)
#25 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Data/Collection.php(820): Magento\Catalog\Model\ResourceModel\Product\Collection->load()
#26 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Autocomplete/Product/DataProvider.php(112): Magento\Framework\Data\Collection->getIterator()
#27 /var/www/releases/d-N318X92ZG/vendor/magento/module-search/Model/Autocomplete.php(32): Smile\ElasticsuiteCatalog\Model\Autocomplete\Product\DataProvider->getItems()
#28 /var/www/releases/d-N318X92ZG/vendor/magento/module-search/Controller/Ajax/Suggest.php(44): Magento\Search\Model\Autocomplete->getItems()
#29 /var/www/releases/d-N318X92ZG/var/generation/Magento/Search/Controller/Ajax/Suggest/Interceptor.php(24): Magento\Search\Controller\Ajax\Suggest->execute()
#30 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Action/Action.php(102): Magento\Search\Controller\Ajax\Suggest\Interceptor->execute()
#31 [internal function]: Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#32 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#33 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Search\Controller\Ajax\Suggest\Interceptor->___callParent('dispatch', Array)
#34 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'designLoader')
#35 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Action/Plugin/Design.php(39): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#36 [internal function]: Magento\Framework\App\Action\Plugin\Design->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#37 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#38 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'contextPlugin')
#39 /var/www/releases/d-N318X92ZG/vendor/magento/module-store/App/Action/Plugin/Context.php(106): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#40 [internal function]: Magento\Store\App\Action\Plugin\Context->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#41 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#42 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'customer-app-ac...')
#43 /var/www/releases/d-N318X92ZG/vendor/magento/module-customer/Model/App/Action/ContextPlugin.php(61): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#44 [internal function]: Magento\Customer\Model\App\Action\ContextPlugin->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#45 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#46 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'storeCheck')
#47 /var/www/releases/d-N318X92ZG/vendor/magento/module-store/App/Action/Plugin/StoreCheck.php(44): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#48 [internal function]: Magento\Store\App\Action\Plugin\StoreCheck->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#49 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#50 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'weee-app-action...')
#51 /var/www/releases/d-N318X92ZG/vendor/magento/module-weee/Model/App/Action/ContextPlugin.php(112): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#52 [internal function]: Magento\Weee\Model\App\Action\ContextPlugin->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#53 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#54 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'tax-app-action-...')
#55 /var/www/releases/d-N318X92ZG/vendor/magento/module-tax/Model/App/Action/ContextPlugin.php(91): Magento\Search\Controller\Ajax\Suggest\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))
#56 [internal function]: Magento\Tax\Model\App\Action\ContextPlugin->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#57 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#58 /var/www/releases/d-N318X92ZG/var/generation/Magento/Search/Controller/Ajax/Suggest/Interceptor.php(39): Magento\Search\Controller\Ajax\Suggest\Interceptor->___callPlugins('dispatch', Array, Array)
#59 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/FrontController.php(55): Magento\Search\Controller\Ajax\Suggest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#60 [internal function]: Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#61 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#62 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#63 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'requestPreproce...')
#64 /var/www/releases/d-N318X92ZG/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(89): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#65 [internal function]: Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#66 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#67 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#68 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#69 [internal function]: Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#70 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#71 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#72 /var/www/releases/d-N318X92ZG/vendor/magento/module-page-cache/Model/App/FrontController/VarnishPlugin.php(55): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#73 [internal function]: Magento\PageCache\Model\App\FrontController\VarnishPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#74 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#75 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#76 /var/www/releases/d-N318X92ZG/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(68): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))
#77 [internal function]: Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#78 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#79 /var/www/releases/d-N318X92ZG/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#80 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Http.php(115): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#81 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#82 /var/www/releases/d-N318X92ZG/pub/index.php(37): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#83 {main}

Magento 2.1, error sortParams

we have an error on search
Exception #0 (Exception): Notice: Undefined index: sortParams in /var/www/damartch/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection/ProductLimitation.php on line 45

Exception #0 (Exception): Notice: Undefined index: sortParams in /var/www/damartch/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection/ProductLimitation.php on line 45
#0 /var/www/damartch/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection/ProductLimitation.php(45): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/var/www/damart...', 45, Array)
#1 /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(504): Magento\Catalog\Model\ResourceModel\Product\Collection\ProductLimitation->offsetGet('sortParams')
#2 /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(475): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareSortOrders()
#3 /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(383): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareRequest()
#4 /var/www/damartch/vendor/magento/framework/Data/Collection/AbstractDb.php(338): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFiltersBefore()

RFC : Advanced Search Support

Hello,

I have installed this extension for my project and search and autocomplete is working fine. But when i am trying to search via advanced search then it shows the blank page.

I have already seen the same error on your demo site.

So can you please help to solve this error?

Thanks

Not sure about the spellcheck accuracy in autocomplete

I have some doubts (?) about the accuracy of the "spellcheck" feature in autocomplete.

For example on the store http://demo.magento-elastic-suite.io/
if you search "fytness", the autocomplete doesn't suggest any product, but the search engine suggest "fitness" products.

I did some tests with Magento 1 and it seems that the autocomplete engine was much more tolerant to mistakes during typing. On Magento 2 almost no mistakes are allowed.

Possible explanation: Maybe only the phonetic search is applied in autocomplete without fuzzy search ?
Example:
"messengeer" suggest products with "messenger"
but
"messengeZr" doesn't suggest any product

bin/magento setup:static-content:deploy gives error

Hi there.

First: the extension looks VERY promising, and would defintly use it on live site when i'm ready with conversion to magento 2.

I am on:

Ubuntu 16.04
Nginx 1.10
Php 7.0.7
latest elasticsearch
Magento 2.1

I have followed the how-to to install. I am now at the point that i want to login. And beceause i didn't saw logo of login i cleared the cache and did command: bin/magento setup:static-content:deploy .

I get the following error:
elastic-error

What am I doing wrong?

Thanks!

Memory Exhaustion when Viewing Certain Categories

For a certain category and it's sub categories, we are experiencing memory exhaustion. This is actually happening for 1 category(Home Appliances) and most of its sub categories. It does not have the most number of products but this still happens. Just to test, i have tried increasing the php allowed memory size to 1G just to test.
When this happens, a blank page shows on the frontend. My Catalog size is 9k and I am running elastic search on 2 aws ec2 servers with 2G each.

reverse sort order and "missing"

It should be possible to reverse the sort order and the "missing" located in module-elasticsuite-core/Search/Adapter/Elasticsuite/Request/SortOrder/Builder.php

Could you not directly access pricing tables when using autocomplete?

I have added plugin to surround AroundGetPRice .. to replace pricing engine method with my own cost+plus rules.

Since I did this plugin -> I notice autocomplete no longer responds with correct price!! just 0 which is odd since the index shows a valid price but I am guessing my modification to AroundGetPrice plugin is messing up this call? Perhaps since I use optional-attribute 'cost' which has to be scoped to display in product_listing or it does not function/retrieve any cost! 0

Or perhaps AutoComplete does not access attribute GetCost ->getdata('cost') in scope and retrieves cost of 0/null and my routines use that pricing level as cost multiplier!?

Any thoughts why auto-complete would only be affected by this?

i18n for all modules

Warning :

  • Fix the way product sorter does apply translations before (strings into the HTML templates are not detected by the magento phrases collector).
  • Fix empty strings (not supported by Magento) into the thesaurus blocks (expansions).

Fix various errors detected by static testing

bin/magento dev:tests:run static detects some errors :

  • duplicate keys in DI
  • layouts mistakes (especially in tracker module)
  • cosmetics in composer.json files (essentially "no space after colon")

Using this module with a custom theme does not display autocomplete as expected

This module works perfectly with Magento Custom Luma theme. However for a custom theme, the structure of autocomplete differs from what is obtainable with the Luma theme. I have removed the custom theme's implementation of Search but I can see that it picks the Magento's Default implementation of item.phtml which uses <li> tags.
Any suggestions as to extra steps to take to make a custom theme display Autocomplete like Luma does?

DataProvider still is MySQL

I think that the module is still missing a DataProvider.
Indeed in /module-elasticsuite-catalog/etc/di.xml is it normal that the DataProviderFactory still point to the MySQL one ?

<type name="Magento\Framework\Search\Dynamic\DataProviderFactory">
    <arguments>
        <argument name="dataProviders" xsi:type="array">
            <item name="elasticsuite" xsi:type="string">Magento\CatalogSearch\Model\Adapter\Mysql\Dynamic\DataProvider</item>
        </argument>
    </arguments>
</type>

Unable To Search Multiple Select Attribute Code in Store Frontend "Your search returned no results."

Preconditions

  1. Magento 2.1
  2. ElasticSuite 2.2dev & elasticserver running.

Steps to reproduce

  1. Create a New Attribute Select Attribute Type "Multiple Select"
  2. Assign a few Options in the Admin & Default Store View Box's
  3. Set in Storefront Properties "Use in Search" Select Yes & Save Attribute.
  4. Add that new Attribute to an Attribute Set Mine was Default Set.
  5. Finally Reindex/Clear Cache
  6. Create new product using a Attribute Set you added your New Multiple Select Attribute too Selecting one or all the attributes that you added and save the Product.
  7. Reindex & Flush Cache again.

Expected result

  1. Search Attribute from the Multiple Select Attribute and Display The New Product we just created.

Actual result

  1. "Your search returned no results."

During the Search Autocomplete shows the new Product but if you Simply search the Attribute no products will be displayed. This issue only occurs when using the Multiple Select Attribute Option.

Proof of error I Recreated a Attribute using Text Field and entered text and that was searchable but when setting up a site filtering through text fields just isn't probable

Something is broken between the Displayed search and the autocomplete.

RFC : Virtual categories : improve product page URL when using category path in product URL

Initial conditions:

  • In Store/Configuration > Catalog > Catalog, set "Use Categories Path for Product URLs" to "YES"
  • Create a virtual category
  • Click on a product

--> The URL of the product page is an URL not rewritten, example: https://www.xxxxxxx.eu/uk/catalog/product/view/id/13672/category/643

We would like to improve the URL in this case to have a "clean" URL like this:
http://base_url/virtual-category-name/product-name

Attribute faceting

For example, we have a color attribute and a base color attribute. The configurable products are decline by color (& size). But for customer experience, we need to be able to filter based on "base" color.

But, the displayed base colors are from the configurable product (instead of simple product).
We use a visual swatch for color base attribute and we are obliged to select a color for configurable product.


MyConfigurable
Color base - white

MyFirstSimple
Color - white
Color base - white

MySecondSimple
Color - crimson
Color base - Red

MyThirdSimple
Color - cherry red
Color base - Red

We have only white value in color base facet.

Tracking code inside javascript, pinging back to t.smile.eu

Hello,

Was wondering why the server is pinging back, and why/what is tracked:

// Send the tag to the remote server
// Append a transparent pixel to the body
function sendTag(forceCollect) {
if (this.trackerSent === false || forceCollect === true) {
var trackingUrl = getTrackerUrl.bind(this)();
var bodyNode = document.getElementsByTagName('body')[0];
var imgNode = document.createElement('img');
imgNode.setAttribute('src', trackingUrl);
setTrackerStyle(imgNode);
bodyNode.appendChild(imgNode);
this.trackerSent = true;
this.vars = {};

        if (window.location.protocol === "http:") {
            var extImgNode = document.createElement('img');
            extImgNode.setAttribute('src', "http://t.smile.eu/h.png?magento2");
            setTrackerStyle(extImgNode);
            bodyNode.appendChild(extImgNode);
        }
    }
}

Thanks.

RFC : Search products by SKU

Searches by SKU currently return 0 results on our Magento 2.1 instances with Elasticsuite 2.2.
Searching for names or other custom attribute values seem to return the correct results.

The "Use in search" configuration is currently activated on our "sku" product attribute, but it seems to have no effect on our results.

The same problem can be observed on the demo store (http://demo.magento-elastic-suite.io/), although I don't know if the SKU attribute was configured to be used in searches there.

Our current configuration is :

  • Elasticsuite 2.2.0-alpha2
  • Magento 2.1.0
  • Elasticsearch 2.3.5

Filter Attribute_name and attribute_code to remove invalid characters to elasticsearch?

Right now attributes with a period (.) in their name cause a full document failure after pushing to bulk_search indexer.

How hard would it be to filter out invalid characters before submitting to elasticsearch?

Is it possible to overload fields to cause extraneous functionality like sql-injection due to non-filtering of fields before bulk_add/edit/search?

No check against $options in attribute filter layer. [email protected]

1 exception(s):
Exception #0 (Exception): Warning: Invalid argument supplied for foreach() in /www/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Layer/Filter/Attribute.php on line 216

Exception #0 (Exception): Warning: Invalid argument supplied for foreach() in /www/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Layer/Filter/Attribute.php on line 216

A fix was if (count($options)) { ... }, sadly no time to push a fix guys (deadlines my side).

2.2.x-dev main.ERROR: Bulk index operation failed 1 times in index magento2_default_catalog_product_20160711_144337 for type product Error (mapper_parsing_exception) : failed to parse [option_text_attribute_s_12420] Failed doc ids sample : 1585697

php -q bin/magento reindex:catalogsearch_fulltext

[2016-07-11 14:45:35] main.ERROR: Bulk index operation failed 1 times in index magento2_default_catalog_product_20160711_144337 for type product Error (mapper_parsing_exception) : failed to parse [option_text_attribute_s_12420] Failed doc ids sample : 1585697 [] []
main.ERROR: Bulk index operation failed 2 times in index magento2_default_catalog_product_20160711_144337 for type product Error (mapper_parsing_exception) : failed to parse [option_text_attribute_s_12420] Failed doc ids sample : 1628343, 1628350 [] []

capture0711a
capture0711b

Any thoughts on why the indexer is failing this attribute and document?

Inventory management

  • Is in stock indexing for configurable products
  • Apply the config to autocomplete

Error index Fulltext (Undefined offset) on Magento 2.1

Hello,

With Magento 2.1 and Elasticsearch 2.2.dev, I have this problem.

php bin/magento indexer:reindex catalogsearch_fulltext

Catalog Search indexer process unknown error:
Notice: Undefined offset: 153 in /var/www/vhosts/.../httpdocs/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Product/Indexer/Fulltext/Datasource/AttributeData.php on line 155

I think this is a bug in the html code for product description. How to find the offending product?

Thank you for your help.

error when using table_prefixes

The module seems broken when table prefixes are configured.

error on setup:upgrade:

Base table or view not found: 1146 Table 'magento.catalog_category_entity' doesn't exist, query was: INSERT INTO lei_catalog_category_entity_int (attribute_id, entity_id, value) SELECT 131 as attrib
ute_id, catalog_category_entity.entity_id, 1 as value FROM catalog_category_entity ON DUPLICATE KEY UPDATE attribute_id = VALUES(attribute_id), entity_id = VALUES(entity_id), value = VALUES(value)

I searched around and the problem occurs in updateAttributeDefaultValue (InstallData.php), where the insertFromSelect produces the illegal query.

Error on validate catgory virtual

Virtual rule

( ! ) Fatal error: Call to a member function getConditions() on array in /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog-rule/Block/Product/Conditions.php on line 145
#   Time    Memory  Function    Location
1   0.0000  241848  {main}( )   ../index.php:0
2   0.0385  4774504 Magento\Framework\App\Bootstrap->run( ) ../index.php:39
3   0.0391  4821360 Magento\Framework\App\Http\Interceptor->launch( )   ../Bootstrap.php:258
4   0.0414  5152840 Magento\Framework\App\Http\Interceptor->___callPlugins( )   ../Interceptor.php:26
5   0.0415  5167824 Magento\Framework\App\Http->launch( )   ../Interceptor.php:146
6   0.0769  8885976 Magento\Framework\App\FrontController\Interceptor->dispatch( )  ../Http.php:135
7   0.0783  8813576 Magento\Framework\App\FrontController\Interceptor->___callPlugins( )    ../Interceptor.php:26
8   0.0879  9492808 Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch( )    ../Interceptor.php:142
9   0.0881  9492824 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}( )  ../DbStatusValidator.php:69
10  0.0881  9493296 Magento\Framework\Interception\Chain\Chain->invokeNext( )   ../Interceptor.php:138
11  0.0881  9493504 Magento\Framework\App\FrontController\Interceptor->___callParent( ) ../Chain.php:70
12  0.0881  9493768 Magento\Framework\App\FrontController->dispatch( )  ../Interceptor.php:74
13  0.1458  14356456    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->dispatch( ) ../FrontController.php:55
14  0.1465  14406616    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->___callPlugins( )   ../Interceptor.php:39
15  0.2109  17418064    Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch( )  ../Interceptor.php:142
16  0.2109  17418152    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->Magento\Framework\Interception\{closure}( ) ../MassactionKey.php:33
17  0.2109  17418456    Magento\Framework\Interception\Chain\Chain->invokeNext( )   ../Interceptor.php:138
18  0.2132  17607072    Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch( ) ../Chain.php:67
19  0.2199  17794944    Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}( )   ../Authentication.php:143
20  0.2199  17795248    Magento\Framework\Interception\Chain\Chain->invokeNext( )   ../Chain.php:63
21  0.2199  17795456    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->___callParent( )    ../Chain.php:70
22  0.2199  17795808    Magento\Backend\App\AbstractAction->dispatch( ) ../Interceptor.php:74
23  0.2249  18239880    Magento\Framework\App\Action\Action->dispatch( )    ../AbstractAction.php:226
24  0.2277  18382640    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->execute( )  ../Action.php:102
25  0.2277  18383376    Magento\Catalog\Controller\Adminhtml\Category\Edit->execute( )  ../Interceptor.php:24
26  0.3273  26193920    Magento\Backend\Model\View\Result\Page\Interceptor->setActiveMenu( )    ../Edit.php:102
27  0.3273  26194128    Magento\Backend\Model\View\Result\Page->setActiveMenu( )    ../Interceptor.php:24
28  0.3273  26194280    Magento\Framework\View\Layout\Interceptor->getBlock( )  ../Page.php:59
29  0.3273  26194384    Magento\Framework\View\Layout->getBlock( )  ../Interceptor.php:414
30  0.3273  26194432    Magento\Framework\View\Layout->build( ) ../Layout.php:859
31  0.3273  26194536    Magento\Framework\View\Layout\Builder->build( ) ../Layout.php:244
32  0.3283  26246392    Magento\Framework\View\Page\Builder->generateLayoutBlocks( )    ../Builder.php:65
33  0.3324  26424616    Magento\Framework\View\Layout\Builder->generateLayoutBlocks( )  ../Builder.php:55
34  0.3325  26428616    Magento\Framework\View\Layout\Interceptor->generateElements( )  ../Builder.php:129
35  0.3325  26428992    Magento\Framework\View\Layout->generateElements( )  ../Interceptor.php:89
36  0.3332  26628816    Magento\Framework\View\Layout\GeneratorPool->process( ) ../Layout.php:327
37  0.3667  29392328    Magento\Framework\View\Layout\Generator\UiComponent->process( ) ../GeneratorPool.php:86
38  0.3667  29393032    Magento\Framework\View\Layout\Generator\UiComponent->generateComponent( )   ../UiComponent.php:93
39  0.4797  33516656    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:126
40  0.5009  34701896    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:145
41  0.5296  37370184    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:145
42  0.5371  37405848    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:145
43  0.5371  37405848    Magento\Ui\Component\HtmlContent->prepare( )    ../UiComponent.php:148
44  0.5371  37406752    Magento\Framework\View\Element\AbstractBlock->toHtml( ) ../HtmlContent.php:50
45  0.5372  37407616    Smile\ElasticsuiteVirtualCategory\Block\Adminhtml\Catalog\Category\VirtualRule->_toHtml( )  ../AbstractBlock.php:659
46  0.5384  37519640    Magento\Framework\Data\Form->toHtml( )  ../VirtualRule.php:62
47  0.5384  37522712    Magento\Framework\Data\Form\Element\AbstractElement->toHtml( )  ../Form.php:322
48  0.5384  37522760    Magento\Framework\Data\Form\Element\Text->getHtml( )    ../AbstractElement.php:467
49  0.5384  37523328    Magento\Framework\Data\Form\Element\AbstractElement->getHtml( ) ../Text.php:43
50  0.5385  37523560    Smile\ElasticsuiteCatalogRule\Block\Product\Conditions->render( )   ../AbstractElement.php:453
51  0.5385  37523840    Magento\Framework\View\Element\AbstractBlock->toHtml( ) ../Conditions.php:93
52  0.5386  37526104    Magento\Backend\Block\Template->_toHtml( )  ../AbstractBlock.php:659
53  0.5386  37527616    Magento\Framework\View\Element\Template->_toHtml( ) ../Template.php:104
54  0.5388  37528368    Magento\Framework\View\Element\Template->fetchView( )   ../Template.php:279
55  0.5390  37531600    Magento\Framework\View\TemplateEngine\Php->render( )    ../Template.php:255
56  0.5390  37549392    include( '/var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog-rule/view/adminhtml/templates/product/conditions.phtml' ) ../Php.php:59
57  0.5391  37551368    Smile\ElasticsuiteCatalogRule\Block\Product\Conditions->getInputHtml( ) ../conditions.phtml:35

Module Elasticsuite_Catalog InstallSchema

There is a useless constructor in Smile\ElasticsuiteCatalog\Setup\InstallSchema class :

/**
 * InstallSchema constructor.
 *
 * @param \Magento\Eav\Setup\EavSetup $eavSetup The EAV Setup
 */
public function __construct(EavSetup $eavSetup)
{
    $this->eavSetup = $eavSetup;
}

The constructor initiate a never used var and causes errors when installing magento with elasticsuite.

Virtual Categories preview showing empty list.

This issue seems to occurs on multiple websites instance.

Symptoms :

  • when building a virtual category in back-office, the preview remains always empty "Your product selection is empty".
  • the virtual category in front office is fine, displaying products matching the rule that have been set in the back-office.

Wiki mistake (module enable command)

Hi,
There's a mistake in the wiki, at page 'ModuleInstall'

Command line :
bin/magento module:enable Smile_ElasticSuiteCore Smile_ElasticSuiteCatalog Smile_ElasticSuiteSwatches Smile_ElasticSuiteCatalogRule Smile_ElasticSuiteVirtualCategory Smile_ElasticSuiteThesaurus Smile_ElasticSuiteTracker

must be :
bin/magento module:enable Smile_ElasticsuiteCore Smile_ElasticsuiteCatalog Smile_ElasticsuiteSwatches Smile_ElasticsuiteCatalogRule Smile_ElasticsuiteVirtualCategory Smile_ElasticsuiteThesaurus Smile_ElasticsuiteTracker

Price slider

Currency and price formatting is not applied anymore.

Did you test it after you have developped the unit generic slider ?

Error after magento 2.0.9 update

Fatal error: Class 'Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Select' not found in /var/www/damartch/src/vendor/magento/framework/Code/Generator/EntityAbstract.php on line 331

Setup:static-content:deploy less compilation error

Hi,

with the newest Magento 2.1.0, static content deploy throws an error:

variable @autocomplete-item-border is undefined in file /home/httpd/www/_test-dev.test.summit.co.uk/var/view_preprocessed/css/frontend/Magento/blank/en_US/Smile_ElasticsuiteCore/css/source/_module.less in _module.less on line 30, column 34
  28|                 border-bottom: 0;
  29|             }
  30|             .lib-css(border-top, @autocomplete-item-border);
  31|             cursor: default;
  32|             margin: 0;
  33|             padding: @indent__xs @indent__xl @indent__xs @indent__s;

Fulltext search over the codebase suggests that the variable is not defined anywhere and I believe that the variable only has been renamed yet I am unable to find a fix for that.

Lukas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.