在 Magento 2 中显示最近查看的产品是在 Magento 2 商店中吸引客户购买您想要的产品的有效方法。它可以让顾客关注他们最近访问过的所有产品,这将有助于增强顾客的购物体验。对于他们来说,这可能是一个很好的建议,鼓励他们购买他们可能感兴趣的东西。

为了在 Magento 2 站点上显示最近查看的产品集合,商店管理员将需要有关最近查看的产品集合的数据。然而,获取集合有时可能很复杂。因此,在今天的帖子中,我将向您提供在 Magento 2 中获取最近查看的产品集合的三个步骤。

如何在 Magento 2 中获取最近查看的产品集合

  • 步骤1:创建RecentProducts区块
  • 步骤2:插入phtml文件
  • 步骤3:刷新缓存和测试结果

步骤1:创建RecentProducts区块

要获取最近查看的产品集合,首先,您需要创建一个RecentProducts块。为此,请按照路径 Example/Productslider/Block/RecentProducts.php添加以下代码:

<?php

namespace Example\Productslider\Block;
use Magento\Catalog\Block\Product\Context;
use Magento\Catalog\Model\Product\Visibility;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
use Magento\Framework\App\Http\Context as HttpContext;
use Magento\Framework\Stdlib\DateTime\DateTime;
use Magento\Reports\Block\Product\Viewed as ReportProductViewed;
use Example\Productslider\Helper\Data;
/**
 * Class RecentProducts
 * @package Example\Productslider\Block
 */
class RecentProducts extends AbstractSlider
{
    /**
     * @var ReportProductViewed
     */
    protected $reportProductViewed;
    /**
     * RecentProducts constructor.
     * @param Context $context
     * @param CollectionFactory $productCollectionFactory
     * @param Visibility $catalogProductVisibility
     * @param DateTime $dateTime
     * @param Data $helperData
     * @param HttpContext $httpContext
     * @param ReportProductViewed $reportProductViewed
     * @param array $data
     */
    public function __construct(
        Context $context,
        CollectionFactory $productCollectionFactory,
        Visibility $catalogProductVisibility,
        DateTime $dateTime,
        Data $helperData,
        HttpContext $httpContext,
        ReportProductViewed $reportProductViewed,
        array $data = []
    ) {
        $this->reportProductViewed = $reportProductViewed;
        parent::__construct($context, $productCollectionFactory, $catalogProductVisibility, $dateTime, $helperData, $httpContext, $data);
    }
    /**
     * Get Collection Recently Viewed product
     * @return mixed
     */
    public function getProductCollection()
    {
        return $this->reportProductViewed->getItemsCollection()->setPageSize($this->getProductsCount());
    }
}

步骤2:插入phtml文件

将集合放入区块后,现在您可以按照此代码片段从区块中获取产品集合Example/HelloWorld/view/frontend/templates/list.phtml

然后,请在 phtml 文件中插入以下代码。

<?php
$collection = $block->getProductCollection();
foreach ($collection as $_product) {
    echo $product->getName() . ' - ' . $product->getProductUrl() . '<br />';
}

第 3 步:刷新缓存和测试结果

最后,让我们刷新缓存并测试结果。