Инфоблок, переведённый в режим торгового каталога, — это ещё не витрина. Чтобы товары появились на сайте, нужно подключить комплексный компонент каталога на публичной странице и связать его с инфоблоком, ЧПУ и шаблоном компонента.
Что такое компонент каталога и зачем он нужен
В 1С-Битрикс данные (товары в инфоблоке) и их отображение на сайте разделены. Заполненный каталог живёт в административной части, а на витрину его выводит компонент — готовый программный блок, который берёт данные из инфоблока и рендерит их по шаблону. Без подключённого компонента страница раздела остаётся пустой, даже если в каталоге тысячи позиций.
Для магазина используют комплексный компонент bitrix:catalog. Он «комплексный» потому, что внутри объединяет несколько простых компонентов и сам управляет всеми страницами витрины:
- Список разделов (
catalog.section.list) — плитка категорий; - Список товаров раздела (
catalog.section) — карточки в категории с пагинацией; - Детальная карточка товара (
catalog.element) — страница отдельной позиции; - Умный фильтр и сортировка — если включены соответствующие настройки.
Одна страница с одним компонентом обслуживает весь каталог: и корневой список, и любую вложенность разделов, и карточки. Маршрутизацию между режимами компонент выполняет сам на основе ЧПУ.
Что подготовить до подключения
Компонент не заработает «в вакууме» — заранее должны быть готовы несколько вещей. Проверьте по списку:
- Установлены и активны модули
iblock(Информационные блоки) иcatalog(Торговый каталог); - Инфоблок переведён в режим торгового каталога, у него есть символьный код и заданы URL-шаблоны разделов и элементов на вкладке «Информационный блок → Поля»;
- У товаров заполнены свойства, которые вы планируете выводить (картинки, цены, характеристики);
- Определено место витрины — обычно это раздел
/catalog/в структуре сайта.
Создание страницы витрины
Витрина каталога — это одна физическая страница, чаще всего /catalog/index.php. Создать её можно двумя путями.
Через мастер сайта. В визуальном редакторе (режим «Разработчик» → «Компоненты» → «Каталог») перетащите комплексный компонент «Каталог» на страницу. Мастер спросит инфоблок, ЧПУ и предложит режим работы — это самый быстрый способ для типового решения.
Вручную в PHP. На странице вызывается один комплексный компонент. Упрощённо это выглядит так:
$APPLICATION->IncludeComponent("bitrix:catalog", "shop", array("IBLOCK_TYPE" => "catalog", "IBLOCK_ID" => "5", "SEF_MODE" => "Y", "SEF_FOLDER" => "/catalog/", ...));
Второй параметр — имя шаблона компонента (shop, .default или ваш кастомный). Именно шаблон отвечает за вёрстку карточек, поэтому в готовых решениях его почти всегда переопределяют.
Настройка ЧПУ (SEF-режим)
Ключевой параметр комплексного компонента — SEF-режим (человекопонятные URL). Когда SEF_MODE = Y, компонент сам разбирает адрес и решает, что показать: список, раздел или товар. Задаётся корневая папка витрины и шаблоны путей.
| Страница | Шаблон URL | Пример адреса |
|---|---|---|
| Список разделов | #SECTION_CODE_PATH#/ | /catalog/ |
| Раздел каталога | #SECTION_CODE_PATH#/ | /catalog/smartphones/ |
| Карточка товара | #SECTION_CODE_PATH#/#ELEMENT_CODE#/ | /catalog/smartphones/iphone-15/ |
Значение SEF_FOLDER должно указывать на реальную папку витрины (/catalog/), а в корне этой папки обычно лежит .htaccess с правилом RewriteRule, направляющим все вложенные адреса на index.php. Битрикс генерирует его автоматически при включении ЧПУ, но при ручной настройке правило нужно проверить.
CODE) не заданы у разделов и элементов — тогда в ЧПУ подставляется ID, а часть ссылок ломается. Настройте автогенерацию символьного кода в свойствах инфоблока до публикации.Основные параметры компонента
У комплексного компонента десятки настроек, но на старте важны несколько групп. Разберём практический минимум.
- Инфоблок: тип и ID каталога, из которого берутся товары;
- Поля и свойства: какие поля и свойства выводить в списке и в карточке — лишние отключайте, это снижает нагрузку на запросы;
- Цены и корзина: типы цен для показа, кнопки «Купить»/«В корзину», работа со складами и остатками (модуль
sale); - Постраничная навигация: число элементов на странице, ЧПУ-пагинация, вывод «Показать ещё»;
- Кэширование: тип кэша (
A— авто) и время жизни — обязательно для боевой витрины; - SEO: подстановка заголовков страниц и мета-тегов разделов, которые вы задали в свойствах инфоблока.
Не пытайтесь заполнить все параметры сразу. Соберите базовый вывод, убедитесь, что ЧПУ и карточки работают, а тонкую настройку фильтра, сравнения и SEO добавляйте итерациями.
Меню разделов, фильтр и сопутствующие компоненты
Одного bitrix:catalog достаточно для витрины, но полноценный магазин обычно дополняют отдельными компонентами вокруг него:
catalog.section.listилиmenu— левое меню категорий каталога;catalog.smart.filter— умный фильтр по свойствам; работает поверх того же инфоблока и требует включённого свойства «Показывать в умном фильтре»;breadcrumb— «хлебные крошки», которые компонент каталога умеет наполнять сам черезADD_SECTIONS_CHAIN;catalog.compare.listиsale.basket.basket.line— сравнение и мини-корзина в шапке.
Эти компоненты подключают в шаблоне сайта или на самой странице витрины. Важно, чтобы все они смотрели на один и тот же инфоблок и использовали согласованные ЧПУ — иначе фильтр и меню будут вести на другие адреса, чем основной компонент.
Проверка и типовые проблемы после публикации
После подключения пройдите по чек-листу — большинство проблем публикации сводится к нескольким причинам.
| Симптом | Вероятная причина |
|---|---|
| Страница пустая | Неверный IBLOCK_ID или у товаров нет активности/прав доступа |
| Товары есть, ссылки ведут на 404 | Расхождение URL-шаблонов инфоблока и ЧПУ компонента, нет .htaccess |
| Не открываются карточки | Не заданы символьные коды элементов |
| Не видно цен/кнопки «Купить» | Не выбран тип цены или не подключён модуль sale |
| Изменения не появляются | Включён кэш компонента — сбросьте кэш каталога |
Для отладки временно поставьте кэширование в положение «Не кэшировать», а после проверки верните автокэш. Права доступа к инфоблоку проверьте под той группой, от имени которой смотрит посетитель (обычно «Все пользователи, включая неавторизованных»).
Итог
Публикация каталога — это связка из четырёх элементов: инфоблок в режиме торгового каталога, комплексный компонент bitrix:catalog на странице витрины, согласованные ЧПУ и подходящий шаблон компонента. Когда все четыре согласованы, товары выводятся автоматически, а маршрутизацией между списком, разделами и карточками управляет сам компонент. Остаётся настроить параметры вывода, кэш и сопутствующие блоки — фильтр, меню, корзину.
Если нужно быстро собрать витрину «под ключ», перенести дизайн на компонент каталога или связать вывод с обменом 1С — мы в B2Bsite проектируем и запускаем магазины на 1С-Битрикс, включая кастомные шаблоны компонентов и производительность каталога под нагрузкой.
Частые вопросы
Какой компонент отвечает за вывод каталога на сайте?
Комплексный компонент bitrix:catalog. Он объединяет вывод разделов, списка товаров и детальной карточки и сам управляет маршрутизацией по ЧПУ.
Нужно ли создавать отдельные страницы для каждой категории и товара?
Нет. В SEF-режиме одна физическая страница обслуживает весь каталог: список, все разделы любой вложенности и карточки. Отдельные файлы не нужны.
Почему после подключения компонента страница пустая?
Чаще всего указан неверный IBLOCK_ID, товары неактивны или у группы посетителей нет прав доступа к инфоблоку. Проверьте эти три пункта в первую очередь.
Что такое SEF-режим и обязателен ли он?
SEF-режим включает человекопонятные URL вроде /catalog/smartphones/. Он не обязателен технически, но нужен для SEO и удобных ссылок, поэтому для магазина его включают всегда.
Почему ссылки на товары ведут на 404?
Обычно расходятся URL-шаблоны инфоблока и настройки ЧПУ компонента, либо отсутствует правило переадресации в .htaccess папки каталога. Приведите их в соответствие.
Можно ли подключить каталог без программирования?
Да, через визуальный редактор: перетащите компонент «Каталог» на страницу и заполните мастер настроек. Ручной вызов IncludeComponent нужен для тонкой кастомизации.
Как вывести умный фильтр рядом с каталогом?
Подключите компонент catalog.smart.filter поверх того же инфоблока и включите у нужных свойств опцию «Показывать в умном фильтре». ЧПУ фильтра должны совпадать с ЧПУ каталога.
Почему внесённые изменения не видны на витрине?
Скорее всего работает кэш компонента. Сбросьте кэш каталога или временно отключите кэширование компонента на время отладки, затем верните автокэш.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.