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

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

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

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

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

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

В инфоблоке каталога создаем свойство "Производители" типа "Привязка к разделам" и указываем в качестве связанного инфоблока, инфоблок созданный выше. Заодно запоминаем присвоенный нашему свойству 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-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Создание скидки на общую сумму покупки в Битрикс корзине Просмотров: 26960 Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать м... Установка вебсервера на Apple M1 (нативный ARM стек), оптимизированны... Просмотров: 6143 Появилась задачка, установить стек MAMP (macOS, Apache, MYSQL, PHP) на рабочий ноутбук с п... Получить все товары из всех заказов пользователя. История купленных т... Просмотров: 1374 Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленн... Данные о текущем разделе каталога вывести в section.php Просмотров: 3115 Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, ... Ссылка и название раздела в списке новостей Битрикс Просмотров: 10517 Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новос... Вывод даты создания элемента в правильном формате в Битрикс Просмотров: 21668 Если нужно вывести дату создания новости, статьи или товара в каталоге, в принципе любого ... Дополнительные параметры в меню Битрикс Просмотров: 19336 Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например о... AJAX корзина с отправкой количества из раздела каталога Просмотров: 19125 Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При... Как работает система сертификации партнеров 1С-Битрикс, уровни партне... Просмотров: 3514 Сертификация от «1С-Битрикс» – это объективная оценка знаний и практических навыков разраб... Прятать или показывать описание раздела каталога Просмотров: 598 В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый па... Цвета торговых предложений из Highload инфоблоков в списке товаров Просмотров: 14086 Подвернулся на доработку очень старый сайт, работал еще на 11-ой версии Битрикс. Выполнили... Вывести свойство привязка к Яндекс Картам в Битрикс Просмотров: 18184 Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента... Получение доступа к железу устройства из Битрикс мобильное приложение Просмотров: 5604 Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функцион... Валидация пароля и подтверждения при регистрации в битрикс Просмотров: 14265 Встала задачка сделать валидацию пароля и его подтверждения в стандартной форме регистраци... Спойлер в списке новостей Битрикс Просмотров: 11287 Иногда нужно сделать спойлеры в копонентах Битрикс, в основном конечно, имеет смысл при оч... Сортировать товары по названию, цене и дате поступления в каталоге Би... Просмотров: 39398 Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию... Вывести компонент новостей на страницу в Битрикс Просмотров: 63592 Посмотрел Яндекс метрику на свой сайт, и решил что буду частенько писать сюда именно то, ч... Очистить брошенные корзины с помощью API 1С-Битрикс Просмотров: 367 Задача: в интернет-магазине накапливается большое количество брошенных корзин, нужно их оч... Старые шаблоны битрикс для простой верстки Просмотров: 16916 Новые версии типового интернет-магазина, который идет в комплекте с Битрикс (от 12 версии ... Показать только один тип цены в каталоге Битрикс Просмотров: 13743 Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на с...