При создании достаточно сложных интернет-магазинов на Битрикс, иногда, встает задача по мимо обычной навигации по каталогу создать дополнительный раздел с сортировкой товаров по производителям. При этом производители вынесены в отдельный инфоблок, а в инфоблоке каталога создано свойство "Производитель" типа "Привязка к разделам". Расскажу как отсортировать товары по этому свойству.
Создаем основной функционал:
Для начала идем в админпанель и создаем новый тип инфоблоков "Справочники", в нем создаем инфоблок "Производители".
В инфоблоке каталога создаем свойство "Производители" типа "Привязка к разделам" и указываем в качестве связанного инфоблока, инфоблок созданный выше. За одно запоминаем присвоенный нашему свойству ID (у меня на скриншоте 65) - он нам еще понадобится.
Переходим в публичную часть сайта и создаем новый раздел, в котором выводим компонент "Топ элементов каталога" и настраиваем его на инфоблок нашего каталога. Переходим в режим кода и размещаем над компонентам вот такой код:
GLOBAL $arrFilter;
$arrFilter = array(
'PROPERTY_65' => $arResult["VARIABLES"]["SECTION_ID"],
);
?>
Расшифровка:
Включаем фильтр $arrFilter;
$arrFilter = array(
'Наше свойство с ID 65' => получаем ID текущего раздела,
);
?>
В самом компоненте подключаем фильтр.
После этого создаем еще один раздел в который выводим комплексный компонента "Каталог" и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром.
Для того, чтобы не создавались дубликаты страниц подробного описания товаров, настраиваем ЧПУ топа товаров на раздел с основным каталогом. Комплексный компанент каталог нам нужен для вывода описаний производителей и передачи на страницу ID своего раздела, по которому мы и отфильтровываем товары.
Пример работы этого решения:
Сайт еще в разработке, потому на оформление и явные косяки не обращайте внимания :)
- каталог товаров
- подробная карточка товара которая привязана к производителю. Если кликнем на название производителя попадем
- сюда, это раздел производителя со всеми его товарами изо всех категорий каталога.
- все производители
При этом, если кликнем на конкретный товар находясь в производителе снова попадем в /catalog/ ID-товара. То есть дубликатов подробных карточек нет. (кстати не забудте в инфоблоке производителей затереть все пути ЧПУ- иначе они попадут в карту сайта и получатся дубликаты.)