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

11038  |  17

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

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

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

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

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

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

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

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

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

"FILTER_NAME" => "arrFilter",

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

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

Пример работы этого решения:

Сайт еще в разработке, потому на оформление и явные косяки не обращайте внимания :)

http://intim-avenue.ru/catalog/ - каталог товаров

http://intim-avenue.ru/catalog/624.html - подробная карточка товара, которая привязана к производителю. Если кликнем на название производителя попадем

http://intim-avenue.ru/manufs/ - сюда, это раздел производителя со всеми его товарами изо всех категорий каталога.

http://intim-avenue.ru/manufs/150/ - все производители

При этом, если кликнем на конкретный товар находясь в производителе, снова попадем в /catalog/ ID-товара. То есть дубликатов подробных карточек нет. (кстати не забудьте в инфоблоке производителей затереть все пути ЧПУ- иначе они попадут в карту сайта и получатся дубликаты.) 

Расскажи друзьям-то:
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей
Зарегистрироваться Войти Напомнить пароль
Или войти через социальную сеть:
Сергей
Огромнейшее спасибо. Какже давно я ищу вменяемую инструкцию по описанной процедуре.
Пришлось сделать сложную выборку прямо в инфоблоке с товарами, чтобы отсоритировывать элементы по производителям. С кучей костылей и малопонятных выборок, которые переодически куда-то слетают и самое главное генерируют не ЧПУ подобные страницы, по сути дубликаты карточек товаров.
А здесь еще и с возможностью что-то написать о производителе и поставить логотип над выборкой его товаров.
Огромное спасибище.
Михаил Базаров
Пожалуйста. Редко с подобным приходится сталкиваться, сам час соображал/вспоминал как это делается. Решил записать, чтобы больше не вспоминать :D
Владимир
Подскажите, где об этом можно почитать в официальной документации Битрикс? Хочется понять, что еще можно с этим сделать, где и как использовать. Просто для саморазвития
Михаил Базаров
Цитата
Владимир пишет:
Подскажите, где об этом можно почитать в официальной документации Битрикс? Хочется понять, что еще можно с этим сделать, где и как использовать. Просто для саморазвития
http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblocksection/getbyid.php
Павел
здравствуйте! Подскажите можно ли сделать свойство инфоблока список множественное у которого будут категории.? Например свойство " усуги" - категория "ногти" - значение "маникюр". В дальнейшем использовать его для сортировки с помощью фильтра. Чтобы в фильтре это выглядело примерно так:

Ногти
Маникюр
Педикюр
Наращивание ногтей

Волосы
Стрижка
Окрашивание
Ламинирование волос
Михаил Базаров
Цитата
Павел пишет:
здравствуйте! Подскажите можно ли сделать свойство инфоблока список множественное у которого будут категории.? Например свойство " усуги" - категория "ногти" - значение "маникюр". В дальнейшем использовать его для сортировки с помощью фильтра. Чтобы в фильтре это выглядело примерно так:

Ногти
Маникюр
Педикюр
Наращивание ногтей

Волосы
Стрижка
Окрашивание
Ламинирование волос
В общем-то можно
Олеся
Добрый день!
У меня есть тип инфоблока Каталог, в нем два инфоблока - правый каталог и левый каталог, они разные, но в верхнем меню есть страница каталог и я хочу чтобы весь товар выходил там! подскажите пожалуйста как это реализовать на битрикс.
Попробовала этим уроком - не получилось. Вставляет только какой то один инфоблок.
Спасибо!
Михаил Базаров
Цитата
Олеся пишет:
Добрый день!
У меня есть тип инфоблока Каталог, в нем два инфоблока - правый каталог и левый каталог, они разные, но в верхнем меню есть страница каталог и я хочу чтобы весь товар выходил там! подскажите пожалуйста как это реализовать на битрикс.
Попробовала этим уроком - не получилось. Вставляет только какой то один инфоблок.
Спасибо!
Так тяжело сказать7 нужно полностью понимать задачу и увидеть внутреннюю реализацию сайта.
Что за левый правый каталог, что мешает сделать их разделами одного каталога?
Алексей
Добрый день, у меня возникли вопросы:

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

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

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

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

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

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

Спасибо, Алексей
Александр
свойство производитель со списком значений выгрузилось из 1с. меняем тип список на привязку к разделам и выбираем новый инфоблок Производители. сохраняем. но в справочнике Производители не появились элементы из списка значений. при повторной выгрузке из 1с (полная) создается еще одно свойство производитель опять тип список. элементы не появились? что делать подскажите.
Михаил Базаров
Цитата
Александр пишет:
свойство производитель со списком значений выгрузилось из 1с. меняем тип список на привязку к разделам и выбираем новый инфоблок Производители. сохраняем. но в справочнике Производители не появились элементы из списка значений. при повторной выгрузке из 1с (полная) создается еще одно свойство производитель опять тип список. элементы не появились? что делать подскажите.
Давно с такой задачкой не сталкивался, уже точно не вспомню. Но что-то конкретно модифицировалось в 1С. Сейчас, вроде бы проблем с этим быть не должно, настройте производителей как hl инфоблоки. На стороне 1С, по моему уже все есть из коробки, заводите их как справочники
Дмитрий
Михаил, немножко ошиблись:
НЕ
Цитата
http://intim-avenue.ru/manufs/ - сюда, это раздел производителя со всеми его товарами изо всех категорий каталога.
http://intim-avenue.ru/manufs/150/ - все производители
А
Цитата
http://intim-avenue.ru/manufs/150/ - сюда, это раздел производителя со всеми его товарами изо всех категорий каталога.
http://intim-avenue.ru/manufs/ - все производители
И можно вопрос? Все-таки не совсем понятно где создать "еще один раздел, в который выводим комплексный компонент "Каталог" ?
Если посмотреть на приведенный Вами пример, какой раздел Вы создали и разместили компонент Каталог?
Денис
Михаил, большое спасибо за эту инструкцию!
Юлиана
Добрый день, Михаил,
А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."?
Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.".
Спасибо заранее!
Михаил Базаров
Цитата
Юлиана написал:
Добрый день, Михаил,
А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."?
Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.".
Спасибо заранее!
В файл section.php шаблона каталога
Юлиана
Спасибо за подробный и развернутый ответ!
Цитата
Михаил Базаров пишет:
Цитата
Юлиана написал:
Добрый день, Михаил,
А что означает фраза "..и в файле section.php вместо вывода списка элементов раздела вставляем наш топ товаров вместе с созданным фильтром."?
Можете пояснить, куда именно вставлять "наш топ товаров вместе с созданным фильтром.".
Спасибо заранее!
В файл section.php шаблона каталога
Александр Христич
Здравствуйте Михаил!
Возник такой вопрос:
Делал все как вы и написали:
1. Создал инфоблок с ,в моем случае, "Дизайнерами", при этом заранее очистил все поля ЧПУ адресами
Картинка
2.В новом разделе вывел компонент "Каталог", и в файле section.php заменил вывод списка элементов на топ товаров
Картинка
Картинка
3.Настроил адреса до детальной страницы(перенаправил её на главную страницу вывода каталога товаров), страницы разделов(оставил её как адрес до раздела где мы выводим топ элементов)
Картинка
Но в результате ничего не вышло, т.к. ссылка ведет на ту же страницу элемента.
Картинка
Помогите пожалуйста!

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: