Добрый день!
Joomla: 2.5.28 JBZoo: 2.1.5 Pro (build 1) Zoo: 3.2.2
Подскажите как правильно настроить товар которого нет в наличии.
Хочу реализовать присутствие товара на сайта для его последующей индексации, но при этом сделать следующее:
(Товары которых нет в наличии будут иметь цену 0 )
-Нужно что бы товар не выводился в Похожие товары
-В шаблоне full выводилась надпись (только для тех товаров, которых нет в наличии) Нет в наличии и например фразы типа "Для подбора необходимого товара воспользуйтесь тем то или свяжитесь с менеджером"
-Товар которого нет в наличии по списку всегда имел наименьший приоритет, а то у меня сортировка по цене стоит и сортирует он с нуля.
Или предложите ваш вариант, как сделать так что бы товар Нет в наличии не участвовал в сортировках поисках, а лишь присутствовал для поисковой системы и не мешал сайту.
Спасибо

"Нет в наличии" товар спрятать.
#1
Отправлено 19 August 2015 - 04:11
#2
Отправлено 19 August 2015 - 06:37
3. Чтоб товар не учитывался при сортировке, нужно вручную ставить ему приоритет -1 в списке материалов.
#3
Отправлено 19 August 2015 - 08:14
Можно попробовать добавить условие в фильтр
jbuniversal\framework\models\jbmodel.filter.php

->leftJoin(ZOO_TABLE_JBZOO_SKU . ' AS tSku ON tSku.item_id = tItem.id') ->where('tSku.balance <> ?', 0);Тогда фильтр будет искать все товары где остаток не равен нулю
В шаблонах материалов можно сделать проверку на остаток
<?php $element = $item->getElement('<ELEMENT_ID>'); $data = $element->current(); if (isset($data['in_stock']) && $data['in_stock']) { // есть на складе } else { // нет на складе }
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#4
Отправлено 19 August 2015 - 15:34
3. Чтоб товар не учитывался при сортировке, нужно вручную ставить ему приоритет -1 в списке материалов.
1)А есть вариант как сделать проверку? Если цена 0, то приоритет -1 (что бы сортировку не портила)
2)Сработал вариант ->where('tSku.balance <> ?', 0); (тестирую). Даже убрал категории из фильтра в которых весь товар в них balance 0
3) Не очень понял куда и как это вставить. Пробовал в teaser не получилось. Можно по конкретней на примере ?
<?php $element = $item->getElement('<ELEMENT_ID>'); $data = $element->current(); if (isset($data['in_stock']) && $data['in_stock']) { // есть на складе } else { // нет на складе }
#5
Отправлено 21 August 2015 - 07:29
1)А есть вариант как сделать проверку? Если цена 0, то приоритет -1 (что бы сортировку не портила)
На ходу в запрос такую проверку на поставить. Вернее можно добавить в SQL, но будет ужасно тормозить.
Это условие для шаблона материала Full.3) Не очень понял куда и как это вставить. Пробовал в teaser не получилось. Можно по конкретней на примере ?
Как пробовали, покажите ?-В шаблоне full выводилась надпись (только для тех товаров, которых нет в наличии)
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#6
Отправлено 08 October 2015 - 08:17
->leftJoin(ZOO_TABLE_JBZOO_SKU . ' AS tSku ON tSku.item_id = tItem.id') ->where('tSku.balance <> ?', 0);
Денис, у меня два каталога на сайте. Один с оборудованием, и там эта конструкция отлично работает и удалось исключить из фильтра всё не нужное. Но вот второй каталог с документами пострадал. В документах нет цены и наличия, поэтому фильтр по документам всегда выдаёт: ничего не найдено.
Подскажите как переписать where, что бы исключались элементы только с заполненным tSku.balance равным нулю?
UPD. Наличие не равно нулю или отсутствует:
->where('tSku.balance != 0 OR tSku.balance IS NULL');
но только после этого перестают работать все остальные условия фильтра (флажки, слайдеры и т.п.). Как быть?
Сообщение отредактировал Alex Def: 08 October 2015 - 21:27
#7
Отправлено 27 October 2015 - 13:35
Денис, у меня два каталога на сайте. Один с оборудованием, и там эта конструкция отлично работает и удалось исключить из фильтра всё не нужное. Но вот второй каталог с документами пострадал. В документах нет цены и наличия, поэтому фильтр по документам всегда выдаёт: ничего не найдено.
В этом случае стоит проверять тип материала, либо ID каталога. Т.е это будут дополнительные условия
->where('tItem.type = ?', '<АЛИАС_ТИПА_МАТЕРИАЛА>') ->where('tItem.application_id = ?', 42)Тогда условие будет срабатывать только там где вам нужно
Можно упростить и сделать условие > 0, например.->where('tSku.balance != 0 OR tSku.balance IS NULL');
Можно дополнительно проверять tSku.element_id т.е проверка на определенный элемент цены.
Скорее всего дело в том, что вы ограничиваете выборку по существованию остатка, соответственно в вашем случае не правильно проверять только остаток, нужны дополнительные условия, о которых я писал выше.но только после этого перестают работать все остальные условия фильтра (флажки, слайдеры и т.п.). Как быть?
Какие именно не будут конфликтовать между собой - вам будет проще разобраться, т.к лучше знаете контент вашего сайта.
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.