Closed davekleijnkega closed 5 years ago
Thanks for your report,
Weird that all works fine on 2.3.1 but not on 2.3.2 ill update my dev installation and take a look.
With kind regards
Update:
"I found out that all categories use the template filter that is configured on root level."
This is caused by changing the events.xml, so this is not a solution.
Hello,
This is indeed an issue.
After some debugging I came to the following conclusion. The view controller asks the layer resolver to create a category layer object on: vendor/magento/module-catalog/Controller/Category/View.php:188 This layer object takes a context parameter, this context parameter which is of type: Magento\Catalog\Model\Layer\ContextInterface
In 2.3.1 module magento-catalog-search defines that the implementation class of this interface should be:
<type name="Magento\Catalog\Model\Layer\Category">
<arguments>
<argument name="context" xsi:type="object">Magento\CatalogSearch\Model\Layer\Category\Context</argument>
</arguments>
</type>
(This can be found in module-catalog-search di.xml file line 208)
So the implementation class of contextInterface is: Magento\CatalogSearch\Model\Layer\Category\Context
In our plugin we add config so that this implementation class uses a differen collectionProvider (this provider will call tweakwise etc)
However in 2.3.2 The context interface resolves to a different class, namely:
<type name="Magento\Catalog\Model\Layer\Category">
<arguments>
<argument name="context" xsi:type="object">Magento\Elasticsearch\Model\Layer\Category\Context</argument>
</arguments>
</type>
You can see this in magento-elasticsearch di.xml line 41, this module depends on search and thus this implementation will take priority over the "normal" implementation The same holds for the Search layer. In our plugin we have not defined the collectionProvider against these types.
Most likely we will add our collectionProvider class to these implementations as well. The collectionProvider updates context and all should work. I will add that and test if this works as expected
With kind regards
We created Branch 1.X where the required entries are added.
Could you verify if this resolves the issue?
With kind regards
I have tested 1.X branch. This indeed resolves the issue.
Thanks!
Ok nice to hear, I will include this in a release soon.
WIth kind regards
Hello,
We released as fix for this in v1.4.12 (https://github.com/EmicoEcommerce/Magento2Tweakwise/releases/tag/v1.4.12) The fix will also be available in first stable 2.X release.
With kind regards
Issue Brief
The product list page is giving an critical error. The page is rendered but all filters are visible. It seems that the page sorting does not work either.
Environment
Steps to reproduce
Actual result
Page is rendered, but all filters are visible.
In system.log the following error occurs:
Expected result
What I did so far
After some debugging I found out that the order of methods
setContext
andgetContext
are incorrect inEmico\Tweakwise\Model\Catalog\Layer\NavigationContext\CurrentContext
.getContext
is triggered first andsetContext
after that.After that I have changed the following code in
vendor/emico/tweakwise/src/etc/frontend/events.xml
on line 3:From
<event name="controller_action_postdispatch_catalog_category_view">
To<event name="controller_action_predispatch_catalog_category_view">
After this change, the error message is gone, but I still cannot see the correct filters on a product list page. I see two category filters, while they are not set up in Tweakwise. It seems that the other filters are correct.
Update:
I found out that all categories use the template filter that is configured on root level.