我想在Magento 2的产品详情页面上显示最近浏览过的产品。我正在使用Magento ver。 2.1.2。请帮我如何显示它。 感谢
答案 0 :(得分:6)
在catalog_product_view.xml
文件中添加以下块
<block class="Magento\Reports\Block\Product\Widget\Viewed" after="-" name="recently_viewed" cacheable="false" template="Magento_Reports::widget/viewed/content/viewed_grid.phtml">
<action method="setPageSize">
<argument name="page_size" xsi:type="number">4</argument>
</action>
</block>
答案 1 :(得分:1)
我们不应该设置cacheable="false"
。这将极大地影响性能。整个页面都是不可缓存的。
1)2.1.x:似乎它是FPC和Varnish的Magento错误:https://github.com/magento/magento2/issues/3890。在这种情况下,我使用了Ajax。
2)2.2.x或更高版本:使用UI组件:https://magento.stackexchange.com/a/209658/33057
答案 2 :(得分:0)
\Magento\Reports\Model\ResourceModel\Product\CollectionFactory
$_reportCollectionFactory
$this->_reportCollectionFactory = $_reportCollectionFactory;
$collection = $this->_reportCollectionFactory->create()
->addAttributeToSelect('*')
->addViewsCount()
->setStoreId($storeId)
->addStoreFilter($storeId)
->setPageSize(10);