Как вывести в карточке товара разделы (категории) сопутствующих, рекомендованных товаров, В карточке товара каждого раздела – необходимо вывести свои сопутствующие, каким-то образом привязанные разделы товаров.
Поставлена задача – вывести в карточке товара - разделы (категории) сопутствующих, рекомендованных товаров.
Именно разделы товаров – примерно как в catalog.section.list. Только в карточке товара каждого раздела – свои сопутствующие, каким-то образом привязанные разделы товаров.
Например для фотоаппаратов – сумки, штативы, фильтры и т.д., а для товара категории смартфоны – разделы: чехлы, защитные стекла, зарядные устройства и т.д.
Не могу найти рациональный способ решения данной задачи, с наименьшим количеством костылей. Посоветуйте – способ решения. Что использовать из API Битрикс, куда смотреть?
Никто не ответил, не помог добрым советом. Пришлось решать задачу самому. Необходимо было вывести на карточке товаров – категории (Разделы) сопутствующих товаров – в целях удобства клиентов, улучшения перелинковки страниц и поведенческих факторов. В итоге все получилось – вот так:
Учитывая, что мой способ решения возможно кому-нибудь пригодится, решил описать его в деталях. Вполне возможно гуру разработчикам 1-С Bitrix данный метод покажется не рациональным, но все работает, задача решена.
Группам товаров, в настойках раздела – задаем пользовательское поле. Настойки раздела -> Доп. Поля -> Добавить пользовательское свойство
Выбираем, заполняем поля: Тип данных: Привязка к разделам инф. Блоков Код поля: я указал - UF_RECOMEND Множественное: - Отмечаем Дополнительные настройки поля: Указываем нужный инфоблок каталога. Внешний вид: Список
После сохранения указанных настоек, в каждом разделе (Настойки раздела -> Доп. Поля) появится возможность выбрать разделы с сопутствующими товарами. Выбираем.
В дальнейшем, используя получаем ID выбранных категорий товаров, где "IBLOCK_ID"=>2, - ID инфоблока каталога, в моем случае 2; "ID"=>$arResult["SECTION"]["ID"] – ID раздела товара, А Array("UF_RECOMEND") - отмечено заданное название пользовательского поля.
В данном случае, используется проверка на наличие выбранных категорий товаров if (!empty($props_array["UF_RECOMEND"])) { … }, если сопутствующие категории не были отмечены, то соответственно массив пустой и код не будет отрабатываться. Далее, так же используя CIBlockSection::GetList – получаем данные выбранных категорий товаров.
Затем, в цикле while – сформирован вывод самих категорий товаров, где: <?= $arSections['SECTION_PAGE_URL'] ?> - ссылка на URL – раздела выбранных товаров; <?= CFile::GetPath($arSections['PICTURE'])?> - URL изображения раздела; <?= $arSections['NAME'] ?> - название раздела.
Столкнулся с такой же задачей, сделал как написал Юрий. Вывел код в catalog.element. Но ничего не выводится, если убрать условие !empty, то выводится все существующие разделы. ID все проставлены правильно, доп свойство заполнено. Как быть кто знает? Может структура массива поменялась в новой версии битрикса?