Інтеграція 1С-Бітрікс з Ozon (маркетплейс)
Ozon не працює через товарні фіди. На відміну від Яндекс.Маркета, де основний канал — YML-файл, Ozon вимагає завантаження товарів через Seller API. Це POST-запити з JSON-тілом, жорстка система атрибутів за категоріями і обов'язкова прив'язка до карточок Ozon. Без API-інтеграції управляти каталогом з 1С-Бітрікс неможливо — ручне заповнення через кабінет при більш ніж 50 товарах нежиттєвопо.
Архітектура інтеграції
Ozon Seller API (https://api-seller.ozon.ru/) — REST API з авторизацією через Client-Id і Api-Key. Ключі створюються в особистому кабінеті продавця: Налаштування → API-ключи.
Основні групи методів:
-
/v3/product/import— завантаження та оновлення товарів -
/v2/product/info/list— отримання інформації про товари -
/v1/product/import/prices— оновлення цін -
/v2/products/stocks— оновлення залишків -
/v1/posting/fbs/list— список замовлень FBS -
/v1/posting/fbs/ship— підтвердження відвантаження
Інтеграція будується на стороні Бітрікс як набір cron-агентів або обробників подій, які відправляють запити в API Ozon і отримують відповіді.
Завантаження товарів: система атрибутів Ozon
Ключова складність Ozon — категорійна система атрибутів. Кожна категорія (category_id) має свій набір обов'язкових і опціональних атрибутів. Отримати їх можна через /v1/description-category/attribute.
Приклад для категорії «Смартфони»:
| Атрибут Ozon | attribute_id |
Обов'язковий | Поле в Бітрікс |
|---|---|---|---|
| Бренд | 85 | Так | Властивість «Бренд» |
| Назва | 4180 | Так | NAME |
| Модель | 9048 | Так | Властивість «Модель» |
| Колір | 10096 | Так | Властивість з ТП |
| Обсяг пам'яті | — | Так | Властивість з ТП |
| Вага з упаковкою, г | 4382 | Так | Властивість або вичислювана |
| Габарити упаковки | 4383–4385 | Так | Властивості |
Значення-довідники. Багато атрибутів — не вільний текст, а вибір з довідника Ozon. Бренд «Samsung» — це конкретний option_value_id, який потрібно знайти через /v1/description-category/attribute/values. При зіставленні властивостей Бітрікс на атрибути Ozon необхідно створювати таблицю відповідностей: значення властивості інфоблоку → option_value_id Ozon.
Прив'язка до карточок. Ozon об'єднує однакові товари різних продавців у одну карточку. Прив'язка відбувається за штрихкодом (EAN), артикулом виробника або через ручну модерацію. Якщо товар вже є в базі Ozon, ваша оферта прив'яжеться до існуючої карточки. Якщо ні — створюється нова, яка проходить модерацію (1–3 дні).
Зіставлення даних: інфоблок → Ozon API
Типова схема зіставлення для модуля інтеграції:
Інфоблок «Каталог» (iblock_id = N)
├── NAME → attribute_id 4180 (Назва)
├── PROPERTY_BRAND → attribute_id 85 (Бренд, довідник)
├── PROPERTY_ARTICLE → offer_id (артикул продавця)
├── PROPERTY_BARCODE → barcode
├── DETAIL_TEXT → description (до 6000 символів)
└── DETAIL_PICTURE → images[] (до 15 фото, мінімум 200×200)
Інфоблок ТП (iblock_id = M)
├── PROPERTY_COLOR → attribute_id 10096 (Колір, довідник)
├── PROPERTY_SIZE → attribute_id (розмір, залежить від категорії)
└── Ціна каталогу → price / old_price
Зіставлення зберігається в налаштуваннях модуля інтеграції (якщо використовується готовий модуль із Marketplace) або в конфіґураційному файлі спеціального рішення.
Синхронізація цін і залишків
Ціни. Ozon працює з двома цінами: price (ціна продажу) і old_price (перекреслена). Різниця повинна бути не менше 5% — інакше Ozon не показуватиме знижку. Оновлення через /v1/product/import/prices, ліміт — 1000 товарів за запит.
У Бітрікс ціни зберігаються в таблиці b_catalog_price. Для інтеграції з Ozon виділяється окремий тип ціни (наприклад, «Ціна Ozon») або використовується основна роздрібна. Агент синхронізації запускається по cron кожні 15–30 хвилин, вибирає товари з змінена ціною (TIMESTAMP_X) і відправляє пакетний запит.
Залишки. Метод /v2/products/stocks. Критично для FBS — якщо залишок в Ozon > 0, а на складі товара нема — отримуєте штраф за скасування замовлення. Синхронізація залишків повинна бути максимально частою: кожні 5–15 хвилин для товарів з великим обігом.
Для мультискладовості Ozon підтримує передачу залишків за складами (warehouse_id). Кожен склад Ozon зіставляється зі складом у Бітрікс (якщо використовується складський облік модуля catalog).
Обробка замовлень
Замовлення FBS забираються через /v1/posting/fbs/list з фільтром status = awaiting_packaging. Обробник:
- Отримує список нових замовлень.
- Створює замовлення в Бітрікс через
Bitrix\Sale\Order::create()з зіставленням полів: товари, кількість, адреса (якщо доступна), сума. - При збиранні замовлення і передачі в доставку — викликає
/v1/posting/fbs/shipз указаннямposting_numberі трек-номеру.
Статуси замовлення Ozon → Бітрікс:
| Ozon | Дія в Бітрікс |
|---|---|
awaiting_packaging |
Створення замовлення, статус «Новий» |
awaiting_deliver |
Статус «Зібрано» |
delivering |
Статус «Відправлено» |
delivered |
Статус «Виконано» |
cancelled |
Скасування замовлення |
Типові проблеми
Товар не пройшов модерацію. Причина #1 — неправильне зіставлення атрибутів. Перевірте через /v1/product/info/list поле status_description. Часта помилка — бренд переданий текстом, а не option_value_id.
Rate limiting. Ozon API обмежує число запитів: ~60 запитів на хвилину для більшості методів. При каталозі в 10 000+ товарів оновлення цін потрібно розбивати на пакети з затримкою.
Розбіжність залишків. Якщо замовлення створено на Ozon, але агент синхронізації ще не забрав його — залишок у Бітрікс не зменшився. Наступний запит залишків відправить застарілі дані. Рішення: при отриманні замовлення з Ozon спочатку зарезервувати залишок у Бітрікс, потім синхронізувати.
| Масштаб | Термін |
|---|---|
| До 500 товарів, проста структура | 5–7 днів |
| 500–5000, SKU, мультисклад | 1.5 тижня |
| 5000+, повна автоматизація (замовлення + залишки + статуси) | 2 тижня |







