展示浏览次数最多的产品通常用于吸引客户使用该产品,也可以作为对他们的推荐。这个浏览次数最多的产品系列对于对商店中销售的产品不太了解的首次访问用户特别有帮助。它可以帮助他们更轻松地选择最好的商品。

浏览次数最多的产品在帮助您的商店提高销量方面发挥着重要作用。这是因为在您的网站上展示这些产品可以引导客户收集最有趣的产品,而不是让他们毫无方向地闲逛。但是,要显示浏览次数最多的产品,您需要获取浏览次数最多的产品集合。因此,在今天的文章中,我将指导您如何在 Magento 2 中获得浏览次数最多的产品集合

获取浏览次数最多的产品系列的 3 个步骤

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

第 1 步:创建 MostViewedProducts 块

要获得浏览次数最多的产品集合,首先,您需要创建一个MostViewedProducts块。为此,请按照路径Example/Productslider/Block/MostViewedProducts.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 Mageplaza\Productslider\Helper\Data;
use Example\Productslider\Model\ResourceModel\Report\Product\CollectionFactory as MostViewedCollectionFactory;
/**
 * Class MostViewedProducts
 * @package Mageplaza\Productslider\Block
 */
class MostViewedProducts extends AbstractSlider
{
    /**
     * @var MostViewedCollectionFactory
     */
    protected $_mostViewedProductsFactory;
    /**
     * MostViewedProducts constructor.
     * @param Context $context
     * @param CollectionFactory $productCollectionFactory
     * @param Visibility $catalogProductVisibility
     * @param DateTime $dateTime
     * @param Data $helperData
     * @param HttpContext $httpContext
     * @param MostViewedCollectionFactory $mostViewedProductsFactory
     * @param array $data
     */
    public function __construct(
        Context $context,
        CollectionFactory $productCollectionFactory,
        Visibility $catalogProductVisibility,
        DateTime $dateTime,
        Data $helperData,
        HttpContext $httpContext,
        MostViewedCollectionFactory $mostViewedProductsFactory,
        array $data = []
    ) {
        $this->_mostViewedProductsFactory = $mostViewedProductsFactory;
        parent::__construct($context, $productCollectionFactory, $catalogProductVisibility, $dateTime, $helperData, $httpContext, $data);
    }
    /**
     * Get Product Collection of MostViewed Products
     * @return mixed
     */
    public function getProductCollection()
    {
        $collection = $this->_mostViewedProductsFactory->create()
            ->addAttributeToSelect('*')
            ->setStoreId($this->getStoreId())->addViewsCount()
            ->addStoreFilter($this->getStoreId())
            ->setPageSize($this->getProductsCount());
        return $collection;
    }
}

第 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 步:刷新缓存和测试结果

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