Битрикс - обработчик OnАfterIBlockElementUpdate
По умолчанию, Bitrix игнорирует в торговом каталоге факт, есть ли товары в категории или нет. В любом случае, если категория активна, система выводит их на фронтенд. Задача - скрывать ветки без активного товара и включать в случае имеющегося товара.
Вот, что мне написали в службе поддержки:
>>При добавлении товара возникает событие OnАfterIBlockElementAdd, при обновлении - OnАfterIBlockElementUpdate. Эти события возникают в том числе и во время импорта. В документации есть пример использования этих событий. При добавлении элемента в обработчике события OnАfterIBlockElementAdd вы можете узнать в какую секцию добавляется товар, если активных товаров данной секции нет, то деакативировать секцию, если есть хотя бы 1, то активировать.
>>Вы можете воспользоваться методом CIBlockElement::GetList() для перебора.