Налаштування вивантаження номенклатури з 1С:УТ у 1С-Бітрікс
Вивантаження номенклатури — перший і найкритичніший етап інтеграції. Саме тут формується структура товарного каталогу на сайті: ієрархія розділів, набір властивостей, зв'язки між SKU і батьківськими товарами. Помилки на цьому етапі важко виправити без повного перестворення каталогу.
Що саме вивантажується при обміні номенклатурою
Механізм CommerceML у 1С:УТ 11 передає в XML кілька блоків:
Класифікатор (КомерційнаІнформація → Класифікатор) — це структура каталогу:
- Групи номенклатури з ієрархією (папки)
- Властивості (характеристики, які будуть у товарів)
- Значення властивостей (довідник допустимих значень)
Каталог (КомерційнаІнформація → Каталог) — самі товари:
- Кожен
<Товар>= одна позиція номенклатури - Всередині: найменування, артикул, одиниця виміру, зображення,
ДодатковіРеквізити,ХарактеристикиТовару
При першому запуску вивантажується весь класифікатор і весь каталог. При інкрементальному обміні — тільки змінені позиції, але класифікатор (групи та властивості) завжди вивантажується повністю.
Налаштування фільтрів вивантаження в УТ
У вузлі обміну (розділ НДІ та адміністрування → Інтеграція з сайтом) налаштовуються фільтри:
За організацією. Якщо в УТ кілька організацій — вказуємо конкретну.
За групами номенклатури. Можна вибрати конкретні папки довідника. Зручно для випадків, коли в УТ зберігається вся номенклатура (включно з сировиною, внутрішніми наборами), але на сайт потрібна тільки товарна група «Для продажу».
За видом номенклатури. У УТ 11 є види номенклатури — це аналог категорій з попередньо визначеними властивостями. Фільтр за видом дозволяє вивантажувати, наприклад, тільки «Готову продукцію».
За додатковим реквізитом. Зручний спосіб — додати до довідника «Номенклатура» булевий реквізит «Публікувати на сайті». Фільтр за цим реквізитом дає точний контроль над тим, що потрапляє на сайт.
Маппінг властивостей: де втрачаються дані
Властивості номенклатури в УТ поділяються на два типи:
-
Стандартні реквізити (Найменування, Артикул, Одиниця виміру, Вага, Об'єм) — передаються в фіксованих тегах XML, Бітрікс читає їх автоматично.
-
Додаткові реквізити (все інше) — передаються в
ДодатковіРеквізити. Бітрікс створює з них властивості інфоблоку автоматично при першому імпорті.
Проблема: при першому імпорті Бітрікс створює властивості з автоматичними кодами (зазвичай CML2_ATTR_1, CML2_ATTR_2 тощо). Це нечитабельні коди, з якими незручно працювати при розробці шаблонів. Перед першим реальним імпортом задайте властивостям коректні коди вручну або через обробник події OnIBlockPropertyAdd.
Зображення у вивантаженні
Спосіб 1: Base64 у XML — зображення кодуються прямо в XML-файл. Простий спосіб, але сильно роздуває розмір файлу. При 10 тис. товарів по 3 фото = XML 2–5 ГБ.
Спосіб 2: Посилання на файли — у XML передаються шляхи до зображень, Бітрікс завантажує їх окремими HTTP-запитами. Повільніше, але XML залишається компактним.
Спосіб 3: FTP-папка — зображення вивантажуються в окрему папку (через FTP або спільний мережевий каталог), у XML — відносні шляхи. Найшвидший варіант при локальній мережі.
Для production рекомендую спосіб 3 (FTP) або спосіб 2 (посилання) з кешуванням уже завантажених зображень на стороні Бітрікс (не перезавантажувати зображення, якщо MD5 не змінився).
Характеристики номенклатури → торговельні пропозиції
Якщо в УТ у номенклатури є характеристики (колір, розмір, об'єм), вони вивантажуються в ХарактеристикиТовару. Бітрікс створює на їх основі торговельні пропозиції (SKU) в інфоблоці пропозицій.
Структура: один товар (головний елемент) + N торговельних пропозицій. Кожна пропозиція успадковує властивості товару і додає специфічні (колір, розмір). Ціна та залишок — на рівні пропозиції.
Товар: Футболка Polo
├── Пропозиція: Біла, S
├── Пропозиція: Біла, M
├── Пропозиція: Синя, S
└── Пропозиція: Синя, M
Зв'язок товару та пропозицій у XML — через збіг XML_ID товару і поля ТоварId у пропозиції.
Скільки часу займає перший імпорт
| Обсяг каталогу | Без характеристик | З характеристиками |
|---|---|---|
| До 5 тис. товарів | 2–5 хв | 5–15 хв |
| 5–50 тис. товарів | 10–30 хв | 30–90 хв |
| 50+ тис. товарів | 45–120 хв | 2–6 годин |
Для великих каталогів перший імпорт краще запускати вручну в cron з max_execution_time = 0, а не через браузер.







