【问题标题】:In Magento 2 display recently viewed product on product detail page在 Magento 2 中,在产品详细信息页面上显示最近查看的产品
【发布时间】:2016-12-08 10:54:33
【问题描述】:

我想在 Magento 2 的产品详细信息页面上显示最近查看的产品。我正在使用 Magento 版本。 2.1.2.请帮助我如何显示它。 谢谢

【问题讨论】:

    标签: block magento2


    【解决方案1】:

    在您的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>
    

    【讨论】:

      【解决方案2】:

      我们不应该设置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

      【讨论】:

      • 你能举例说明你是如何用 ajax 修复它的吗?
      【解决方案3】:
      \Magento\Reports\Model\ResourceModel\Product\CollectionFactory 
      $_reportCollectionFactory
      
      $this->_reportCollectionFactory = $_reportCollectionFactory;
      
      $collection = $this->_reportCollectionFactory->create()
          ->addAttributeToSelect('*')
          ->addViewsCount()
          ->setStoreId($storeId)
          ->addStoreFilter($storeId)
          ->setPageSize(10); 
      

      【讨论】:

      • 您好,您可以在代码中添加一些解释。还请记住,您可以使用 ```(三个反引号)+ 语言格式化代码,以便很好地突出显示语法