我希望我的产品按两个参数排序:首先是每个产品的“排序顺序”;然后按数量。
以下是我在文件/catalog/controller/product/category.php(Opencart 1.5.6.4)中的内容,我相信这里应该以某种方式改变:
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
$sort = 'p.sort_order';
}
任何人都有任何想法?提前致谢
答案 0 :(得分:2)
默认情况下,Opencart一次只使用一个字段进行排序。要完成您所描述的内容,您需要修改getProducts()
中构建的/catalog/model/catalog/product.php
方法的查询。找到它所在的第196行:
$sql .= " ORDER BY p.sort_order";
这是未指定时的默认排序顺序。要添加辅助排序条件,您可以将其更改为:
$sql .= " ORDER BY p.sort_order, p.quantity";
如果始终想要将quantity
用作辅助排序字段,则可以在整个块之后添加如下:
} else {
$sql .= " ORDER BY p.sort_order";
}
$sql .= ", p.quantity";
无论指定了哪个主要排序字段,都会按数量排序为辅助字段。