畅销产品可被视为最重要的功能之一,因为当谈到Magento 2时,人们往往会询问并寻找它。要显示最畅销的产品,您将需要有关资料的畅销书收集。因此,在今天的帖子中,我将为您提供三个阶段,以帮助您在Magento 2中获得畅销书收藏。
如何获得畅销书收藏
- 第1步:创建BestSellerProducts块
- 第2步:在phtml文件中插入
- 第3步:刷新缓存和测试结果
第1步:创建BestSellerProducts块
要获得畅销书集,您首先要做的是创建BestSellerProducts块。遵循这条道路Mageplaza/Productslider/Block/BestSellerProducts.php
<?php
/**
* Mageplaza
*
* NOTICE OF LICENSE
*
* This source file is subject to the Mageplaza.com license that is
* available through the world-wide-web at this URL:
* https://www.mageplaza.com/LICENSE.txt
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this extension to newer
* version in the future.
*
* @category Mageplaza
* @package Mageplaza_Productslider
* @copyright Copyright (c) Mageplaza (https://www.mageplaza.com/)
* @license https://www.mageplaza.com/LICENSE.txt
*/
namespace Mageplaza\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\Sales\Model\ResourceModel\Report\Bestsellers\CollectionFactory as BestSellersCollectionFactory;
use Mageplaza\Productslider\Helper\Data;
/**
* Class BestSellerProducts
* @package Mageplaza\Productslider\Block
*/
class BestSellerProducts extends AbstractSlider
{
/**
* @var BestSellersCollectionFactory
*/
protected $_bestSellersCollectionFactory;
/**
* BestSellerProducts constructor.
* @param Context $context
* @param CollectionFactory $productCollectionFactory
* @param Visibility $catalogProductVisibility
* @param DateTime $dateTime
* @param Data $helperData
* @param HttpContext $httpContext
* @param BestSellersCollectionFactory $bestSellersCollectionFactory
* @param array $data
*/
public function __construct(
Context $context,
CollectionFactory $productCollectionFactory,
Visibility $catalogProductVisibility,
DateTime $dateTime,
Data $helperData,
HttpContext $httpContext,
BestSellersCollectionFactory $bestSellersCollectionFactory,
array $data = []
) {
$this->_bestSellersCollectionFactory = $bestSellersCollectionFactory;
parent::__construct($context, $productCollectionFactory, $catalogProductVisibility, $dateTime, $helperData, $httpContext, $data);
}
/**
* get collection of best-seller products
* @return mixed
*/
public function getProductCollection()
{
$productIds = [];
$bestSellers = $this->_bestSellersCollectionFactory->create()
->setPeriod('month');
foreach ($bestSellers as $product) {
$productIds[] = $product->getProductId();
}
$collection = $this->_productCollectionFactory->create()->addIdFilter($productIds);
$collection->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addAttributeToSelect('*')
->addStoreFilter($this->getStoreId())->setPageSize($this->getProductsCount());
return $collection;
}
}
第2步:在phtml文件中插入
在块中有一个集合之后,现在您可以按照上面的代码段从块中获取产品集合Mageplaza/HelloWorld/view/frontend/templates/list.phtml
。
然后,在phtml文件中插入以下代码。
<?php
$collection = $block->getProductCollection();
foreach ($collection as $_product) {
echo $product->getName() . ' - ' . $product->getProductUrl() . '<br />';
}
第3步:刷新缓存和测试结果
最后,让我们刷新缓存和测试结果。
结论
以上是关于如何获得畅销书收藏的说明。我希望在阅读完这三个步骤之后,您将能够轻松管理该集合