VM 2.x Сортировка отсутствующих товаров в категории

prayer

Постоялец
Регистрация
12 Авг 2011
Сообщения
71
Реакции
11
У меня стоит Joomla 2.5.8 + Virtuemart 2.0.26а. При отсутствии товара я удаляю цену на него и вместо цены выводится надпись "Нет в наличии". Интересует вопрос как сделать так, чтобы при любом виде сортировки отсутствующий товар всегда смещался в конец списка категории? На данный момент он у меня вперемешку с другим товаром выводится.
 
Последнее редактирование:
Очень актуальная тема, нашли решение? Если у кого-то есть рабочее решение этого вопроса, пусть даже платное прошу поделится.
 
Смысл тогда сортировки? Если вы хотите оставить товар без цены на сайте, то пусть сортируется по правилам. Иначе просто уберите этот товар с публикации.
Можно задать аналогичный вопрос: "Как сделать так, чтобы при любой сортировке все товары с ценой равной 1000 стояли в конце списка?"
 
Последнее редактирование:
Смысл как бы очевиден. 1 Товар не убирается с публикации потому что он проиндексирован и приносит заходы на сайт. Клиенты звонят интересуются а когда товар появится и тд... Это общепринятая практика как-бы. Но если к примеру первая страница категории забита отсутствующим товаром клиент далее не ищет, думает что в магазине ничего нет... Можно еще долго объяснять но по моему все и так очевидно. И в большинстве крупных магазинов это реализовано.
 
Смущает фраза "при любом виде сортировки"... В этом случае надо не цену удалять ( я так понимаю, что цена ставится 0), а присваивать такому товару особое свойство, условие по которому прописывать в шаблоне вывода категории. Но более разумным было бы обнулять не цену, а количество и оперировать уже условиями по количеству.
 
можно сделать как предложил Messir, сортировать по кол-ву на складе...Для товаров в наличии допустим на складе будет 1000, а для не в наличии - 0.
Заходите в /administrator/components/com_virtuemart/models/product.php
Ищите функцию sortSearchListQuery. Везде меняете значение переменной $orderBy. Например, вместо $orderBy = 'ORDER BY p.`product_special`'; надо писать $orderBy = 'ORDER BY p.`product_in_stock` DESC, p.`product_special`';Я не проверяла, но должно сработать
 
У меня стоит Joomla 2.5.8 + Virtuemart 2.0.26а. При отсутствии товара я удаляю цену на него и вместо цены выводится надпись "Нет в наличии". Интересует вопрос как сделать так, чтобы при любом виде сортировки отсутствующий товар всегда смещался в конец списка категории? На данный момент он у меня вперемешку с другим товаром выводится.
тоже столкнулся
если скопировать код вывода товаров и добавить условие вывода обеим копиям (по типу if $product->product_in_stock != 0 ... else) - вроде решает вопрос, но правильно ли так делать?? .. подскажите кто больше понимает
 
Да вы обалдели!
еще на 1.9 было решение, в строку запроса товаров делается 2 сортировки! сначала по заданной в админке по умлочанию или по всем + по полю сток.
В итоге все без наличия выводятся всегда в конце! Гуглите. Ищите по разделу! решение есть. Хватит лентяйничать!
 
Тоже мониторил эту тему, так как интересует данный вопрос. Поиск на nulled.cc выдает только тему как скрыть отсутствующий товар: Для просмотра ссылки Войди или Зарегистрируйся И несколько нужных тем, но для Opencart Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся Я конечно с Вами не спорю и возможно где-то в тексте какой-нибудь темы, совершенно не связанной с вопросом, есть решение, но перечитать все темы раздела VM... Так что если Вы знаете решение или можете поделится конкретной ссылкой, думаю не я один буду вам благодарен.
 
Под рукой нет сайта для теста, приведу пример на словах, март 2.6.6
с двойкой работал мало, по памяти скажу где примерно менять
administrator\components\com_virtuemart\models\product.php
// special orders case, //Group case from the modules, // Time filter
ищем нужную сортировку, указанную по дефолту в админке или же все.
добавляем ", `product_in_stock`" или ", p.`product_in_stock`"

например $orderBy = ' ORDER BY `product_price` '; =>
$orderBy = ' ORDER BY `product_price`, `product_in_stock` '; или
$orderBy = ' ORDER BY `product_price`, p.`product_in_stock` ';

Направление дал - дальше сами, там все элементарно, мне негде тестить

-----
После этого поста забил в поиск virtuemart 2 order by product_in_stock
Ответов тьма, почитайте хотя бы здесь
Для просмотра ссылки Войди или Зарегистрируйся
 
Назад
Сверху