Перейти к содержимому


Фотография
- - - - -

"Нет в наличии" товар спрятать.


  • Закрытая тема Тема закрыта
Сообщений в теме: 6

#1 Na_uM

Na_uM

Отправлено 19 August 2015 - 04:11

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

Или предложите ваш вариант, как сделать так что бы товар Нет в наличии не участвовал в сортировках поисках, а лишь присутствовал для поисковой системы и не мешал сайту. 

Спасибо


  • 0

#2 woodman

woodman

Отправлено 19 August 2015 - 06:37

3. Чтоб товар не учитывался при сортировке, нужно вручную ставить ему приоритет -1 в списке материалов.


  • 0

#3 SmetDenis

SmetDenis

Отправлено 19 August 2015 - 08:14


Можно попробовать добавить условие в фильтр

jbuniversal\framework\models\jbmodel.filter.php
o7ym_200x0.png

            ->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 {
    // нет на складе
}

  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#4 Na_uM

Na_uM

Отправлено 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 {
    // нет на складе
}

  • 0

#5 SmetDenis

SmetDenis

Отправлено 21 August 2015 - 07:29

1)А есть вариант как сделать проверку? Если цена 0, то приоритет -1 (что бы сортировку не портила)


На ходу в запрос такую проверку на поставить. Вернее можно добавить в SQL, но будет ужасно тормозить.
 

3) Не очень понял куда и как это вставить. Пробовал в teaser не получилось. Можно по конкретней на примере ?

Это условие для шаблона материала Full.

-В шаблоне full выводилась надпись (только для тех товаров, которых нет в наличии)

Как пробовали, покажите ?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 Alex Def

Alex Def

Отправлено 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

  • 0

#7 SmetDenis

SmetDenis

Отправлено 27 October 2015 - 13:35

Денис, у меня два каталога на сайте. Один с оборудованием, и там эта конструкция отлично работает и удалось исключить из фильтра всё не нужное. Но вот второй каталог с документами пострадал. В документах нет цены и наличия, поэтому фильтр по документам всегда выдаёт: ничего не найдено.


В этом случае стоит проверять тип материала, либо ID каталога. Т.е это будут дополнительные условия
->where('tItem.type = ?', '<АЛИАС_ТИПА_МАТЕРИАЛА>')
->where('tItem.application_id = ?', 42)
Тогда условие будет срабатывать только там где вам нужно

->where('tSku.balance != 0 OR tSku.balance IS NULL');

Можно упростить и сделать условие > 0, например.
Можно дополнительно проверять tSku.element_id т.е проверка на определенный элемент цены.

но только после этого перестают работать все остальные условия фильтра (флажки, слайдеры и т.п.). Как быть?

Скорее всего дело в том, что вы ограничиваете выборку по существованию остатка, соответственно в вашем случае не правильно проверять только остаток, нужны дополнительные условия, о которых я писал выше.

Какие именно не будут конфликтовать между собой - вам будет проще разобраться, т.к лучше знаете контент вашего сайта.
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!