Достаточно частая задачка для каталога или интернет-магазина: вывести список производителей с подробными описаниями, а так же в подробном описании производителя или бренда вывести все товары, у которых заполнено свойство "Производитель." Расскажу как это сделать
Вывести производителей на сайте с отбором его товаров из каталога
|
Михаил Базаров: 23.01.2017 11:00:00
Вывести производителей на сайте с отбором его товаров из каталога
Достаточно частая задачка для каталога или интернет-магазина: вывести список производителей с подробными описаниями, а так же в подробном описании производителя или бренда вывести все товары, у которых заполнено свойство "Производитель." Расскажу как это сделать |
|
Павел: 26.01.2017 12:00:00
Здравствуйте!
Я вывел на сайте список производителей с помощью компонента новостей (bitrix:news), сделал чтобы при переходе по производителю передавался параметр (ID) и когда пользователь переходит на страницу с списком товаров, отображались товары только этого производителя. На ней использовал компонент новость детально (bitrix:news.detail) для отображения картинки, названия и описания производителя, а также компонент элементы раздела (bitrix:catalog.section) для вывода товара. Все работает отлично, но нужно еще кое-что, и я пока не представляю как это сделать... ВОПРОС: Подскажите пожалуйста, как после описания категории вывести список разделов первого уровня к которым относится товар этого производителя, и еще чтобы при переходе открывалась категория с отсортированным товаром по этому производителю (может как-то передать в фильтр параметр производителя, при переходе). |
|
Павел: 26.01.2017 09:00:00
Вопрос решен! Напишу как я это сделал, может кому пригодится. А также возможно кто-то укажет на ошибки или предложит более простой/лучший способ.
Все что описывал выше так и оставил, для вывода списка категорий использовал компонент структура разделов (catalog.section.list), он конечно не смог мне помочь вытянуть только те разделы в которых есть товар конкретного производителя но я смог вывести только первый уровень разделов. А при формировании ссылки, я просто передал параметр фильтра и все заработало.
- создал копию шаблона вывода разделов ( всеравно нужно было подогнать дизайн - и потом где выводится ссылка сделал так
|
|
Антон. К: 11.08.2017 11:00:00
Михаил, доброго времени суток.
Пробую вывести как написано, но возникла проблема, в отфильтрованном товаре ссылка на детальный просмотр товара формируется не правильно должно быть /catalog/fot-men/3213, а формирует /catalog//3213. Но стоит разместить компонент catalog.section отдельно от компонента новости все работает как надо. Подскажи пожалуйста в чем может быть проблема? |
|
Михаил Базаров: 12.08.2017 01:00:00
|
|
Антон. К: 12.08.2017 08:00:00
Михаил Базаров, Спасибо, оказалось что 1С выгружено не правильно из-за чего не правильно строились адреса у некоторых товаров.
|
|
Mechka: 22.12.2017 02:00:00
Доброго времени суток.
Михаил, подскажите пожалуйста, как быть если в свойствах товара бренды указаны не строкой, а справочником? Не получается правильно написать запрос. $GLOBALS['arrBrandName'] = array("PROPERTY_ИД_VALUE"=>$brandName); - это для строкового параметра, а как сделать для справочника? У меня соответственно выводятся все товары. Заранее благодарен. |
|
Михаил Базаров: 22.12.2017 06:00:00
|
|
Viktor26rus: 20.01.2018 06:00:00
Приветствую!
Михаил, спасибо за интересное видео, но есть следующая задача надеюсь сможешь помочь) Необходимо вывести страницу брендов, чтобы отображались не только элементы каталога, но и список всех доступных разделов в которых есть отсортированные элементы. ЧПУ необходимо настроить для разделов brands/section1/, brands/section2/ и тд. Для элементов ЧПУ catalog/section/element/ Есть решение, какие компоненты использовать? и структуру ЧПУ? Заранее спасибо! |
|
Михаил Базаров: 20.01.2018 10:00:00
То есть, бренды должны стать разделами каталога- это самое идеальное, меньше манипуляций делать дальше. |
|
MARK LIVE: 25.01.2018 10:00:00
|
|
Сергей Жуланов: 07.03.2018 12:00:00
А можно ли так сделать если из 1С приходит на сайт свойство Производитель с кодом CML2_MANUFACTURER только с типом Список?
|
|
Михаил Базаров: 07.03.2018 03:00:00
|
|
Antik: 06.05.2018 05:00:00
Михаил Базаров, Здравствуйте, а возможно ли скрывать производителя с общего списка, если к примеру в данный момент товаров нет, или они неактивны?
|
|
Михаил Базаров: 06.05.2018 09:00:00
|
|
Михаил Базаров: 27.06.2018 12:00:00
$GLOBALS['arrBrandName'] = array("PROPERTY_133_VALUE"=>"БРЕНД"); |
|
Андрей Фокин: 27.06.2018 02:00:00
Заработало по
$GLOBALS['arrBrandName'] = array("PROPERTY_255_VALUE"=>"ТДСК" |
|
Андрей Фокин: 27.06.2018 02:00:00
Как его собаку заставить работать по
$GLOBALS['arrBrandName'] = array("PROPERTY_133_VALUE"=>$brandName); Достал уже)))) |
|
Андрей Фокин: 27.06.2018 03:00:00
Михаил, простите, все работает! Плохо быть ЧАЙНИКОМ)))
|
|
Александр Сигида: 16.01.2019 09:00:00
Спасибо за проделанную работу и за то что делитель знаниями.
Как сделать так чтобы в списке брендов не выводились те у которых нет товаров, можно ли это автоматизировать? |
|
Александр Сигида: 17.01.2019 09:00:00
Разобрался сам, может кому будет полезно:
в VALUE_XML_ID - я храню символьный код бренда (бренды выводятся с ЧПУ адресами) проверяем задан ли производитель, затем проверяем есть у данного производителя страница с его товарами или нет, далее выводим ссылку или название бренда |
|
Микки Маус: 08.07.2019 07:00:00
Огромное спасибо за полезную информацию!
Не получается фильтровать, если у элемента в названии присутствуют двойные кавычки ". Может кому пригодится мой рабочий вариант.
|
|
Александр: 26.03.2020 12:00:00
Добрый день. Михаил а как данном случае добавить вывод всех разделов для бренда? У меня задача: Бренд - Разделы бренда - Товары и, желательно, все на одной странице. При этом нужно выводить сначала разделы, а потом подразделы не уходя из карточки бренда. При этом товар должен отбираться согласно разделу. Пытался сделать по вашей схеме, но catalog.section.list в упор не видит фильтра. Пытался сделать через привязку к разделам, но ни как. Вывожу бренды через каталог, а в catalog.element добавляю ваш код. Элементы отлично отбираются, а вот с разделами беда. Выводятся все сразу.
|
|
Михаил Базаров: 26.03.2020 01:00:00
По вопросу: Если правильно понял, нужно отбирать в сatalog.section.list разделы (с его подразделами), названия которых совпадают с названием бренда (хранится в $brandsName)? Быстрый (но не очень оптимизированный, в плане скорости) вариант: В шаблоне сatalog.section.list проверять первый уровень раздела на совпадение названия:
Идеальный вариант, доработать компонент сatalog.section.list сделав, по сути, тоже самое но выкинув не нужные запросы из компонента, что бы работал быстро и через настройки компонента. |
|
Александр: 26.03.2020 03:00:00
Нужно отбирать в сatalog.section.list разделы (с его подразделами) которые относятся к данному бренду, а потом передавать этот раздел в catalog.section чтоб фильтровал по бренду и разделу товары |
|
Александр: 31.03.2020 11:00:00
Подсмотрел как решается моя проблема в шаблонах альфы. Выводится компонент новостей, а в него засовывают catalog. Возможно за место новостей тоже используют catalog.Получается хорошее решение для страницы брендов. Выводится сразу описание бренда, разделы и товары бренда. И, самое главное, можно задать мету для страниц каталога типа Все товары Васи - Одежда от Васи - Носки от Васи. Но вот загвоздка - ни как не пойму как catalog заставить фильтровать по бренду. Компонент catalog вставляю в component_epilog. Михаил может сможете помочь?
|
|
zhuravleviktor: 12.10.2020 10:00:00
Александр, такая же беда с брендами на решении от альфы. Не могу настроить фильтр по свойству, чтобы выводились и разделы и товары в которых есть товары с этими брендами. Вы нашли какое-то решение?
|
|
Михаил Базаров: 14.10.2020 01:00:00
|
|
Serge S: 09.12.2020 05:00:00
Подскажите пожалуйста, а как настроить умный фильтр на странице производителя? У меня перед выводом товаров производителя стоит умный фильтр, но в свойствах отображаются все бренды, хотя они на этой странице не нужны. Плюс попадают свойства с пустыми значениями. Как-то можно настроить умный фильтр, чтобы в зависимости от производителя пропадали пустые свойства из умного фильтра?
Так фильтруется каталог по бренду:
|
|
Михаил Базаров: 10.12.2020 04:00:00
Нужно в умный фильтр сразу передать производителя. То есть, что-бы текущий производитель был выбран, в нем, сразу- при загрузке страницы.
Можно получить ID значения свойства с производителем и js-ом кликнуть по нужному чекбоксу или выпадающему списку. |
|
Serge S: 10.12.2020 07:00:00
Он уже передан в умном фильтре. В catalog.filter и smart.filter записано "FILTER_NAME" => "arrFilterBrand". Фильтр работает с товарами производителя. Внутри фильтра остаются пустые свойства. Например, есть в каталоге 100 товаров, 50 товаров синих, 50 товаров зеленых. Перехожу на страницу конкретного производителя, в нем остается 50 синих товаров, но в умном фильтре можно выбрать синие и зеленые. Я хочу чтобы не было свойства "зеленые". Фильтр показывает все возможные свойства, какие есть.
|
|
s.rudko@100systems.com Rudko: 15.04.2021 11:00:00
А реально ли сделать чтобы на странице с брэндами отображался товар (Где свойство фильтруется с типом строка или список), и на детальной странице карточки товара отобразить брэнд из другого инфоблока (Где свойство всегда с типом привязки к элементам инфоблока) и чтобы это все с 1С взаимодействовало автоматически?
Старый способ вроде более подходит внешне, но насколько я понимаю, он не выгружается из 1С. Может я ошибаюсь, не подскажите, как решить данную задачу? |
|
Михаил Базаров: 15.04.2021 10:00:00
У вас есть инфоблок с каталогом, в котором есть свойство "Бренд", в нем указан производитель (не суть важно, строкой или прявязкой). Есть инфоблок с брендами, где бренды это элементы и их названия один в один как в элементах каталога. Что бы на странице бренда вывести все товары, в которых указан этот бренд использовали фильтр
Теперь надо, в элементе каталога сделать ссылку на бренд- что бы выводился в нем не зависимо от 1С В карточке, в нужном месте
В итоге перелинковали бренды и карточки каталога между собой. Не зависимо от 1С. Главное, что бы название бренда было написано один в один и в элементе каталога (в свойстве) и в названии бренда в инфоблоке с брендами. |
|
s.rudko@100systems.com Rudko: 16.04.2021 03:00:00
Я нашел место откуда выводится БРЭНД на детальную страницу товара. Вставил туда код, но он не сработал(
Я хотел задать вопрос, может я не верно понимаю. Я пытаюсь подтянуть прилинкованый БРЭНД по названию из другого инфоблока где БРЭНД - это элемент.
Вопрос: а где указывается инфоблок где БРЭНД - это элемент, чтобы код понимал откуда ему взять элемент БРЭНДА? |
|
Михаил Базаров: 16.04.2021 03:00:00
|
|
Гость: 11.07.2022 02:00:00
Доброго времени суток, фильтрует если прописать бренд в ручную, в чем может быть проблема?
$GLOBALS['arrBrandName'] = array("PROPERTY_133_VALUE"=>"Бренд" ; |
|
Михаил Базаров: 11.07.2022 11:00:00
Скорее всего, в названии бренда. Проверка идет по строгому совпадению названия. |
|
Гость: 02.08.2022 11:00:00
Михаил скажи вот мой вызов товаров бренда как описано в уроке и чуть выше я вызвал умный фильтр. Все отображается хорошо, но фильтр по какой то причине просто не хочет фильтровать. В чем может быть причина?
|
|
Михаил Базаров: 02.08.2022 10:00:00
В фильтре не указан раздел, из которого он должен брать параметры.
Нужно корректно указать SECTION_ID или SECTION_CODE распечатай массив из catalog.section что бы узнать точно. |
|
Руслан: 11.08.2023 01:00:00
Напрямую $arResult[] нельзя передать в component_epilog.php, нужно пробрасывать их из кэшируемой области (в result_modifier.php) так:
|
|
Михаил Базаров: 11.08.2023 01:00:00
Можно, просто не все.
Как минимум ['NAME'] и ['ID'] там уже есть. А вот если чего-то не хватает (например свойств) но очень надо - да, можно использовать:
|
|
Руслан: 27.09.2023 03:00:00
Есть минус, пагинация сломается, работать не будет, как мне кажется. По крайней мере, я не смог починить.
|
|
Гость: 02.12.2023 09:00:00
Здравствуйте, все делал как вы, добавил catalog.section и что он по итогу выводит:
ни изображений, ни цен, ни возможность добавить в корзину и указать количество |
|
Михаил Базаров: 03.12.2023 09:00:00
Это у вас не правильно настроенный или недоверстанный шаблон списка разделов. Выведете его без фильтрации, полностью настройте а потом уже можно добавить фильтры
|
|
Гость: 03.12.2023 12:00:00
В этом и проблема, я делал пока без фильтрации, полный вывод товаров, копировал этот же шаблон в другие места, не относящиеся к новостям- все показывает корректно. Новейший битрикс, php 8.2, параметр со старой совместимостью включен
|
Блог-note Заметки по 1С-Битрикс
-
Произвольные ссылки в элементе из свойства инфоблока
Задача: предоставить контент-менеджерам возможность добавлять произвольные ссылки внутри карточки товара. Управление ссылками осуществляется через сво...
-
Рассылка новинок каталога в автоматическом режиме
Что бы реализовать рассылку новинок каталога на email-ы пользователей, можно воспользоваться событием OnBeforeIBlockElementAdd и модулем subscribe
-
Композитный сайт на 1С-Битрикс
Для новых клиентов: Все новые проекты будут включать в себя применение технологии "Композитный сайт" - данная услуга уже включена в стоимость разработ...
-
Подключение SSL на Битрикс виртуальная машина
С первого января 2017 года, наличие безопасного соединения HTTPS становится практически обязательным. Ваши сайты будут занижаться в результатах поиско...
-
Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства элемента
Задача: Каталог наполняется из 1С, но 1С не передает коэффициент единицы измерения (особенность конкретной 1С, но вообще она умеет). Вместо эт...
-
Автоматически отгрузить и оплатить заказ, при смене статуса на "Выполнен".
Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузками и обменивается только статусами: "Принят", &quo...