Фильтр товаров по ID раздела любого уровня. Рекурсивная функция
$ids = array();
function treeSections($id, &$ids)
{
$db_list = CIBlockSection::GetTreeList( Array('IBLOCK_ID'=>39, 'GLOBAL_ACTIVE'=>'Y', 'SECTION_ID'=>$id), array('ID', 'NAME'));
while($ar_result = $db_list->GetNext()) {
$ids[] = $ar_result['ID'];
treeSections($ar_result['ID'], $ids);
}
}
treeSections($arElement['PROPERTY_CATEGORY_ITEMS_VALUE'], $ids);
$GLOBALS['arrProductsFilter']["SECTION_ID"] = $ids;
Или использовать уже имеющийся функционал:
$GLOBALS['arrProductsFilter']["SECTION_ID"] = $arElement['PROPERTY_SECTION_VALUE'];
$GLOBALS['arrProductsFilter']['INCLUDE_SUBSECTIONS'] = 'Y';