В файле result_modifier.php компонента корзины вставляем код:
$arProducts = []; foreach ($arResult['GRID']['ROWS'] as $arRow) { $arProducts[$arRow['PRODUCT_ID']] = []; } if (!empty($arProducts)) { $arSelect = Array("ID", "IBLOCK_ID", "PROPERTY_CML2_LINK", "PROPERTY_CML2_LINK.IBLOCK_SECTION_ID", "IBLOCK_SECTION_ID"); $arFilter = Array("ID" => array_keys($arProducts)); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); $arSections = array(); while ($arFields = $res->GetNext()) { if (intval($arFields['PROPERTY_CML2_LINK_IBLOCK_SECTION_ID']) > 0) { $arSections[$arFields['PROPERTY_CML2_LINK_IBLOCK_SECTION_ID']] = []; } else { $arSections[$arFields['IBLOCK_SECTION_ID']]=[]; } $arProducts[$arFields['ID']] = $arFields; } if (!empty($arSections)) { $SectFilter = Array('ID' => array_keys($arSections),"IBLOCK_ID"=>23); $Sect_list = CIBlockSection::GetList(Array("NAME" => "ASC"), $SectFilter, false, array('ID','NAME','IBLOCK_ID','IBLOCK_SECTION_ID','SECTION_PAGE_URL')); while ($Section = $Sect_list->GetNext()) { $arSections[$Section['ID']] = $Section; } foreach ($arProducts as $pid=>$arProduct) { $arProducts[$pid]['SECTION'] = $arSections[( intval($arProduct['PROPERTY_CML2_LINK_IBLOCK_SECTION_ID'])>0 ) ? $arProduct['PROPERTY_CML2_LINK_IBLOCK_SECTION_ID'] : $arProduct['IBLOCK_SECTION_ID']]; } } foreach ($arResult['GRID']['ROWS'] as $key => $arRow) { $arIblockElement = $arProducts[$arRow['PRODUCT_ID']]; $arResult['GRID']['ROWS'][$key]['SECTION'] = $arIblockElement['SECTION']; } }
В шаблоне корзины при выводе элемента
$arItem['SECTION']['ID']
будет выводиться id категории.
Что бы вывести, например, навигационную цепочку всех категорий текущего товара, можно записать такой код (у меня это basket_items.php):
$navi = ''; $resSection = CIBlockSection::GetNavChain(false, $arItem['SECTION']['ID']); while ($arSection = $resSection->GetNext()) { $array_sections = $arSection; $navi .= $arSection['NAME'].' / '; } // Навигационная строка товара $navi = mb_substr($navi,0,-3);
В итоге в переменной $navi будет сохранена навигационная цепочка (хлебные крошки) каждого товара.