Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Отсортировать элементы в Битрикс по свойству привязка к разделам

Просмотров: 29016

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

Создаем основной функционал:

Для начала идем в админпанель и создаем новый тип инфоблоков "Справочники", в нем создаем инфоблок "Производители".

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

Переходим в публичную часть сайта и создаем новый раздел, в котором выводим компонент "Топ элементов каталога" и настраиваем его на инфоблок нашего каталога. Переходим в режим кода и размещаем над компонентом вот такой код:

<? 
    GLOBAL $arrFilter; 
    $arrFilter = array( 
    'PROPERTY_65' => $arResult["VARIABLES"]["SECTION_ID"], 
    ); 
 ?>

Расшифровка:

<? 
    Включаем фильтр $arrFilter; 
    $arrFilter = array( 
    'Наше свойство с ID 65' => получаем ID текущего раздела, 
    ); 
 ?> 

В самом компоненте подключаем фильтр.

 "FILTER_NAME" => "arrFilter",

После этого создаем еще один раздел, в который выводим комплексный компонент "Каталог" и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром.

Для того, чтобы не создавались дубликаты страниц подробного описания товаров, настраиваем ЧПУ топа товаров на раздел с основным каталогом. Комплексный компонент каталог нам нужен для вывода описаний производителей и передачи на страницу ID своего раздела, по которому мы и отфильтровываем товары.

Денис 01.09.2015
Михаил, большое спасибо за эту инструкцию!
Юлиана 10.05.2016
Добрый день, Михаил,
А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."?
Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.".
Спасибо заранее!
Михаил Базаров 11.05.2016
Цитата
Юлиана написал:
Добрый день, Михаил,
А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."?
Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.".
Спасибо заранее!
В файл section.php шаблона каталога
Юлиана 11.05.2016
Спасибо за подробный и развернутый ответ!
Цитата
Михаил Базаров пишет:
Цитата
Юлиана написал:
Добрый день, Михаил,
А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."?
Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.".
Спасибо заранее!
В файл section.php шаблона каталога
Александр Христич 30.06.2016
Здравствуйте Михаил!
Возник такой вопрос:
Делал все как вы и написали:
1. Создал инфоблок с ,в моем случае, "Дизайнерами", при этом заранее очистил все поля ЧПУ адресами
Картинка
2.В новом разделе вывел компонент "Каталог", и в файле section.php заменил вывод списка элементов на топ товаров
Картинка
Картинка
3.Настроил адреса до детальной страницы(перенаправил её на главную страницу вывода каталога товаров), страницы разделов(оставил её как адрес до раздела где мы выводим топ элементов)
Картинка
Но в результате ничего не вышло, т.к. ссылка ведет на ту же страницу элемента.
Картинка
Помогите пожалуйста!
bugmer 12.12.2016
Цитата
Алексей пишет:
Добрый день, у меня возникли вопросы:

1. Какие URL нужно прописывать в инфоблоке "Производители" #SECTION_CODE#/ или #SECTION_ID#/
значит идет:
а. /manufs/
b. #SECTION_CODE#/ или ID
c. #SECTION_CODE#/ и ?????

2. "Переходим в публичную часть сайта и создаем новый раздел, в котором выводим компанент "Топ элементов каталога" и настраиваем его на инфоблок нашего каталога. Переходим в режим кода и размещаем над компанентом вот такой код:......"

а. где именно создавать этот раздел /catalog/ или где то в др. месте... в корне сайта?

3. "После этого создаем еще один раздел в который выводим комплексный компанент "Каталог" и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров...."

а. где именно создавать этот раздел? внутри раздела созданного выше?
b. где найти файл section.php?

Заранее простите за столько вопросов, я новичек в этом деле.....

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

Как вариант, если под рукой нет грамотного программиста, можете расковырять и переписать компонент catalog.1с.export / import - именно они отвечают за обработку и загрузку файла.

Но очень не советую, лишитесь обновлений этого модуля (само собой, выносите его в свое пространство имен). А обновлений там бывает много- полезных, придется вручную их отслеживать.

PS Как правило, 1С все переписывают (не только в плане обмена с сайтом), так и так отрезают обновления- так, что лучше решать вопрос на ее стороне.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Отфильтровать товары бренда и вывести по разделам каталога Просмотров: 1660 Задача: на странице бренда, который выводится компонентом новостей, нужно показать все тов... Снять ограничение на количество символов в комментарии к заказу магаз... Просмотров: 12636 Как многим известно, в интернет-магазине на Битрикс имеется ограничение на количество симв... Пошагово получить информацию о заказах и сохранить как Excel (xls) Просмотров: 1702 Задача: Нужно получить информацию о заказах с возможностью указания даты создания "от"" и ... Заполнение габаритов товара, после обмена с 1С, из свойств элемента и... Просмотров: 11883 Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1... Вывести минимальную цену торговых предложений в Битрикс Просмотров: 28146 Если у товара несколько торговых предложений и у каждого предложения разные цены, иногда т... Связанные элементы в карточке товара, с помощью catalog.section Просмотров: 15800 Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элемен... Постраничная навигация в списке разделов Битрикс- catalog.section.lis... Просмотров: 9955 Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно... Автоматически отгрузить заказ и сменить статус отгрузки, при выполнен... Просмотров: 975 Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузка... Кастомизация компонента восстановления пароля bitrix:system.auth.forg... Просмотров: 26835 Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользовате... Модифицировать состав заказа #ORDER_LIST# в почтовом событии "Новый з... Просмотров: 30372 Если вы хотите как-то по особенному сверстать состав заказа в почтовом уведомлении 1С-Битр... Проверка на наличие элементов, текущего пользователя, в заданном инфо... Просмотров: 6184 Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно во... Ленивая подгрузка картинок в компоненте, на vue js Битрикс Просмотров: 10376 Если на одну страницу сайта выводится большое количество картинок, которые могут долго под... Добавить свойство в административную форму заказа Просмотров: 3806 Задача, кастомизировать административную форму заказа: добавить свойство заказа в шапку фо... Вывести имя пользователя добавившего элемент инфоблока в Битрикс Просмотров: 17250 Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например, автор... Данные о заказе текущего пользователя Просмотров: 13946 Иногда нужно получить данные о заказе текущего пользователя. Не через компонент, а непосре... Вывести общее количество товаров в шаблоне корзины 1С-Битрикс Просмотров: 7069 Задача: вывести общее количество товаров в корзине (именно количество единиц товара, а не ... Time Capsule на Windows 10. Хранение бекапов Time Machine на компьюте... Просмотров: 7926 Заметку написал скорее для себя, что бы собрать все в одну кучу. Написана на базе нескольк... Перенос Битрикс сайта с хостинга на хостинг, инструкция Просмотров: 27427 Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга ... Правильное подключение стилей и скриптов в Битрикс Просмотров: 85415 Есть несколько способов подключения файлов стилей и скриптов, при верстке шаблонов в систе... Автогенерация символьных кодов разделов и элементов Битрикс Просмотров: 16171 Иногда нужно создать символьные коды для разделов и элементов. Например: если сайт создан ...