В современном электронном коммерце редко встречаются товары, которые существуют только в одном варианте. Обувь имеет размеры и цвет, электроника — объем памяти и цвет корпуса, продукты — вес и упаковку. В 1С-Битрикс: Управление сайтом для решения этой задачи используется механизм Торговых предложений (SKU, Stock Keeping Unit). Данная статья подробно разбирает архитектуру, настройку и нюансы работы с торговыми предложениями для эффективного управления каталогом.
Что такое Торговые предложения (SKU)?
Торговое предложение — это конкретная вариация товара, которая имеет свои уникальные характеристики (артикул, цена, количество на складе, фото, вес, габариты), но при этом принадлежит к одному основному товару (родительскому элементу).
Ключевые понятия:
- Основной товар (Родитель), элемент инфоблока каталога, объединяющий группу вариаций. Содержит общее описание, общие свойства, SEO-данные, детальную карточку.
- Торговое предложение (Дочерний элемент) — отдельный элемент в отдельном инфоблоке, привязанный к родителю. Имеет уникальный набор свойств (SKU-свойств), цену, остатки.
- SKU-свойства, свойства инфоблока торговых предложений, помеченные галочкой «Является SKU-свойством» (например, Цвет, Размер, Объем). Именно они формируют матрицу вариаций.
Архитектура хранения данных
В Битриксе реализована модель «Один основной товар — Множество торговых предложений». Технически это два разных инфоблока:
- Инфоблок каталога (Основные товары) — хранит общую информацию.
- Инфоблок торговых предложений (Вариации) — хранит конкретные SKU.
Связь осуществляется через свойство основного товара типа «Привязка к элементам инфоблока» (код по умолчанию обычно CML2_LINK), которое ссылается на инфоблок торговых предложений. В настройках инфоблока каталога на вкладке «Торговые предложения» указывается, какой именно инфоблок является дочерним.
Настройка Торговых предложений (Пошагово)
Шаг 1. Создание инфоблока торговых предложений
- Перейдите в Контент > Инфоблоки > Типы инфоблоков (или создайте новый тип «Каталог»).
- Создайте инфоблок, например: «Торговые предложения каталога».
- В настройках инфоблока включите: «Разделы», «ЧПУ», «Множественные категории» (по необходимости).
Шаг 2. Создание SKU-свойств
В созданном инфоблоке торговых предложений создайте свойства, которые будут отличать вариации друг от друга (Цвет, Размер, Материал).
- Тип свойства: Список (для выбора из заранее заданных значений) или Строка.
- Критически важно: Поставьте галочку «Является SKU-свойством».
- Заполните значения списка (Красный, Синий / 42, 43, 44).
Шаг 3. Настройка инфоблока основных товаров
- Откройте настройки инфоблока каталога (родительского).
- Вкладка «Торговые предложения».
- Выберите инфоблок торговых предложений.
- Выберите свойство-связку (обычно
CML2_LINK). - Сохраните. Система автоматически подтянет SKU-свойства из дочернего инфоблока для настройки матрицы.
Шаг 4. Настройка матрицы вариаций (визуальное представление)
После привязки инфоблока SKU на вкладке «Торговые предложения» появится блок «Настройка матрицы». Здесь можно определить:
- Какие свойства выводятся в виде выпадающего списка, радиокнопок, цветовых образцов (палитры) или изображений.
- Порядок следования свойств (сверху вниз — приоритет выбора).
- Настройку «Показывать недоступные предложения» (зачеркивать или скрывать).
Работа с ценами и остатками
Главное преимущество SKU — независимое ценообразование и учет остатков для каждой вариации.
Цены
Цены привязываются к конкретному торговому предложению (дочернему элементу). В карточке основного товара в админке на вкладке «Торговые предложения» есть таблица, где для каждого SKU можно задать:
- Базовую цену и цены по типам цен (Розница, Опт, Дилер и т.д.).
- Валюту.
- Налоги.
Важно: У основного товара цена может быть не задана (или равна 0), она не используется в корзине, если у товара есть торговые предложения. В корзину всегда попадает конкретное SKU.
Остатки (Количество)
Учет остатков ведется строго по торговым предложениям. Настройка производится в настройках модуля «Интернет-магазин» > «Настройки склада» > «Учет количества». Для каждого SKU задается:
- Количество на складе.
- Минимальное количество для заказа.
- Допускать ли заказ при отсутствии (под заказ).
Основные компоненты каталога (bitrix:catalog, bitrix:catalog.section, bitrix:catalog.element) имеют встроенную поддержку SKU.
Ключевые параметры компонентов:
- IBLOCK_ID — ID инфоблока основных товаров.
- SKU_IBLOCK_ID, ID инфоблока торговых предложений (обычно подтягивается автоматически из настроек инфоблока).
- SKU_PROPS, массив кодов SKU-свойств, которые участвуют в выборе (например,
['COLOR', 'SIZE']). - OFFERS_CART_PROPERTIES — свойства SKU, которые показываются в корзине (размер, цвет).
- OFFERS_SORT_FIELD / OFFERS_SORT_ORDER, сортировка предложений в списке.
Шаблоны компонентов
В современных шаблонах (например, «Адаптивный» или на базе Bitrix Vue JS / React в новых редакциях) выбор SKU реализован через JS-объект window['catalogElement_...'] или через BX.Vue компоненты. При выборе вариации динамически меняются:
- Цена (базовая, со скидкой, старая).
- Картинки (галерея переключается на фото выбранного SKU).
- Артикул, вес, габариты.
- Наличие (текст/индикатор: «В наличии», «Мало», «Нет в наличии»).
- Кнопка «Купить» / «Под заказ» / «Нет в наличии».
Импорт и экспорт (1С, CSV, XML)
Это самая частая точка боли при интеграции с 1С или внешними системами.
Формат CommerceML (1С)
В XML выгрузке из 1С основной товар передается в теге Товар, а вариации — в теге Предложения (внутри ПакетПредложений). Связь идет по Ид (GUID) или Артикул.
- В 1С номенклатура — это основной товар.
- В 1С характеристики номенклатуры / варианты номенклатуры — это торговые предложения.
- Модуль обмена Битрикса автоматически создает/обновляет дочерние элементы в инфоблоке SKU и проставляет связь
CML2_LINK.
CSV Импорт
При импорте через CSV (Админка > Контент > Импорт CSV) необходимо:
- Импортировать основные товары (получить их ID).
- Импортировать торговые предложения в их инфоблок, в колонке привязки (обычно
CML2_LINK) указать ID родительского товара. - Убедиться, что SKU-свойства (Цвет, Размер) импортируются как привязки к значениям списка (XML_ID или VALUE), а не просто строкой.
Распространенные проблемы и решения
| Проблема | Причина / Решение |
|---|---|
| Не меняется цена/картинка при выборе вариации на сайте | Ошибка в JS-шаблоне компонента catalog.element. Проверьте, что в result_modifier.php корректно формируется массив JS_CONFIG / OFFERS с полными данными (PRICES, PREVIEW_PICTURE, PROPERTIES). |
| В корзину добавляется основной товар, а не SKU | В компоненте catalog.element не передан параметр SKU_IBLOCK_ID или в шаблоне кнопка «Купить» не передает PROP_XXX (ID SKU) в корзину. Проверьте ADD_PROPERTIES_TO_BASKET = Y. |
| Не фильтруются товары по свойствам SKU в умном фильтре | В настройках умного фильтра (bitrix:catalog.smart.filter) нужно указать IBLOCK_ID инфоблока SKU и выбрать свойства SKU в «Показывать свойства». В компоненте каталога ( |
| Дубликаты SKU при повторном импорте из 1С | Не совпадают XML_ID (GUID) предложений в 1С и на сайте. Проверьте настройки обмена: «Обновлять существующие» и соответствие полей «Артикул» / «XML_ID». |
| Медленная загрузка карточки товара с 1000+ SKU |
Продвинутые техники
Множественные SKU-инфоблоки для одного каталога
Начиная с модуля catalog 23.0.0 (и в редакции «Бизнес»/«Корпоративный портал»), появилась поддержка нескольких инфоблоков торговых предложений для одного инфоблока каталога. Это позволяет хранить, например, «Обувь» и «Одежду» в разных инфоблоках SKU с разным набором свойств (Размер/Цвет vs Рост/Обхват), но в одном разделе каталога.
Динамические свойства SKU (пользовательские поля)
Можно добавить пользовательские поля (User Fields) к инфоблоку торговых предложений (например, «Срок годности», «Страна производства партии», «Штрихкод»). Они будут доступны в $arResult['OFFERS'] и в корзине.
Управление фото: «Одна галерея на все» vs «Фото у каждого SKU»
- Вариант А: Фото только у основного товара. Все SKU используют общую галерею. Экономит место, но покупатель не видит цвет в натуре.
- Вариант Б (Рекомендуемый): У каждого SKU свое детальное фото / галерея. В настройках компонента
catalog.elementвключите подгрузку фото выбранного SKU. При импорте из 1С картинки привязываются к предложениям.
Чек-лист проверки перед запуском
- [ ] У всех основных товаров, имеющих вариации, заведено минимум одно Торговое предложение.
- [ ] У всех SKU заполнены: Цена (хотя бы базовая), Количество (остаток), Артикул (уникальный).
- [ ] SKU-свойства (Цвет, Размер) имеют понятные названия значений и, желательно, картинки-образцы (для палитры).
- [ ] Настройка матрицы в инфоблоке каталога соответствует UX-требованиям (радиокнопки для размера, палитра для цвета).
- [ ] Умный фильтр корректно агрегирует значения SKU (показывает «Красный», только если есть товары красного цвета в наличии).
- [ ] В корзине и заказе отображаются отличительные свойства (Цвет: Красный, Размер: 42).
- [ ] Выгрузка заказов в 1С/CRM корректно передает ID/Артикул именно Торгового предложения, а не основного товара.
Грамотная настройка Торговых предложений в 1С-Битрикс — это фундамент удобного каталога и корректной работы заказов, склада и интеграции с 1С. Главные принципы успеха: четкое разделение «Общего» (родитель) и «Конкретного» (SKU), правильная разметка SKU-свойств (галочка «Является SKU-свойством») и тестирование всех сценариев выбора вариации на фронтенде до передачи проекта заказчику.
Используйте возможности модуля «Каталог» максимально: настройку матрицы, привязку фото к SKU, независимые цены и скидки. Это снимет 90% рутинных вопросов от контент-менеджеров и покупателей в будущем.