Как исключить из вывода каталога те товары, которых нет в наличии (общее количество на складах равно нулю) — различия между версиями
Gordeev (обсуждение | вклад) (Новая страница: «Для этого потребуется кастомизировать стандартный системный метод, вывода объектов ката…») |
(нет различий)
|
Версия 15:27, 27 января 2012
Для этого потребуется кастомизировать стандартный системный метод, вывода объектов каталога, добавив него проверку соответствующего условия. Про то, как в общем случае кастомизировать метод 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.