在setCollection函数中使用“分组依据”时,在产品列表页上显示错误的产品计数

时间:2019-04-15 08:44:51

标签: php magento magento2.2 magento-2.3

在产品详情页上显示错误的产品计数>>

1。搜索页

2。类别页面

在使用插件按部分进行排序时添加更多选项[如-:畅销产品等]时,如果在setCollection Function中按条件使用分组,则会看到错误的产品计数。

在Magento 2.3.0中尝试过 创建Magento\Catalog\Block\Product\ProductList\ToolbarsetCollection函数的插件。 发生此问题是由于在setCollection Function中添加了Group By Condition

我正在插件中使用该代码-:[围绕插件设置]

/**
 * 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;
}

显示确切计数

0 个答案:

没有答案