По умолчанию карточка товара в 1С-Битрикс показывает описание самого товара, а торговые предложения (SKU) остаются «немыми» — у них есть цена, остаток и картинка, но текст не выводится. Чтобы описание менялось при переключении цвета, размера или комплектации, нужно связать три вещи: свойство на инфоблоке SKU, обмен данными и шаблон детальной страницы. Разберём, как это устроено и что настроить.
Зачем описание отдельно для SKU
Модель «товар + торговые предложения» в 1С-Битрикс делит данные на два инфоблока: карточка (родитель) хранит общее описание, а каждое торговое предложение (offer) — свою цену, остаток, артикул и картинки. Проблема в том, что у разных вариантов один и тот же текст описания, хотя по факту они отличаются.
Отдельное описание для SKU нужно, когда варианты — это не просто «цвет/размер», а фактически разные подтовары:
- комплектации техники (базовая, расширенная, PRO) с разным набором функций;
- вкусы или составы (для косметики, БАДов, продуктов);
- фасовки и объёмы, где меняются условия применения;
- модификации с разными характеристиками, которые важно проговорить текстом, а не только свойством.
Когда покупатель переключает вариант в карточке, вместе с ценой и фото должен обновляться и текст. Это и есть «показ описаний для торговых предложений».
Свойство описания на инфоблоке SKU
У инфоблока торговых предложений есть системное поле DETAIL_TEXT (Детальное описание) и PREVIEW_TEXT (Анонс) — те же, что и у обычных элементов. Но полагаться только на них неудобно: обмен с 1С их часто перезаписывает, а в интерфейсе редактирования SKU эти поля не всегда на виду. Поэтому на практике заводят отдельное свойство инфоблока.
Идём в Контент → Инфоблоки → Каталоги → [ваш каталог] → Торговые предложения → Свойства и добавляем свойство, например с кодом OFFER_DESCRIPTION. Для форматированного текста выбирайте тип «HTML/текст» — он даёт визуальный редактор и хранит разметку.
| Что вывести | Где хранить |
|---|---|
| Короткая приписка к варианту | Строковое свойство или PREVIEW_TEXT |
| Полноценный абзац с версткой | Свойство типа «HTML/текст» (OFFER_DESCRIPTION) |
| Технические отличия | Отдельные свойства + таблица характеристик |
Правка шаблона детальной страницы
Само по себе заполненное свойство не появится на витрине — его должен вывести шаблон. За карточку товара отвечает комплексный компонент bitrix:catalog, а внутри — bitrix:catalog.element. Текст SKU выводит именно шаблон этого компонента.
Скопируйте системный шаблон в свою тему: /bitrix/templates/[шаблон]/components/bitrix/catalog.element/.default/. В файле template.php и связанном JS формируется массив arResult['JS_OFFERS'] — это данные всех торговых предложений, которые уходят в скрипт переключения вариантов.
- Убедитесь, что ваше свойство попадает в выборку — оно должно быть перечислено в параметре
PROPERTY_CODEкомпонента (илиOFFER_TREE_PROPS/OFFER_ADD_PICT_PROPдля картинок). - В JS-шаблоне (
script.js/template.js) найдите обработчик выбора оффера и добавьте подстановку описания в нужный DOM-контейнер. - Заведите на странице контейнер
<div id="offer-description">, куда скрипт будет писать текст текущего варианта.
/bitrix/components/ напрямую. Все изменения — только в скопированном шаблоне внутри /bitrix/templates/, иначе обновление платформы затрёт вашу доработку.Настройки компонента каталога
Многое решается без программирования — в параметрах комплексного компонента bitrix:catalog (или его шаблонного вызова). Откройте настройки компонента на детальной странице и проверьте блок, отвечающий за торговые предложения.
- Показывать торговые предложения — базовый флаг, без него SKU-блока не будет вовсе.
- Свойства товаров (
PROPERTY_CODE) — добавьте сюдаOFFER_DESCRIPTION, чтобы оно передавалось в шаблон. - Свойства, участвующие в выборе (
OFFER_TREE_PROPS) — цвет, размер и другие «оси» выбора; описание сюда не добавляют. - Кол-во выводимых предложений — если офферов много, следите, чтобы не обрезалась выборка.
После добавления свойства в PROPERTY_CODE сбросьте кэш компонента (или очистите кэш каталога в Настройки → Настройки продукта → Автокэширование), иначе на витрине останутся старые данные без нового поля.
Описания из 1С и обмен
Если каталог наполняется из «1С:Управление торговлей» через штатный обмен (CommerceML), описание вариантов должно приезжать вместе с номенклатурой. На стороне 1С за это отвечает поле или дополнительный реквизит характеристики/номенклатуры.
Ключевой момент — сопоставление. При первом импорте Битрикс создаёт свойства инфоблока SKU автоматически по данным из import.xml и offers.xml. Проверьте, что ваш реквизит в 1С выгружается и что в Битриксе он привязался к нужному свойству, а не создал дубль.
DETAIL_TEXT у офферов могут перезаписываться значениями из 1С. Если часть описаний вы ведёте вручную на сайте, храните их в отдельном свойстве, которое обмен не трогает, — так контент не потеряется при следующей синхронизации.Тонкую настройку выгрузки реквизитов и защиту ручного контента от перезаписи мы обычно закладываем на этапе интеграции — это надёжнее, чем чинить каждый раз после обмена.
Проверка и типичные ошибки
После настройки прогоните карточку по чек-листу. Большинство проблем сводится к трём причинам: свойство не выбрано в компоненте, шаблон не выводит контейнер, либо всё закэшировано.
| Симптом | Вероятная причина |
|---|---|
| Описание пустое у всех вариантов | Свойство не в PROPERTY_CODE или не заполнено |
| Текст не меняется при переключении | JS-обработчик не обновляет контейнер |
| Показывается старое значение | Не сброшен кэш компонента |
| Ломается вёрстка описания | Тип свойства «Строка» вместо «HTML/текст» |
Отдельно проверьте мобильную версию и режим композитного кэша (composite): динамическая подстановка описания должна работать на клиенте, а не «замораживаться» вместе со статикой страницы.
Итог
Показ описаний для торговых предложений — это связка из трёх звеньев: отдельное свойство на инфоблоке SKU (лучше типа «HTML/текст»), его вывод в шаблоне catalog.element с подстановкой через JS при переключении варианта, и корректный обмен с 1С, который не затирает ручной контент. Добавьте свойство в PROPERTY_CODE компонента, заведите контейнер под текст, сбросьте кэш — и карточка начнёт «говорить» за каждый вариант.
Если каталог большой, а описания приходят из 1С и частично ведутся вручную, настройку удобнее доверить команде, которая одновременно держит и шаблоны, и обмен. Мы в B2Bsite настраиваем вывод SKU, дорабатываем шаблоны каталога и выстраиваем интеграцию с 1С так, чтобы контент не терялся при синхронизации.
Частые вопросы
Можно ли вывести описание SKU без правки шаблона?
Частично да: добавить свойство в параметр PROPERTY_CODE компонента можно из админки. Но динамическая смена текста при переключении варианта требует правки JS-шаблона catalog.element.
Чем описание SKU отличается от описания товара?
Описание товара хранится на родительском инфоблоке и одно на все варианты. Описание SKU задаётся на инфоблоке торговых предложений и своё у каждого варианта.
Какой тип свойства выбрать для описания варианта?
Для форматированного текста с абзацами и списками используйте тип «HTML/текст» — он даёт визуальный редактор. Для короткой строки достаточно типа «Строка».
Почему описание не меняется при выборе цвета или размера?
Скорее всего, JS-обработчик выбора оффера не обновляет контейнер с текстом, либо свойство не попало в массив JS_OFFERS. Проверьте PROPERTY_CODE и шаблон.
Обмен с 1С перезапишет описание, введённое вручную?
Системные поля DETAIL_TEXT и PREVIEW_TEXT обмен может перезаписывать. Ручной контент безопаснее хранить в отдельном свойстве, которое выгрузка из 1С не затрагивает.
Почему на витрине показывается старое описание?
Обычно виноват кэш компонента каталога. Сбросьте автокэширование в настройках продукта или очистите кэш конкретного компонента после изменения свойств.
Работает ли смена описания при включённом композите?
Да, если подстановка идёт на клиенте через JavaScript. Композит замораживает статическую часть, а динамика вариантов отрабатывает уже в браузере.
Нужно ли выводить описание, если у товара один вариант?
Как правило нет — при единственном SKU достаточно описания товара. Отдельные тексты вариантов нужны, когда предложения реально различаются по составу или комплектации.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.