Товар которого нет в наличии делаем в конце
Делаем, товар которого нет в наличии в конце списка при просмотре в категориях. На основе этого можете сделать отображение в поиске, в производителях и т.д
Для того чтобы товар которого нет в наличии был в конце списка, нам нужно поменять сортировку по умолчанию. Я отталкивался от значения "количество" и делал сортировку по этому полю.
Открываем catalog/controller/product/category.php
Ищем строки и делаем как ниже указано:
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
//$sort = 'p.sort_order';
$sort = 'p.quantity';
}
if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
//$order = 'ASC';
$order = 'DESC';
}
После этих изменений товар будет сортироваться по полю количество по убыванию, самое меньшее в конце.
Так же можно сменить или спрятать кнопку "Купить", но это позже опишу.
В принципе логично... :)
ОтветитьУдалитьСпасибо за коммент ;-)
Удалитьа как сделать не сортировку по кол-ву, а при значении товара 0 он попадает в конец списка ?
ОтветитьУдалитьСпасибо большое! Как раз искал
ОтветитьУдалитьПожалуйста
Удалитьприведенное решение некорректно, совершенно не решает поставленной задачи.
ОтветитьУдалитьдля сортировки по наличию товара, не количеству реализовал вот так в файле model/catalog/product.php в функции getProducts
добавил переменную в запрос
$sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, p.quantity>0 as remain, .....
...........
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
$sql .= " ORDER BY remain DESC, LCASE(" . $data['sort'] . ")";
} elseif ($data['sort'] == 'p.price') {
$sql .= " ORDER BY remain DESC (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
} else {
$sql .= " ORDER BY remain DESC, " . $data['sort'];
}
} else {
$sql .= " ORDER BY remain DESC, p.sort_order";
}
а можно подробнее,в какой строке вставить переменную и как я понял вторая часть кода заменяет следующие строки?
Удалить$sql .= " ORDER BY " . $data['sort'];
} else {
$sql .= " ORDER BY pd.name";
}
Спасибо огромное!!! ТО, что доктор прописал
Удалить+ 100 к карме
Народ, HELP ME Ерунда вышла с магазином. Прошло полгода и только сейчас заметил, что если количество товара заканчивается - товар полностью пропадает с магазина и даже переходя по прямой ссылке "Товар не найден". Что делать? Где искать проблему? На форумах не нашел никакой инфы. По пути catalog/model/catalog/ ковырялся в product.php Но ничего не получилось Кто-нибудь может подсказать решение?
ОтветитьУдалитьНарод, HELP ME
ОтветитьУдалитьЕрунда вышла с магазином. Прошло полгода и только сйчас заметил, что если количество товара заканчивается - товар полностью пропадает с магазина и даже переходя по прямой ссылке "Товар не найден".
Что делать? Где искать проблему? На форумах не нашел никакой инфы.
По пути catalog/model/catalog/ ковырялся в product.php
Но ничего не получилось
Кто-нибудь может подсказать решение?