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

Вывести производителей на сайте с отбором его товаров из каталога

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

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

Старый способ

Ранее, я уже писал заметку о том как реализовать данный функционал, посмотреть можно тут: Отсортировать элементы в Битрикс по свойству привязка к разделам 

Однако, для его реализации, строго необходимо, что бы у элементов каталога была привязка либо к разделам- либо к элементам другого инфоблока, в котором собственно хранятся производители.

Вести подобный каталог достаточно тяжело, так как нужно постоянно отслеживать наличие привязки товара к элементу/разделу другого инфоблока. Если товаров под несколько тысяч, и они постоянно обновляются из 1С- это становится очень рутинной задачей.

Автоматизируем вывод товаров бренда

Намного практичнее, сделать вывод товаров в описании производителя автоматическим. Из 1С мы выгружаем товары каталога, у которых название производителя обычная строка.

Так же мы создали отдельный инфоблок с производителями, добавили их логотипы, какие-то описания и вывели в отдельном разделе на сайте. Инфоблок каталога и инфоблок производителей ни как между собой не связаны.

"-Но. Я зашел в описание производителя и хотел бы сразу видеть все товары оного" скажет нам посетитель сайта. И мы его поймем и реализуем данный функционал. Причем, все будет работать автоматически без последующего вмешательства. Выгрузилась хоть тысяча новых товаров из 1С, все, они сразу раскидаются по своим производителям.

Рассказываю в видео, для реализации понадобится вот этот кусочек кода

Намного практичнее, сделать вывод товаров в описании производителя автоматическим. Из 1С мы выгружаем товары каталога, у которых название производителя обычная строка.

$brandName = $arResult["NAME"];
$GLOBALS['arrBrandName'] = array("=PROPERTY_ИД_VALUE"=>$brandName);

Видео: вывод товаров бренда в Битрикс

У заметки есть продолжение: Отфильтровать товары бренда и вывести по разделам каталога
s.rudko@100systems.com Rudko 15.04.2021
А реально ли сделать чтобы на странице с брэндами отображался товар (Где свойство фильтруется с типом строка или список), и на детальной странице карточки товара отобразить брэнд из другого инфоблока (Где свойство всегда с типом привязки к элементам инфоблока) и чтобы это все с 1С взаимодействовало автоматически?
Цитата
Старый способ

Ранее, я уже писал заметку о том как реализовать данный функционал, посмотреть можно тут: Отсортировать элементы в Битрикс по свойству привязка к разделам


Старый способ вроде более подходит внешне, но насколько я понимаю, он не выгружается из 1С.
Может я ошибаюсь, не подскажите, как решить данную задачу?
Михаил Базаров 15.04.2021
Цитата
s.rudko@100systems.com Rudko написал:
А реально ли сделать чтобы на странице с брэндами отображался товар (Где свойство фильтруется с типом строка или список), и на детальной странице карточки товара отобразить брэнд из другого инфоблока (Где свойство всегда с типом привязки к элементам инфоблока) и чтобы это все с 1С взаимодействовало автоматически?
Если правильно понял вопрос:

У вас есть инфоблок с каталогом, в котором есть свойство "Бренд", в нем указан производитель (не суть важно, строкой или прявязкой).
Есть инфоблок с брендами, где бренды это элементы и их названия один в один как в элементах каталога.

Что бы на странице бренда вывести все товары, в которых указан этот бренд использовали фильтр
Код
$GLOBALS['arrFilterBrand'] = array('PROPERTY_ИД_СВОЙСТВА_С_БРЕНДОМ_VALUE' => $arResult["NAME"]);

$APPLICATION->IncludeComponent(
   "bitrix:catalog.section", 
   .....
      "FILTER_NAME" => "arrFilterBrand",
   .....
);

Теперь надо, в элементе каталога сделать ссылку на бренд- что бы выводился в нем не зависимо от 1С
В карточке, в нужном месте
Код
$brandData = CIBlockElement::GetList(
array("ID" => "ASC"),
   array(
      "IBLOCK_ID" => "14", 
      "NAME" => $arResult['PROPERTIES']['СВОЙСТВО_С_НАЗВАНИЕМ_БРЕНДА']['VALUE']
      ),
   false,false,
   array(
       'NAME',
       'DETAIL_PICTURE',
       'CODE'
   )
);
while ($arFieldsBr = $brandData->Fetch()) {
    $logoPath = CFile::GetPath($arFieldsBr["DETAIL_PICTURE"]);
?>
   Бренд: <?=$arFieldsBr['NAME']?>
   <a href="/brands/<?= $arFieldsBr['CODE'] ?>.php">
   <img src="<?= $logoPath ?>"/>
   </a>
<?
}

В итоге перелинковали бренды и карточки каталога между собой. Не зависимо от 1С.
Главное, что бы название бренда было написано один в один и в элементе каталога (в свойстве) и в названии бренда в инфоблоке с брендами.
s.rudko@100systems.com Rudko 16.04.2021
Я нашел место откуда выводится БРЭНД на детальную страницу товара. Вставил туда код, но он не сработал(
Я хотел задать вопрос, может я не верно понимаю. Я пытаюсь подтянуть прилинкованый БРЭНД по названию из другого инфоблока где БРЭНД - это элемент.
Код
array("ID" => "ASC"),
   array(
      "IBLOCK_ID" => "14", 
      "NAME" => $arResult['PROPERTIES']['СВОЙСТВО_С_НАЗВАНИЕМ_БРЕНДА']['VALUE']
      ),
Здесь в коде я указываю инфоблок каталога товаров, потому, что у инфоблока где БРЭНД - это элемент, нет свойств вообще. Поэтому я не могу указать свойство с названием. Делаю логичный вывод, что здесь указывается инфоблок каталога товаров.

Вопрос: а где указывается инфоблок где БРЭНД - это элемент, чтобы код понимал откуда ему взять элемент БРЭНДА?

Михаил Базаров 16.04.2021
Цитата
s.rudko@100systems.com Rudko написал:
Вопрос: а где указывается инфоблок где БРЭНД - это элемент, чтобы код понимал откуда ему взять элемент БРЭНДА?
В "IBLOCK_ID" указываете id инфоблока с брендами. Далее он находится по совпадению названия бренда из свойства товара (каталога) по "NAME"
Гость 11.07.2022
Доброго времени суток, фильтрует если прописать бренд в ручную, в чем может быть проблема?
$GLOBALS['arrBrandName'] = array("PROPERTY_133_VALUE"=>"Бренд" ;
Михаил Базаров 11.07.2022
Цитата
Гость написал:
Доброго времени суток, фильтрует если прописать бренд в ручную, в чем может быть проблема?
$GLOBALS['arrBrandName'] = array("PROPERTY_133_VALUE"=>"Бренд" ;

Скорее всего, в названии бренда. Проверка идет по строгому совпадению названия.
Гость 02.08.2022
Михаил скажи вот мой вызов товаров бренда как описано в уроке и чуть выше я вызвал умный фильтр. Все отображается хорошо, но фильтр по какой то причине просто не хочет фильтровать. В чем может быть причина?

Скрытый текст
Михаил Базаров 02.08.2022
В фильтре не указан раздел, из которого он должен брать параметры.
Нужно корректно указать SECTION_ID или SECTION_CODE
распечатай массив из  catalog.section что бы узнать точно.
Гость 03.08.2022
Получается если мне нужно из нескольких разделов, нужно будет указать массив разделов?
Михаил Базаров 03.08.2022
Цитата
Гость написал:
Получается если мне нужно из нескольких разделов, нужно будет указать массив разделов?

Нет, тогда придется дорабатывать компонент вывода раздела и фильтр. Что бы могли работать с выборкой разделов.

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

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

Базовая защита "Битрикс виртуальная машина" от DDoS атак. Просмотров: 5856 Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, ... Вывести информацию, только на первом уровне раздела каталога, в 1С-Би... Просмотров: 5561 Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента по... Адаптивное гамбургер меню для битрикс Просмотров: 15139 Заметка коротенькая, но решил оставить ее - так как самому часто нужно нечто подобное. В а... Получение доступа к железу устройства из Битрикс мобильное приложение Просмотров: 6297 Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функцион... Настройка выгрузки товаров в Яндекс Маркет с сайта Битрикс Просмотров: 37972 Настройка выгрузки в Яндекс маркет в формате yml, выполняется достаточно просто, кроме одн... Индивидуальные цены в 1С-Битрикс: в каталоге и при оформлении заказа Просмотров: 6055 В этой заметке постараюсь описать процесс реализации индивидуальных цен, для пользователей... Автоматически отгрузить заказ и сменить статус отгрузки, при выполнен... Просмотров: 950 Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузка... Cordova, ввод в input под диктовку. Голосовой поиск в мобильном прило... Просмотров: 1608 Итак, задачка: реализовать голосовой поиск в мобильном приложении на Cordova. По сути, нам... Создание мобильного приложения на cordova, для любого сайта. Просмотров: 15874 Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данно... Пункты меню из разделов инфоблока Битрикс Просмотров: 93234 В принципе это стандартная возможность системы управления битрикс, но почему-то часто спра... Вывести все товары, с постраничной навигацией, из всех разделов инфоб... Просмотров: 29884 По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е... Дополнительные параметры в меню Битрикс Просмотров: 20769 Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например о... Если папка то применяем...в Битрикс Просмотров: 30407 Бывает, стоит задача применить какой-либо стиль или вывести конкретный кусочек кода для ди... Отфильтровать новости в Битрикс за заданный период Просмотров: 16690 Иногда, нужно отфильтровать элементы (новости например) по дате в Битрикс, с помощью компо... Если предложение SKU в корзине, поменять кнопку добавления на "В корз... Просмотров: 3881 Данная заметка является дополнением к ранее опубликованной: Есл... Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под ... Просмотров: 12750 В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное ра... Ленивая подгрузка картинок в компоненте, на vue js Битрикс Просмотров: 10348 Если на одну страницу сайта выводится большое количество картинок, которые могут долго под... XML в формате Commerce ML-2, города России и Мира, для выгрузки в инф... Просмотров: 6961 Подвернулась задачка, создать инфоблок для Битрикс, в котором будут просто города России и... Увидеть файл заказов который передаст Битрикс в 1С Просмотров: 24492 Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей,... Умный фильтр только на последнем уровне разделов каталога. Просмотров: 11682 Если в разработаываемом магазине или в принципе в каталоге на Битрикс, вы выводите умный ф...