По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары всех разделов инфоблока, с постраничной навигацией. Да, и еще навесить умный фильтр над этим делом. Все очень просто- рассказываю
Содержание
Catalog.section вместо catalog.top
Для начала, просто смотрим на шаблон комплексного компонента каталог, и понимаем, что все что нам нужно уже есть в section.php. Там выводится компонент catalog.section. и умный фильтр с ним работает. да и постраничная навигация там уже есть. Делать все тоже самое для catalog.top, который выводится в sections.php, трудоемко- придется кастомизировать компонент ТОП-а
Единственное чего не хватает в catalog.section это выводить товары "не зная раздела"- то есть он выводит товары (элементы точнее) только из заведомо известного раздела. или нет? )
Копируем catalog.section из section.php в sections.php, просто как есть. Catalog.top можете оставить, по желанию- выведете туда пару тройку товаров с иным оформлением (ТОП же).
У catalog.section находим строчку
И меняем N на Y. SHOW_ALL_WO_SECTION — это не документированный параметр, который отвечает за вывод элементов инфоблока без привязки к разделам, точнее: если раздел не известен- выводит все подряд
У самого же catalog.section уже есть и постраничная навигация, и над ним можно навесить умный фильтр
В следующей записке, расскажу как вывести Умный фильтр на главную, что бы он давал выбрать параметры товаров и отправлял в каталог, эта записка нам понадобится.
Все вопросы в комментарии
![]()
Здравствуйте, Михаил! Спасибо за статью. Как раз появилась задача вывести умный фильтр на странице производителя со списком товаров. Ранее выводился просто catalog.top.
Переделал на сatalog.section. Перед вызовом сatalog.section вставил bitrix:catalog.smart.filter, но умный фильтр не работает (выводятся только кнопки "Показать" и "Сбросить" ).
Не могли бы вы подсказать как заставить умный фильтр работать?
![]()
| Цитата |
|---|
| Владимир Мороз написал: Здравствуйте, Михаил! Спасибо за статью. Как раз появилась задача вывести умный фильтр на странице производителя со списком товаров. Ранее выводился просто catalog.top. Переделал на сatalog.section. Перед вызовом сatalog.section вставил bitrix:catalog.smart.filter, но умный фильтр не работает (выводятся только кнопки "Показать" и "Сбросить" ). Не могли бы вы подсказать как заставить умный фильтр работать? |
![]()
![]()
| Цитата |
|---|
| Копируем catalog.section из section.php в sections.php, просто как есть. |
| Цитата |
|---|
| "SHOW_ALL_WO_SECTION" => "N", |
![]()
| Цитата |
|---|
| Кирилл написал: Михаил, здравствуйте. Немного не понял |
Обрезано: вопрос в предыдущем посте
Я думаю, вот это вам прояснит ситуацию. Тут я вызываю умный фильтр, но перед этим делаю необходимые правки, как раз уместные для вашей ситуации
![]()
| Цитата |
|---|
| Михаил Базаров пишет: Я думаю, вот это вам прояснит ситуацию. Тут я вызываю умный фильтр, но перед этим делаю необходимые правки, как раз уместные для вашей ситуации |
Спасибо, понятный урок на видео. Вывел все товары в корне каталога. Сверху (в корне каталога) навесил вывод фильтра с условием
Однако при фильтрации данный фильтр показывает что выбрано 0 элементов, однако если нажать показать элементы подходящие по параметру, то показывает как и нужно. Это вообще правится или проще скрыть показ количества элементов при выбранных параметрах фильтра?

PS. есть еще второй вопрос немного не по теме. (Вы слету определили шаблон который я пытаюсь кастомизировать, поэтому попробую его вам задать)
Пытаюсь кастомизировать компонент catalog для этого я хочу перенести его в папку local для этого скопировал комплексный компонент catalog через режим правки, затем я скопировал через админку комплексный компонент catalog.section и добавил к дефолтному шаблону .default свой шаблон /local/templates/шаблон_сайта/components/bitrix/catalog.section/kirill-catalog-section/
После добавления шаблона под моим названием я вносил изменения в код вызова компонента (менял .default на свое название)
Однако в catalog.section после есть управляющая констукция switch() в которой в зависимости от условия case подключается компонент bitrix:catalog.item
Вот с ним у меня возникла проблема — пытался также скопировать папку компонента в /local/templates/шаблон_сайта/components/bitrix/catalog.item/templates/.default/card/
Однако этот шаблон не подтягивается — вместо него подтягивается шаблон из /bitrix/components/bitrix/catalog.item/templates/.default/card/
Также пытался создать свой шаблон /local/templates/шаблон_сайта/components/bitrix/catalog.item/templates/moi_shablon/card/ и прописать его вызов в catalog.section
Однако подтягивается все равно не из папки local .
Если не сложно и есть время подскажите в чем моя ошибка.
![]()
![]()
| Цитата |
|---|
| Кирилл написал: Сам решил вопрос. Я олень. выше я писал что подтягивал компоненты из папки /local/templates/шаблон_сайта/components/bitrix/catalog.item/ а нужно было /local/components/мое_пространство_имён/catalog.item/ Вот такой вот я олень — не внимательно разобрался с пространствами имен, но теперь все пучком. |
![]()
Вывел все товары на отдельной странице с помощью catalog.section ,
навесил фильтр чтоб показывались только товары со свойством — "спецпредложение".
Никак не получается вывести цену. В template.php цена выводится в этой строчке:
В битриксе только пытаюсь разобраться, куда смотреть?
![]()
| Цитата |
|---|
| Михаил Базаров пишет: |
| Цитата |
|---|
| Кирилл написал: Сам решил вопрос. Я олень. выше я писал что подтягивал компоненты из папки /local/templates/шаблон_сайта/components/bitrix/catalog.item/ а нужно было /local/components/мое_пространство_имён/catalog.item/ Вот такой вот я олень — не внимательно разобрался с пространствами имен, но теперь все пучком. |
А зачем вы скопировали компонент? Или кастомизировали его логику? Если просто шаблон дорабатывали- лучше всетаки, скопировать именно шаблон компонента в шаблон своего сайта
![]()
| Цитата |
|---|
| Алексей Коновалов пишет: |
| Цитата |
|---|
| Михаил Базаров пишет: |
| Цитата |
|---|
| Кирилл написал: Сам решил вопрос. Я олень. выше я писал что подтягивал компоненты из папки /local/templates/шаблон_сайта/components/bitrix/catalog.item/ а нужно было /local/components/мое_пространство_имён/catalog.item/ Вот такой вот я олень — не внимательно разобрался с пространствами имен, но теперь все пучком. |
А зачем вы скопировали компонент? Или кастомизировали его логику? Если просто шаблон дорабатывали- лучше всетаки, скопировать именно шаблон компонента в шаблон своего сайта
Михаил, добрый вечер!
Аналогичная проблема.. Просто копирование шаблона компонента catalog.item в папку шаблона в local результата не приносит. В Ваших уроках используется старый шаблон каталога. Там проблем с редактированием карточки товара в списке проблем нет. А вот с новым каталогам — проблемка.. Тянет почему-то упорно шаблон из папки битрикс.. Может сталкивались с таким недугом?
Заметки разработчика
Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно — это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс
Если нужно получить список городов из модуля "Местоположения" можно воспользоваться API Битрикс. Данные местоположения можно использовать в любом мест.
Иногда, на сайте, под управлением 1С-Битрикс, нужно вывести какое-то конкретное свойство отдельно ото всех, или вообще не отображать в списке всех сво.
Достаточно часто, при разработке сайтов на Битрикс, с интеграцией с 1С Управление Тороговлей, нужно запретить изменения полей при обмен. В частности, .
Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию в каталоге товаров работающего на Битрикс. Сделать это дос.
В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием. Требуется это довольно редко, однако изредка все же необход.
При создании достаточно сложных интернет-магазинов на Битрикс, иногда встает задача помимо обычной навигации каталогу создать дополнительную навигацию.
© 2011—2019 Разработка сайтов: ИП Базаров, ОГРНИП: 315784700173692.
Работает на 1С-Битрикс: Бизнес.
Сайт может содержать материалы 18+ Политика конфиденциальности
Информация на сайте, не является публичной офертой.
Копирование материалов сайта запрещено.
Дизайн, верстка и сборка сайта: Михаил Базаров
Приветствую! Продолжаем разрабатывать наш собственный интернет-магазин на Битрикс с нуля и изучать при этом Битрикс. В прошлом уроке мы познакомились с ключевой сущностью Битрикса Инфоблоками и импортировали каталог с учебными данными. Пришло время воспользоваться всем этим и вывести каталог на сайт. В этом уроке мы выведем каталог товаров на страницу /catalog/ и подробно познакомимся с работой компонентов Битрикс. В частности с комплексным компонентом bitrix:news.
Вот, что у нас должно будет получится в итоге.

Без меню разделов пока, его мы выведем чуть позже.
Вывод каталога товаров через компонент bitrix:news
В Уроке 4 — Вывод меню Битрикс мы уже познакомились с компонентами и я показал, как их выводить на страницу, копировать и изменять шаблон. Там все более подробно со скриншотами описано.
Начнем. Откроем сайт и перейдем в раздел Каталог, через главное меню, которое уже должно работать на вашем сайте. Убедимся, что мы находимся в разделе каталог — в адресной строке должен быть адрес заканчивающийся на /catalog/. Далее в панели администрирования нажимаем кнопку Изменить страницу и открываем страницу на изменение. В разделе компонентов Контент — Новости выбираем компонент Новости (комплексные компоненты выделены зеленым цветом).

Что такое простые и комплексные компоненты я покажу чуть позже не примере кода, сразу станет понятно отличия.
Сразу настроем параметры компонента. Нас будут интересовать сейчас только основные параметры. Здесь для всех компонентов, которые работают с инфоблоками основными параметрами является Тип инфоблока и сам Инфоблок их нужно выбрать.

И еще необходимо указать свойства, которые нужно выводить в карточках товара. Мы будем выводить пока только цену.

Так же цену нужно включить и на странице детального просмотра в параметрах компонента. Другие параметры нам не важны. А если вы будите выводить новости типовым компонентом, то нужно пройтись по всем параметрам и настроить все, что вам будет необходимо. Мы же выводим товары и полностью поменяем шаблон вывода. А сейчас если нажать сохранить будут выведены данные инфоблока изображения и названия. Далее начнем кастомизацию типового компонента.
Кастомизация компонента bitrix:news
Прежде всего нужно скопировать типовой шаблон компонента в наш шаблон сайта, чтобы можно было его изменять и не потерять изменения при очередном обновлении Битрикс. Включим режим редактирования и скопируем шаблон компонента.

Новый шаблон назовем catalog и скопируем в наш шаблон startshop.

Теперь нужно найти файлы нового шаблона. Перейдем по пути wwwlocal emplatesstartshopcomponentsitrix
ewscatalog и увидим файлы комплексного компонента.

Особенность комплексного компонента в том, что он в себе содержит простые компоненты. Это видно по тому, что внутри комплексного компонента содержится папка bitrix, в которой будут расположены шаблоны простых компонентов.

И вот именно простые компоненты уже выводят информацию на страницу. Из этого списка прежде всего нам будут интересовать папки (компоненты) news.list и news.detail для страницы списка и детальной страницы товара соответственно.
news.list
Начнем мы со списка новостей. За вывод новости отвечает файл wwwlocal emplatesstartshopcomponentsitrix
ewscatalogitrix
ews.list.default emplate.php . Все остальное давайте удалим, чтобы нам не мешались.

Обращу внимание на файл style.css . В нем можно располагать CSS стили верстки компонента. Особенность в том, что они подключаются только при вызове компонента. Т.е. это несколько сокращает объем погрузки стилей. Но мы им пользоваться не будем все наши стили лежат в template_styles.css . Вобщем без страха удаляем все лишнее и открываем в редакторе файл template.php . В котором сразу заменяем имеющийся код на следующий:
Код:
AddEditAction($item[‘ID’], $item[‘EDIT_LINK’], CIBlock::GetArrayByID($item["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($item[‘ID’], $item[‘DELETE_LINK’], CIBlock::GetArrayByID($item["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage(‘Подтверждаете удаление?’)));
?>
Для вывода всех товаров каталога из всех разделов на одной странице нужно разместить код вызова компонента bitrix:catalog.section в файле sections.php компонента bitrix:catalog, и указать параметр «Показывать все элементы, если не указан раздел»

При этом может возникнуть проблема отсутствия цен и кнопки купить

Нужно посмотреть настройки компонента, настройки цены могут быть пустые, и тогда в ручную в коде вызова компонента изменить
Второй момент, это при обычной схеме отображения товаров скрыта настройка свойств отбора торговых предложений:

Также нужно свойство предложений выбрать в вкладке «Внешний вид»

Дополнительно.
По многочисленным просьбам трудящихся добавил пример для скачивания
Короткая инструкция:
1. подрубаем в sections.php включаемый файл section_main.php, так как в чистом виде catalog.section не пашет нормально
2. в битриковский вызов кода bitrix:catalog.section добавляем «SHOW_ALL_WO_SECTION» => «Y»,
В примере уже добавлено
Ещё статьи:
18.11.2019 Подборка эффективных WooCommerce шаблонов для электронной коммерции
Для создания интернет- магазина можно использовать различные платформы. К примеру OpenCart или Magento — популярные системы управления содержимым с от. ID: 204
07.11.2019 Две ошибки молодого интернет-магазина
Из моих наблюдений расскажу об ошибках молодого интернет-магазина. ID: 202
26.10.2019 Штатная битрикс сортировка по цене
Временами полезно смотреть документацию. Недавно обнаружил, что появилась сортировка по SCALED_PRICE_[ID]
ID: 199
Новые статьи в блоге:
18.11.2019 404 ошибка для результатов фильтра
Интересная ошибка выявлена в работе smart.filter. Не работает фильтрация и кнопка купить если в адресе есть слова с спецсимволами. ID: 205
10.11.2019 Ресайз изображений в news.list
Часто вижу, что изображения анонса элемента уменьшают с помощью стилей, а фактический размер картинки остаётся большой. В итоге суммарная нагрузка на . ID: 203
01.11.2019 Вывести начальные значения цена от и до
В smart-filter битрикс вывести начальные значения цен ID: 201




