Как настроить карточку товара на 1С-Битрикс и вывести свойства на витрине?

Как настроить карточку товара на 1С-Битрикс и вывести свойства на витрине?

Товар в админке заполнен, а на сайте одна миниатюра, пустой блок "Характеристики" и цена не отображается? Чаще всего виновата не карточка в 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, шаблон и данные каталога

Схема трёх слоёв карточки товара: инфоблок, catalog.element и шаблон в /local/

Детальная страница - компонент bitrix:catalog.element на element.php или в detail.php комплексного catalog. Он подтягивает цены, свойства, картинки и SKU из торгового каталога.

Делайте: в режиме правки запишите IBLOCK_ID, имя шаблона и путь к /local/templates/<шаблон>/components/bitrix/catalog.element/ - там правят внешний вид, не в ядре.

Не делайте: не правьте шаблон прямо в /bitrix/components/bitrix/catalog.element/templates/ - после обновления Битрикс правки пропадут. Скопируйте папку шаблона в /local/ и работайте с копией.

  1. Найдите на диске /bitrix/components/bitrix/catalog.element/templates/.default/.
  2. Скопируйте папку в /local/templates/<ваш_шаблон>/components/bitrix/catalog.element/.default/.
  3. В параметрах компонента выберите этот шаблон и сохраните.
  4. Откройте template.php в /local/ - здесь выводятся галерея, свойства и блок покупки.
  5. После правок сбросьте кеш компонента и проверьте карточку в режиме инкогнито.

Общий план запуска магазина - каталог, цены, разделы - в гайде по интернет-магазину на Битрикс. Здесь фокус только на детальной странице одного товара.

Критерий Карточка на витрине CMS Облачный CRM (не CMS)
Где открывается element.php на вашем сайте CRM, сделки, склад облака
Компонент bitrix:catalog.element Нет catalog.element на витрине
Задача Галерея, характеристики, "Купить" Учет в CRM, не публичная витрина
Кто видит Покупатель в браузере Менеджер в личном кабинете

2. Настройте свойства на витрине: вкладки и DETAIL_PAGE_SHOW

Таблица CMS-витрина vs CRM и настройка DETAIL_PAGE_SHOW для свойств товара

Свойства в админке и свойства на витрине - разные вещи. Инфоблок хранит "Материал", "Размерная сетка", "Страна" - но компонент выведет только то, что вы явно разрешили.

Делайте: для каждого свойства, которое должно быть в блоке "Характеристики", включите фичу "Показывать на детальной странице" (DETAIL_PAGE_SHOW). В настройках комплексного catalog заполните DETAIL_PROPERTY_CODE - список символьных кодов. Эти коды пробросятся в дочерний catalog.element через PROPERTY_CODE.

Не делайте: не ждите, что все поля из карточки товара в админке сами появятся на сайте. Без кодов в параметрах и без DETAIL_PAGE_SHOW блок останется пустым, хотя в админке все заполнено.

  1. Откройте настройки свойства инфоблока каталога.
  2. Включите "Показывать на детальной странице" (или массово через API PropertyCatalogFeature).
  3. В catalog/index.php добавьте код свойства в DETAIL_PROPERTY_CODE.
  4. В template.php выведите $arResult['DISPLAY_PROPERTIES'] - готовый массив для таблицы характеристик.
  5. Для HTML-описания используйте $arResult['PROPERTIES']['код']['~VALUE']['TEXT'], не сырой VALUE.

DETAIL_TEXT - вкладка "Описание", DISPLAY_PROPERTIES - "Характеристики". Пустые строки скрывайте в шаблоне. Заголовки и мета сайта - в гайде по SEO на Битрикс.

3. Подключите галерею MORE_PHOTO и alt для поиска

Чеклист подключения галереи 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.

Не делайте: не лейте рекламу, пока слайдер на мобильном не работает и цена не меняется при выборе размера.

  1. Страница открывается без 404, ЧПУ вида /razdel/tovar/ работает.
  2. Галерея: главное фото + миниатюры MORE_PHOTO, alt заполнен.
  3. Вкладка "Характеристики" показывает DISPLAY_PROPERTIES, пустые скрыты.
  4. Цена отображается, тип цены виден гостю.
  5. Текст наличия соответствует складу выбранного SKU.
  6. Кнопка "Купить" добавляет выбранное предложение, не пустой родитель.
  7. После обновления ядра цена и кнопка на месте (или 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.

Читайте также

Интеграции с 1С и API
949 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
679 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

Эта статья — ваш проводник в мир компонентов «1С-Битрикс». Мы не будем сыпать сухими терминами из документации. Вместо этого мы совершим путешествие: от философии, заложенной в эту архитектуру, до мельчайших деталей её работы. Мы разберем компонент на атомы — его файлы, логику, шаблон, параметры — и соберем обратно, чтобы вы не просто знали, что это, но и глубоко понимали, почему это работает именно так. Это знание — ключ к эффективной и профессиональной разработке на Битрикс.

Интеграции с 1С и API
605 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.