Товар в админке заполнен, а на сайте одна миниатюра, пустой блок "Характеристики" и цена не отображается? Чаще всего виновата не карточка в CRM, а связка данных каталога с компонентом catalog.element на витрине 1С-Битрикс: Управление сайтом. Ниже разберем шаблон в /local/, вывод свойств и галереи MORE_PHOTO, блок цены и кнопки "Купить". После гайда откроете element.php в инкогнито и пройдете чек-лист перед запуском рекламы.
Карточка на витрине - это три слоя: что заполнено в инфоблоке, что разрешено параметрами catalog.element и что реально выводит template.php в /local/. Без DETAIL_PAGE_SHOW и DETAIL_PROPERTY_CODE характеристики не появятся. Без ADD_PICT_PROP галерея останется одной картинкой. Цена и кнопка зависят от PRICE_CODE и выбранного SKU - создание торговых предложений разобрано в отдельном материале.
Речь только про интернет-магазин на CMS "1С-Битрикс: Управление сайтом" - сайт на вашем хостинге с компонентом catalog.element. Это не Bitrix24: там "карточка товара" в поиске часто ведет в CRM и уроки про админ-интерфейс коробки, а не про витрину element.php.
Типичная ошибка: свойства не в DETAIL_PROPERTY_CODE, нет DETAIL_PAGE_SHOW, MORE_PHOTO не проброшен через ADD_PICT_PROP. Ниже - как починить без правки ядра.
1. Разберите структуру карточки: catalog.element, шаблон и данные каталога
Детальная страница - компонент bitrix:catalog.element на element.php или в detail.php комплексного catalog. Он подтягивает цены, свойства, картинки и SKU из торгового каталога.
Делайте: в режиме правки запишите IBLOCK_ID, имя шаблона и путь к /local/templates/<шаблон>/components/bitrix/catalog.element/ - там правят внешний вид, не в ядре.
Не делайте: не правьте шаблон прямо в /bitrix/components/bitrix/catalog.element/templates/ - после обновления Битрикс правки пропадут. Скопируйте папку шаблона в /local/ и работайте с копией.
- Найдите на диске
/bitrix/components/bitrix/catalog.element/templates/.default/. - Скопируйте папку в
/local/templates/<ваш_шаблон>/components/bitrix/catalog.element/.default/. - В параметрах компонента выберите этот шаблон и сохраните.
- Откройте
template.phpв /local/ - здесь выводятся галерея, свойства и блок покупки. - После правок сбросьте кеш компонента и проверьте карточку в режиме инкогнито.
Общий план запуска магазина - каталог, цены, разделы - в гайде по интернет-магазину на Битрикс. Здесь фокус только на детальной странице одного товара.
| Критерий | Карточка на витрине CMS | Облачный CRM (не CMS) |
|---|---|---|
| Где открывается | element.php на вашем сайте | CRM, сделки, склад облака |
| Компонент | bitrix:catalog.element | Нет catalog.element на витрине |
| Задача | Галерея, характеристики, "Купить" | Учет в CRM, не публичная витрина |
| Кто видит | Покупатель в браузере | Менеджер в личном кабинете |
2. Настройте свойства на витрине: вкладки и DETAIL_PAGE_SHOW
Свойства в админке и свойства на витрине - разные вещи. Инфоблок хранит "Материал", "Размерная сетка", "Страна" - но компонент выведет только то, что вы явно разрешили.
Делайте: для каждого свойства, которое должно быть в блоке "Характеристики", включите фичу "Показывать на детальной странице" (DETAIL_PAGE_SHOW). В настройках комплексного catalog заполните DETAIL_PROPERTY_CODE - список символьных кодов. Эти коды пробросятся в дочерний catalog.element через PROPERTY_CODE.
Не делайте: не ждите, что все поля из карточки товара в админке сами появятся на сайте. Без кодов в параметрах и без DETAIL_PAGE_SHOW блок останется пустым, хотя в админке все заполнено.
- Откройте настройки свойства инфоблока каталога.
- Включите "Показывать на детальной странице" (или массово через API PropertyCatalogFeature).
- В catalog/index.php добавьте код свойства в DETAIL_PROPERTY_CODE.
- В template.php выведите
$arResult['DISPLAY_PROPERTIES']- готовый массив для таблицы характеристик. - Для HTML-описания используйте
$arResult['PROPERTIES']['код']['~VALUE']['TEXT'], не сырой VALUE.
DETAIL_TEXT - вкладка "Описание", DISPLAY_PROPERTIES - "Характеристики". Пустые строки скрывайте в шаблоне. Заголовки и мета сайта - в гайде по SEO на Битрикс.
3. Подключите галерею MORE_PHOTO и alt для поиска
Одна картинка вместо слайдера - самая частая жалоба после запуска рекламы. Детальное фото (DETAIL_PICTURE) - обложка, а дополнительные снимки хранят в множественном свойстве типа "Файл" с кодом MORE_PHOTO.
Делайте: создайте свойство MORE_PHOTO (тип "Файл", множественное). В параметрах комплексного catalog укажите "Дополнительные картинки" = MORE_PHOTO (ADD_PICT_PROP). Для SKU с отдельными фото задайте OFFER_ADD_PICT_PROP. В шаблоне используйте массив $arResult['MORE_PHOTO'] - он собирается компонентом, если параметр задан верно.
Не делайте: не ищите MORE_PHOTO только в $arResult['PROPERTIES'], если параметр ADD_PICT_PROP не задан - компонент не соберет галерею. И не путайте с catalog.section: там другой набор полей.
Схема вывода галереи: DETAIL_PICTURE (главное фото) → MORE_PHOTO (миниатюры в слайдере) → alt и title из NAME товара → при смене SKU script.js обновляет картинку оффера через changeInfo.
Alt пишите по смыслу: "Куртка Орион, вид сзади", не "IMG_4521".
4. Свяжите цену, наличие и кнопку "Купить" с SKU
Блок покупки - цена, текст "В наличии" / "Под заказ", кнопка "В корзину" - настраивается параметрами catalog.element. Без PRICE_CODE цена не появится даже при заполненном каталоге. Без SHOW_MAX_QUANTITY покупатель не увидит остаток.
Делайте: укажите тип цены в PRICE_CODE (например, BASE). Проверьте, что у гостя есть право видеть этот тип цены. Включите SHOW_MAX_QUANTITY (Y или M). Задайте ADD_TO_BASKET_ACTION. Если у товара есть варианты по цвету и размеру, пропишите OFFER_TREE_PROPS - те же свойства, что отмечены для отбора SKU.
Не делайте: не настраивайте торговые предложения с нуля в этой статье. SKU, генератор комбинаций и свойства отбора — в гайде по торговым предложениям на Битрикс. Здесь только связка уже готовых SKU с карточкой.
Остаток тянется со складов - см. гайд по складам. Корзина и заказ - в материале по оформлению. После обновления ядра без цены включите COMPATIBLE_MODE => Y; при смене SKU цена обновляется через changeInfo в script.js.
5. Пройдите чек-лист перед рекламой и типичные ошибки
Делайте: проверьте карточку в инкогнито, переключите SKU, добавьте в корзину. Сбрасывайте кеш после правок template.php.
Не делайте: не лейте рекламу, пока слайдер на мобильном не работает и цена не меняется при выборе размера.
- Страница открывается без 404, ЧПУ вида /razdel/tovar/ работает.
- Галерея: главное фото + миниатюры MORE_PHOTO, alt заполнен.
- Вкладка "Характеристики" показывает DISPLAY_PROPERTIES, пустые скрыты.
- Цена отображается, тип цены виден гостю.
- Текст наличия соответствует складу выбранного SKU.
- Кнопка "Купить" добавляет выбранное предложение, не пустой родитель.
- После обновления ядра цена и кнопка на месте (или COMPATIBLE_MODE включен).
Если характеристики пустые - цепочка DETAIL_PAGE_SHOW → DETAIL_PROPERTY_CODE → DISPLAY_PROPERTIES в template.php. Если одна картинка - ADD_PICT_PROP и MORE_PHOTO. Если нет цены - PRICE_CODE и права на тип цены.
Нужна помощь с кастомным шаблоном catalog.element под ваш ассортимент - напишите через форму на сайте, разберем карточку до запуска рекламы.
Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: официальная документация 1С-Битрикс (dev.1c-bitrix.ru) и практика внедрений на CMS.
Частые вопросы
Где настраивается шаблон карточки товара catalog.element?
Скопируйте шаблон из /bitrix/components/bitrix/catalog.element/templates/ в /local/templates/ваш_шаблон/components/bitrix/catalog.element/, выберите его в параметрах компонента на element.php и правьте template.php в /local/. Ядро не трогайте.
Почему свойства заполнены в админке, но не выводятся на витрине?
Проверьте три точки: фича DETAIL_PAGE_SHOW у свойства, код в DETAIL_PROPERTY_CODE родительского catalog и вывод DISPLAY_PROPERTIES в template.php. Без любого звена блок "Характеристики" останется пустым.
Чем карточка товара отличается от торгового предложения?
Карточка - родитель с описанием и галереей. SKU - вариант внутри: размер или цвет со своей ценой. Покупатель видит одну страницу и переключает кнопками.
Как добавить галерею из нескольких фото?
Создайте множественное свойство MORE_PHOTO типа "Файл", загрузите снимки в карточку товара, в параметрах catalog укажите ADD_PICT_PROP = MORE_PHOTO и выведите $arResult['MORE_PHOTO'] в шаблоне.
Почему на карточке нет цены и кнопки "Купить"?
Укажите PRICE_CODE с существующим типом цены, проверьте права гостя на этот тип, задайте SHOW_MAX_QUANTITY и ADD_TO_BASKET_ACTION. После обновления Битрикс в старом шаблоне включите COMPATIBLE_MODE => Y.
Это настройка CRM, а не витрины магазина?
Нет. Облачный CRM для менеджеров — другой продукт. Витрина CMS — catalog.element для покупателей на element.php.