elasticsuite icon indicating copy to clipboard operation
elasticsuite copied to clipboard

Virtual Category Rule -> getCategorySearchQuery

Open stkrelax opened this issue 4 years ago • 1 comments

main.ERROR: {"error":{"root_cause":[{"type":"parsing_exception","reason":"No value specified for terms query","line":1,"col":252}],"type":"x_content_parse_exception","reason":"[1:252] [bool] failed to parse field [must]","caused_by":{"type":"parsing_exception","reason":"No value specified for terms query","line":1,"col":252}},"status":400} [] []

Preconditions

Error occurs in Administration on category edit page. When category is disabled on store 0 but enabled in other stores. This error will occour when viewing page of category edit when scope is all store views.

Magento Version : 2.3.5-p2 CE

ElasticSuite Version : virtual category 2.9.0

Environment : all environments

Third party modules : none connected to this

  1. setup with categories
  2. set categories is_active = false on store 0
  3. set categories is_active = true on store > 0

Expected result

  1. no error occurs

Actual result

  1. Error occurs

have a look at : https://github.com/Smile-SA/elasticsuite/blob/a7b14f0ad249572dfbecbde3faa1d127885eecd0/src/module-elasticsuite-virtual-category/Model/Rule.php#L152 there no query will be returned because category is_active == false

https://github.com/Smile-SA/elasticsuite/blob/a7b14f0ad249572dfbecbde3faa1d127885eecd0/src/module-elasticsuite-catalog/Plugin/Ui/Category/Form/DataProviderPlugin.php#L243

will add this empty query and so cause the error.

    [query:protected] => Smile\ElasticsuiteCore\Search\Request\Query\Filtered Object
        (
            [name:Smile\ElasticsuiteCore\Search\Request\Query\Filtered:private] => 
            [boost:Smile\ElasticsuiteCore\Search\Request\Query\Filtered:private] => 1
            [filter:Smile\ElasticsuiteCore\Search\Request\Query\Filtered:private] => Smile\ElasticsuiteCore\Search\Request\Query\Boolean Object
                (
                    [name:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => 
                    [boost:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => 1
                    [must:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => Array
                        (
                            [0] => Smile\ElasticsuiteCore\Search\Request\Query\Term Object
                                (
                                    [name:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 
                                    [boost:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 1
                                    [value:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 1
                                    [field:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => stock.is_in_stock
                                )

                            [1] => Smile\ElasticsuiteCore\Search\Request\Query\Terms Object
                                (
                                    [name:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 
                                    [boost:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 1
                                    [value:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => Array
                                        (
                                            [0] => 2
                                            [1] => 4
                                        )

                                    [field:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => visibility
                                )

                            [2] => Smile\ElasticsuiteCore\Search\Request\Query\Nested Object
                                (
                                    [scoreMode:Smile\ElasticsuiteCore\Search\Request\Query\Nested:private] => none
                                    [name:Smile\ElasticsuiteCore\Search\Request\Query\Nested:private] => 
                                    [boost:Smile\ElasticsuiteCore\Search\Request\Query\Nested:private] => 1
                                    [path:Smile\ElasticsuiteCore\Search\Request\Query\Nested:private] => category
                                    [query:Smile\ElasticsuiteCore\Search\Request\Query\Nested:private] => Smile\ElasticsuiteCore\Search\Request\Query\Terms Object
                                        (
                                            [name:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 
                                            [boost:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => 1
                                            [value:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => Array
                                                (
                                                    [0] => 
                                                )

                                            [field:Smile\ElasticsuiteCore\Search\Request\Query\Term:private] => category.category_id
                                        )

                                )

                        )

                    [should:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => Array
                        (
                        )

                    [mustNot:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => Array
                        (
                        )

                    [minimumShouldMatch:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => 1
                    [cached:Smile\ElasticsuiteCore\Search\Request\Query\Boolean:private] => 
                )

            [query:Smile\ElasticsuiteCore\Search\Request\Query\Filtered:private] => 
        )

stkrelax avatar Feb 08 '21 12:02 stkrelax

This issue still occurs on when

  • Magento v2.4.6-p4
  • ElasticSuite v2.11.6
  • OpenSearch v2.11.0

alitopaloglu avatar Apr 17 '24 08:04 alitopaloglu