ホームページMagento 2でベストセラーと最も見られた製品を取得する方法は?
magento 2のホームページスライダーに、ベストセラーと最も閲覧された製品リストを表示する必要があります。
ホームページMagento 2でベストセラーと最も見られた製品を取得する方法は?
magento 2のホームページスライダーに、ベストセラーと最も閲覧された製品リストを表示する必要があります。
回答:
ベストセラーの__construct
場合は、getインスタンスでブロックを作成します
\Magento\Sales\Model\ResourceModel\Report\Bestsellers\CollectionFactory $collectionFactory,
元
<?php
namespace Sugarcode\Test\Block;
class Test extends \Magento\Framework\View\Element\Template
{
protected $_coreRegistry = null;
protected $_collectionFactory;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Registry $registry,
\Magento\Sales\Model\ResourceModel\Report\Bestsellers\CollectionFactory $collectionFactory,
array $data = []
) {
$this->_collectionFactory = $collectionFactory;
$this->_coreRegistry = $registry;
parent::__construct($context, $data);
}
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getBestSellerData()
{
$collection = $this->_collectionFactory->create()->setModel(
'Magento\Catalog\Model\Product'
);
return $collection;
}
}
最近表示した場合は、管理者側からウィジェットを使用するか、カスタムブロックを記述することができます \Magento\Reports\Model\ResourceModel\Product\CollectionFactory $productsFactory
見る:
vendor\magento\module-backend\Block\Dashboard\Tab\Products\Viewed.php
and
vendor\magento\module-backend\Block\Dashboard\Tab\Products\Ordered.php
次のコードを使用して、Magento 2 Sliderでベストセラー製品と最も見られた製品を表示します。
<?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productCollection = $objectManager->create('Magento\Reports\Model\ResourceModel\Report\Collection\Factory');
$collection = $productCollection->create('Magento\Sales\Model\ResourceModel\Report\Bestsellers\Collection'); ?>