Opencart在品类最后显示缺货
Opencart display out of stock at the end on category
如何在 opencart 中对我的产品进行排序,如下所示,
所有产品将按顺序排序,但缺货产品(即如果数量= 0)将列在类别末尾!
您可以有 2 个查询。 一个,其中quantity != 0 ORDER BY sort_order
和第二个 quantity = 0
。然后你可以合并记录并得到你想要的输出。
在 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";
}
如何在 opencart 中对我的产品进行排序,如下所示,
所有产品将按顺序排序,但缺货产品(即如果数量= 0)将列在类别末尾!
您可以有 2 个查询。 一个,其中quantity != 0 ORDER BY sort_order
和第二个 quantity = 0
。然后你可以合并记录并得到你想要的输出。
在 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<1if (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";
}