Opencart在类别结束时显示缺货

时间:2016-05-09 15:49:20

标签: sorting opencart

如何在opencart中对我的产品进行排序,如下所示,

所有产品将按订单排序,但缺货产品(即数量= 0)将列在该类别的末尾!

2 个答案:

答案 0 :(得分:2)

在opencart 2.2中,您必须更改catalog \ model \ catalog \ product.php

找到

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
   if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
            $sql .= " ORDER BY LCASE(" . $data['sort'] . ")  ";
        } elseif ($data['sort'] == 'p.price') {
            $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
        } else {
            $sql .= " ORDER BY " . $data['sort'];
        }
} else {
        $sql .= " ORDER BY p.sort_order";
}

并在" ORDER BY"

之后添加其他订单规则 p.quantity< 1
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
   if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
            $sql .= " ORDER BY       p.quantity<1,               LCASE(" . $data['sort'] . ")  ";
        } elseif ($data['sort'] == 'p.price') {
            $sql .= " ORDER BY       p.quantity<1,               (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
        } else {
            $sql .= " ORDER BY       p.quantity<1,                " . $data['sort'];
        }
} else {
        $sql .= " ORDER BY           p.quantity<1,                p.sort_order";
}

答案 1 :(得分:0)

您可以有2个查询。 一个,其中quantity != 0 ORDER BY sort_order quantity = 0。然后,您可以合并记录并获得所需的输出。