====== Построение актуального меню(алгоритм удаления пустых веток) ====== - Получаем актуальное меню. Методы [[ru:apiv2:methods:getdefaultmenu]], [[ru:apiv2:methods:getmenu]] - Берем прайс товаров, каждый из которых содержит значение FamilyId - Находим максимальный уровень вложенности меню по полю Level. - В цикле от нижнего уровня меню к верхнему проверяем каждое семейство узла меню (по каждому Id из поля FamilyGroupIds) на наличие его продуктов в прайсе. Продукт в прайсе должен быть: * с признаком не блокирован, * с ценой больше 0, * в нужной валюте. - Если таких продуктов нет, то помечаем сам узел меню “на удаление”. - Если FamilyGroupIds для узла является пустым, то ищем хотя бы одного потомка данного узла, не помеченного “на удаление”. Если таких потомков не найдено, помечаем узел меню “на удаление”. - Удаляем все узлы, помеченные “на удаление”.