Торговые предложения созданы в админке, но на витрине их нет — знакомая ситуация. Чаще всего дело не в товарах, а в паре незакрытых настроек: инфоблок SKU не подключён, компонент не знает, какие свойства показывать, или для предложений не заданы цены. Разберём минимальный набор шагов, после которых выбор цвета и размера появится в карточке товара.
Что должно быть готово до настройки показа
Прежде чем настраивать вывод, убедитесь, что сама структура каталога с торговыми предложениями существует. В Магазин → Настройки → Настройки инфоблоков у вашего каталога товаров должен быть привязан инфоблок торговых предложений (SKU). Если его нет, товар физически не может иметь вариаций, и никакие настройки шаблона не помогут.
- Модуль «Торговый каталог» (
catalog) установлен и активен. - У инфоблока товаров включён тип каталога «Товары с торговыми предложениями», создан связанный инфоблок SKU.
- В инфоблоке SKU есть служебное свойство-привязка
CML2_LINKк родительскому товару — оно создаётся автоматически. - У предложений заданы свойства-вариации (например, «Цвет», «Размер») и хотя бы одна цена.
Активность, цена и остаток предложений
Самая частая причина «пропавших» SKU — предложение неактивно или у него нет цены. Компоненты витрины по умолчанию не выводят предложения, которые нельзя купить. Проверьте по каждому предложению три поля:
| Параметр | Где проверить | Что должно быть |
|---|---|---|
| Активность | Карточка предложения, флаг «Активность» | Включена, дата начала не в будущем |
| Цена | Вкладка «Торговый каталог» предложения | Задан хотя бы базовый тип цены |
| Наличие | Поле «Количество» / признак «Нет на складе» | Есть остаток или разрешена покупка при отсутствии |
Обратите внимание: если в настройках магазина включён учёт остатков и запрещена продажа при нуле, предложение с нулевым количеством будет скрыто из выбора, даже будучи активным. Это регулируется в Магазин → Настройки → Настройки модуля → вкладка «Товары».
Какие свойства участвуют в выборе SKU
Чтобы посетитель мог переключаться между вариациями, компонент должен знать, по каким свойствам различаются предложения. Это два разных набора настроек, и их часто путают.
- Свойства для выбора (offers). В параметрах компонента карточки товара есть блок «Свойства предложений» — там перечисляются коды свойств SKU, которые станут кнопками/списками выбора (
PROPERTY_CODEдля offers). - Свойства-«скины». Свойство типа «Справочник» с настроенным отображением (цветной квадрат, картинка) выводится визуально. За это отвечает пользовательская настройка свойства
UFу элемента highload-блока справочника.
Настройки компонента витрины
Вывод предложений включается в параметрах комплексного компонента bitrix:catalog (или отдельно в catalog.element и catalog.section). Минимально нужно проверить:
- «Использовать торговые предложения» — флаг должен быть включён, иначе компонент считает товар простым.
- «Свойства предложений» — выбраны свойства-вариации для отображения выбора.
- «Свойства предложений для показа» — какие характеристики выводить в описании выбранного SKU.
- «Тип цен» — указан тот тип, что задан у предложений (обычно «Базовая»).
Редактировать эти параметры удобнее из публичной части: наведите на компонент, откройте «Настроить компонент». Так вы правите именно тот экземпляр, что стоит на странице, а не абстрактный шаблон. После сохранения не забудьте сбросить кэш компонента.
Поддержка предложений в шаблоне
Даже при верных параметрах старый или кастомный шаблон компонента может не уметь рисовать выбор SKU. Штатные шаблоны семейства .default и решения «1С-Битрикс: Аспро», «Sotbit» это поддерживают из коробки. Если карточку верстали под проект, проверьте, что в template.php есть блок обработки arResult['OFFERS'] и вывод SKU_PROPS.
Признак того, что проблема именно в шаблоне: в отладке (?bitrix_show_mode=settings недоступно, но можно вывести print_r($arResult['OFFERS'])) предложения приходят в компонент, а на странице выбора нет. Тогда правится вёрстка, а не настройки каталога.
script.js и опирается на структуру JCatalogElement. Ломать её ручными правками разметки — быстрый способ получить «неработающие кнопки».Кэш и проверка результата
После любых изменений в свойствах, ценах или параметрах компонента данные могут не обновиться из-за кэширования. Битрикс кэширует и сами компоненты, и выборки каталога.
- Сбросьте кэш компонента:
Настройки → Настройки продукта → Автокэшированиеили кнопкой «Очистить кэш» в панели. - При обмене с 1С очистите кэш меню и разделов — новые предложения могли не попасть в закэшированный список.
- Проверьте карточку в режиме инкогнито, чтобы исключить композитный кэш страницы у конкретного пользователя.
Если после сброса кэша предложения появились — значит, настройки были верными, а мешало кэширование. Это нормальный финальный шаг, а не признак ошибки.
Типичные ошибки и как их распознать
Свести отладку к минимуму помогает знание частых причин. Сопоставьте симптом с настройкой:
| Симптом | Вероятная причина |
|---|---|
| Товар показан как простой, без выбора | Выключен флаг «Использовать торговые предложения» или инфоблок SKU не привязан |
| Кнопки выбора есть, но пустые | Свойство-вариация не заполнено у предложений |
| Часть комбинаций «недоступна» | У части SKU нет цены, они неактивны или нулевой остаток |
| Цена не меняется при выборе | В компоненте указан не тот тип цены или он не задан у предложений |
| Изменения не видны на сайте | Не сброшен кэш компонента / композита |
Такой чек-лист закрывает подавляющее большинство обращений «SKU не показываются» без правки кода.
Итог
Минимальный набор для показа торговых предложений сводится к пяти пунктам: привязанный инфоблок SKU, активные предложения с ценой и остатком, заполненные свойства-вариации, включённый флаг «Использовать торговые предложения» с выбранными свойствами в компоненте — и сброшенный кэш. Пройдя их по порядку, вы восстановите выбор цвета и размера в 9 случаях из 10 без вмешательства в код.
Если же каталог большой, идёт обмен с 1С или карточка сильно кастомизирована, отладка занимает время. Мы в B2Bsite настраиваем витрину, свойства и шаблоны предложений под конкретный проект, а при необходимости чиним обмен и ускоряем каталог, чтобы SKU показывались быстро и корректно.
Частые вопросы
Почему торговые предложения не отображаются в карточке товара?
Чаще всего у предложений нет цены, они неактивны или в параметрах компонента выключен флаг «Использовать торговые предложения». Проверьте эти три пункта в первую очередь.
Нужно ли включать что-то отдельно, если каталог грузится из 1С?
Инфоблок SKU и привязки создаются при обмене автоматически. Обычно достаточно проверить цены, активность предложений и сбросить кэш после выгрузки.
Где указать, по каким свойствам покупатель выбирает вариацию?
В параметрах компонента карточки товара, в блоке «Свойства предложений». Там перечисляются коды свойств SKU, которые станут элементами выбора.
Почему кнопка размера или цвета пустая?
Скорее всего, свойство-вариация заполнено не у всех предложений товара. Заполните его у каждого SKU, чтобы все комбинации были доступны.
Изменил настройки, но на сайте ничего не поменялось. Что делать?
Сбросьте кэш компонента и композитной страницы, затем проверьте карточку в режиме инкогнито. Кэширование — самая частая причина «пропавших» изменений.
Влияет ли учёт остатков на показ предложений?
Да. Если включён учёт остатков и запрещена продажа при нуле, предложения с нулевым количеством скрываются из выбора, даже будучи активными.
Почему цена не меняется при выборе разных предложений?
В компоненте указан тип цены, которого нет у предложений, либо цена вовсе не задана. Согласуйте тип цены в настройках компонента и в карточках SKU.
Обязательно ли править шаблон компонента?
Нет, если используется штатный или типовое решение — они поддерживают SKU из коробки. Правка нужна только для сильно кастомизированных карточек, где вывод предложений вырезали.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.