Как исключить из вывода каталога те товары, которых нет в наличии (общее количество на складах равно нулю) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Для этого потребуется кастомизировать стандартный системный метод, вывода объектов ката…»)
(нет различий)

Версия 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.