Отображать неправильный счетчик продуктов на странице со списком продуктов при использовании «group by» в функции setCollection - PullRequest
0 голосов
/ 15 апреля 2019

Неправильный счетчик продуктов виден на странице списка продуктов >>

1. Страница поиска

2. Страница категории

при добавлении дополнительной опции[Нравится -: Бестселлер и т. Д.] В сортировке по разделам с использованием плагина, затем отображается неправильное количество товаров, если вы использовали группу по условию в функции setCollection.

Попробовал в Magento 2.3.0 создать плагин Magento\Catalog\Block\Product\ProductList\Toolbar для этой функции класса setCollection.Проблема возникла из-за добавления условия группировки по группам в функцию setCollection

Я использую этот код в плагине -: [set Around Plugin]

/**
 * Plugin
 *
 * @param \Magento\Catalog\Block\Product\ProductList\Toolbar $subject
 * @param \Closure $proceed
 * @param \Magento\Framework\Data\Collection $collection
 */
public function aroundSetCollection(
    \Magento\Catalog\Block\Product\ProductList\Toolbar $subject,
    \Closure $proceed,
    $collection
) {
    $currentOrder     = $subject->getCurrentOrder();
    $result           = $proceed($collection);
    $currentDirection = $subject->getCurrentDirection();
    if ($currentOrder) {
        if ($currentOrder == 'custom_bestseller') {
            $subject->getCollection()->getSelect()
            ->joinLeft('sales_order_item', 'e.entity_id = sales_order_item.product_id', 'SUM(sales_order_item.qty_ordered) AS ordered_qty')
            ->group('e.entity_id')->order('ordered_qty ' . $currentDirection);
        }
    }
    return $result;
}

Отображение точного количества

...