在产品详情页上显示错误的产品计数>>
1。搜索页
2。类别页面
在使用插件按部分进行排序时添加更多选项[如-:畅销产品等]时,如果在setCollection Function中按条件使用分组,则会看到错误的产品计数。
在Magento 2.3.0中尝试过
创建Magento\Catalog\Block\Product\ProductList\Toolbar
类setCollection
函数的插件。
发生此问题是由于在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;
}
显示确切计数