При создании достаточно сложных интернет-магазинов на Битрикс, иногда встает задача помимо обычной навигации каталогу создать дополнительную навигацию по производителям. При этом производители вынесены в отдельный инфоблок, а в инфоблоке каталога создано свойство "Производитель" типа "Привязка к разделам". Расскажу как отсортировать товары по этому свойству.
Создаем основной функционал:
Для начала идем в админпанель и создаем новый тип инфоблоков "Справочники", в нем создаем инфоблок "Производители".

В инфоблоке каталога создаем свойство "Производители" типа "Привязка к разделам" и указываем в качестве связанного инфоблока, инфоблок созданный выше. Заодно запоминаем присвоенный нашему свойству ID (у меня на скриншоте 65) - он нам еще понадобится.

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

Цитата |
---|
Юлиана написал: Добрый день, Михаил, А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."? Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.". Спасибо заранее! |
Цитата | ||
---|---|---|
Михаил Базаров пишет:
|
Возник такой вопрос:
Делал все как вы и написали:
1. Создал инфоблок с ,в моем случае, "Дизайнерами", при этом заранее очистил все поля ЧПУ адресами
Картинка
2.В новом разделе вывел компонент "Каталог", и в файле section.php заменил вывод списка элементов на топ товаров
Картинка
Картинка
3.Настроил адреса до детальной страницы(перенаправил её на главную страницу вывода каталога товаров), страницы разделов(оставил её как адрес до раздела где мы выводим топ элементов)
Картинка
Но в результате ничего не вышло, т.к. ссылка ведет на ту же страницу элемента.
Картинка
Помогите пожалуйста!
Цитата |
---|
Алексей пишет: Добрый день, у меня возникли вопросы: 1. Какие URL нужно прописывать в инфоблоке "Производители" #SECTION_CODE#/ или #SECTION_ID#/ значит идет: а. /manufs/ b. #SECTION_CODE#/ или ID c. #SECTION_CODE#/ и ????? 2. "Переходим в публичную часть сайта и создаем новый раздел, в котором выводим компанент "Топ элементов каталога" и настраиваем его на инфоблок нашего каталога. Переходим в режим кода и размещаем над компанентом вот такой код:......" а. где именно создавать этот раздел /catalog/ или где то в др. месте... в корне сайта? 3. "После этого создаем еще один раздел в который выводим комплексный компанент "Каталог" и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров...." а. где именно создавать этот раздел? внутри раздела созданного выше? b. где найти файл section.php? Заранее простите за столько вопросов, я новичек в этом деле..... Спасибо, Алексей |
С Битриксом только начал разбираться, и поэтому не совсем понятно.
Ваши статьи очень помогают разобраться в Битриксом человеку с небольшим опытом. За это Вам огромнейшее спасибо.
Есть не большая просьба. У меня так и не получается сделать вывод в каталог с необходимой структурой из выгруженного каталога с 1С с привязанным свойством к необходимому разделу. Может данный способ не подходит для этого, но насколько я понимаю то должен работать. Не могли бы Вы записать видео, так как возможно я упускаю какую либо мелочь, хоть и по своему мнения делаю все верно. Думаю данный материал в виде видео был бы многим очень полезен.
У меня еще не получается вывести так: Раздел 1 - Раздел 2 - Раздел 3
Если у меня элементы привязаны к разделу 3, не могу их вывести в разделе 2 и соответственно в разделе 1.
Можно привязывать по структуре через множественный выбор, но в 1С не имеется возможности в доп.свойстве выбрать несколько значений.
P.S.: Возможно Вы знаете другой вариант или как можно такое реализовать. Был бы Вам при много благодарен за такого рода помощь.

Цитата |
---|
Владислав Кузнецов написал: Плохо что нельзя отредактировать предыдущее сообщение, пока него не дано ответа. У меня еще не получается вывести так: Раздел 1 - Раздел 2 - Раздел 3 Если у меня элементы привязаны к разделу 3, не могу их вывести в разделе 2 и соответственно в разделе 1. Можно привязывать по структуре через множественный выбор, но в 1С не имеется возможности в доп.свойстве выбрать несколько значений. P.S.: Возможно Вы знаете другой вариант или как можно такое реализовать. Был бы Вам при много благодарен за такого рода помощь. |
Как вариант, если под рукой нет грамотного программиста, можете расковырять и переписать компонент catalog.1с.export / import - именно они отвечают за обработку и загрузку файла.
Но очень не советую, лишитесь обновлений этого модуля (само собой, выносите его в свое пространство имен). А обновлений там бывает много- полезных, придется вручную их отслеживать.
PS Как правило, 1С все переписывают (не только в плане обмена с сайтом), так и так отрезают обновления- так, что лучше решать вопрос на ее стороне.

Цитата |
---|
Владимир написал: Доброго. А почему статья начинается со слова отсортировать? |
Добрый. Согласен, не удачное название- поправил.