Magento 2: бестселлер и самый популярный товар на домашней странице

13

Как получить бестселлер и самый популярный товар на главной странице Magento 2 ?

Мы должны отобразить бестселлер и список самых популярных товаров на слайдере домашней страницы в magento 2.

Ракеш Джесадия
источник

Ответы:

12

Для бестселлера создайте блок в __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 
Прадип Кумар
источник
Как получить список самых популярных товаров?
Ракеш Джесадия
создайте виджет от администратора, передний вызовите этот виджет, если бестселлеры работают для вас, примите мой ответ, чтобы он был полезен для других
Pradeep Kumar
хорошо, я проверю это сначала для бестселлера. Благодарю.
Ракеш Джесадия
все работает нормально, вы получите идентификатор продукта и имя, просто поместите для каждой петли для сбора и распечатайте данные
Pradeep Kumar
1
@RBJesadiya: - на форуме вы не получите 100% решения для вашей задачи, вы получите только идеи, если вы хотите поднять еще больше новых заявок, вы можете попробовать это $ collection-> getSelect () -> limit (10);
Прадип Кумар
0

Используйте следующий код, чтобы просмотреть ЛУЧШИЙ ПРОДАВЕЦ, а также САМЫЕ ПРОСМОТРЕННЫЕ продукты на вашем 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'); ?>
Абхинав Сингх
источник
Помните, что при первом запуске сайта у вас не будет никаких данных о продажах, поэтому вам нужно будет добавить логику резервного копирования, например, извлекать случайные продукты из каталога, если в таблице продаж ничего нет.
thdoan