Как исключить из вывода каталога те товары, которых нет в наличии (общее количество на складах равно нулю) — различия между версиями
Gordeev (обсуждение | вклад) (Новая страница: «Для этого потребуется кастомизировать стандартный системный метод, вывода объектов ката…») |
Whoa (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 14: | Строка 14: | ||
</pre> | </pre> | ||
где 383 - идентификатор поля "Общее количесво на складах". На разных сайтах идентификаторы могут отличаться. Узнать $field_id для поля можно, посмотрев xml-представление типа данных, содержашего это поле. То есть, зайти в "Шаблоны данных" и в адресе типа данных дописать .xml. Например, ваш_домен/admin/data/type_edit/72/.xml. | где 383 - идентификатор поля "Общее количесво на складах". На разных сайтах идентификаторы могут отличаться. Узнать $field_id для поля можно, посмотрев xml-представление типа данных, содержашего это поле. То есть, зайти в "Шаблоны данных" и в адресе типа данных дописать .xml. Например, ваш_домен/admin/data/type_edit/72/.xml. | ||
+ | [[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]] [[Категория:Модуль Каталог]] |
Текущая версия на 10:58, 7 августа 2018
Для этого потребуется кастомизировать стандартный системный метод, вывода объектов каталога, добавив него проверку соответствующего условия. Про то, как в общем случае кастомизировать метод catalog getObjectsList, подробно написано здесь:
http://wiki.umisoft.ru/Создание_кастомного_макроса_на_основе_существующего_(catalog_getObjectsList)
Остановимся более подробно, как добавить условие наличия товара на складе. В API.UMI-CMS предусмотрена функция addPropertyFilterMore() — Устанавливает проверку значения поля на "больше". Прописываем в нашем кастомном методе после строк
$sel = new umiSelection; $sel->setElementTypeFilter(); $sel->addElementType($hierarchy_type_id);
наше условие
$sel->addPropertyFilterMore(383, 1);
где 383 - идентификатор поля "Общее количесво на складах". На разных сайтах идентификаторы могут отличаться. Узнать $field_id для поля можно, посмотрев xml-представление типа данных, содержашего это поле. То есть, зайти в "Шаблоны данных" и в адресе типа данных дописать .xml. Например, ваш_домен/admin/data/type_edit/72/.xml.