【发布时间】:2020-11-06 10:58:55
【问题描述】:
我希望产品列表中的产品始终从可售到不可售排序。应首先显示具有“添加到购物车”按钮的产品。
我尝试了https://magento.stackexchange.com/questions/178061/magento2-sort-products-and-search-result-by-stock-availability 中所写的创建插件:
//di.xml
<type name="Magento\Catalog\Model\Layer">
<plugin name="product_sort_by_stock" type="Company\Module\Model\Plugin\Layer"/>
</type>
//app/code/Company/Module/Model/Plugin/Layer.php
<?php declare(strict_types=1);
namespace Company\Module\Model\Plugin;
class Layer
{
public function aroundgetProductCollection(\Magento\Catalog\Model\Layer $subject, \Closure $proceed)
{
$selectedDirection = 'DESC';
$collection = $proceed();
$collection->getSelect()->order('is_salable '. $selectedDirection);
return $collection;
}
}
但这对我不起作用。
您能否建议我如何按is_salable 属性对产品集合进行排序?我有 Magento 2.4.0 和 Elasticsearch 7.9.2
【问题讨论】:
-
你能描述什么“不起作用”吗?您是否收到错误或结果未按您想要的方式排序(如果是后者,请展示一些示例,说明您得到的结果与预期的结果)
-
不起作用意味着添加插件不会更改排序产品。它们的顺序相同。他们没有像我想要的那样排序。我预计列表中的产品将按如下方式排序:1. 加入购物车 2. 加入购物车 3. 缺货 4. 缺货