Ozon, в отличие от Яндекс.Маркета, не забирает YML-фид — карточки, цены и остатки передаются в него через Seller API. Поэтому выгрузка из 1С-Битрикс сводится не к генерации файла, а к настройке обмена: подготовке каталога, ключам доступа, маппингу категорий и регулярной синхронизации по расписанию.
Как Ozon получает товары: API вместо фида
Первое, что важно понять при интеграции: Ozon работает по модели Seller API, а не по схеме «сгенерировали YML — маркетплейс скачал». Все операции идут запросами на адрес https://api-seller.ozon.ru с заголовками Client-Id и Api-Key. Это меняет архитектуру выгрузки из Битрикс: вместо статического файла на диске нужен код, который формирует JSON и отправляет его на нужные эндпоинты.
Обмен разбит на независимые процессы, и в проекте их удобно разделять:
- Создание и обновление карточек —
POST /v3/product/import; - Обновление остатков —
POST /v2/products/stocks; - Обновление цен —
POST /v1/product/import/prices; - Проверка статуса загрузки —
POST /v1/product/import/info.
offer_id. Это ваш артикул на стороне магазина; именно по нему Ozon отличает новый товар от обновления существующего. В Битрикс его роль обычно играет свойство CML2_ARTICLE элемента или торгового предложения.Что подготовить в каталоге Битрикс
Прежде чем настраивать обмен, каталог нужно привести к виду, который Ozon примет без отклонений. Данные берутся из модулей iblock (инфоблоки) и catalog (торговый каталог), поэтому проверяйте именно их поля и свойства.
- Артикул — уникальный и заполненный у каждой позиции. Пустой или дублирующийся
offer_id— самая частая причина, по которой партия товаров не создаётся. - Штрихкод — Ozon требует
barcodeдля большинства категорий. В Битрикс он хранится в таблице штрихкодов склада (CCatalogStoreBarcode), а не в свойстве инфоблока. - Торговые предложения (SKU) — если у товара есть размеры и цвета, они выгружаются отдельными карточками. Разделы «Управление торговым каталогом → Товары» и вкладка предложений должны быть корректно связаны.
- Изображения — Ozon скачивает их по прямым URL, поэтому картинки должны быть публично доступны и отдаваться без редиректов и авторизации.
weight, depth, width, height. Если этих характеристик нет в свойствах инфоблока, карточка создастся в статусе с ошибкой валидации.Ключи доступа и слой интеграции
Доступ к API выдаётся в личном кабинете продавца: Настройки → Seller API → Ключи API. Там формируется пара Client-Id и Api-Key; ключ показывается один раз, поэтому его нужно сразу сохранить в защищённом месте, а не в открытом коде.
На стороне Битрикс интеграцию реализуют одним из трёх способов:
| Вариант | Когда подходит | Особенности |
|---|---|---|
| Готовый модуль из Marketplace | Типовой каталог, стандартные свойства | Быстрый старт, но маппинг ограничен возможностями модуля |
| Собственный модуль/обработчик | Нестандартная структура, много SKU, своя логика цен | Полный контроль, гибкий маппинг, но требует разработки |
| Внешний сервис-агрегатор | Несколько площадок сразу | Обмен идёт через посредника, Битрикс отдаёт данные ему |
Option::get(). Так их проще менять и не потерять при обновлении.Создание карточек: категории и атрибуты
Самая трудоёмкая часть — маппинг категорий. Ozon работает по дереву description_category_id и type_id: сначала запросом /v1/description-category/tree вы получаете дерево категорий, затем /v1/description-category/attribute — список атрибутов конкретной категории. Разделы инфоблока Битрикс нужно сопоставить с этими идентификаторами.
Атрибуты Ozon делятся на обязательные и опциональные, часть из них — словарные (значение выбирается из справочника, а не пишется произвольно). Для таких атрибутов передаётся dictionary_value_id, который тоже запрашивается через API. Практический порядок работы:
- Получить дерево категорий и один раз зафиксировать соответствие «раздел Битрикс →
type_id». - Для каждого типа выгрузить перечень обязательных атрибутов.
- Сопоставить свойства инфоблока (бренд, цвет, материал) с атрибутами Ozon.
- Собрать тело запроса
/v3/product/importи отправить пакетом до 100 товаров.
/v3/product/import Ozon возвращает не результат, а task_id. Реальный статус каждой карточки узнаётся отдельным запросом /v1/product/import/info — именно там видны ошибки валидации по конкретным SKU.Синхронизация цен и остатков
Карточка создаётся один раз, а цены и остатки меняются постоянно, поэтому эти процессы выносят в отдельные регулярные задания. Их нельзя гнать через тяжёлый /v3/product/import — для них есть лёгкие эндпоинты.
- Цены —
/v1/product/import/prices: передаютсяoffer_id,priceиold_price(перечёркнутая цена). В Битрикс источник — тип цены из модуля каталога, чаще всего «Розничная». - Остатки —
/v2/products/stocks:offer_id, количество иwarehouse_idсклада Ozon. Данные берутся из складского учёта Битрикс (CCatalogStoreProduct) или из выгрузки 1С.
Оба запроса принимают пакеты, поэтому обновление сотен позиций укладывается в единичные вызовы. Частоту подбирают под товарооборот: остатки ходовых позиций синхронизируют раз в 10–15 минут, цены — по факту изменения или несколько раз в день.
1c_exchange.php: после успешной сессии обмена ставить в очередь отправку изменившихся остатков в Ozon, а не гонять весь каталог по таймеру.Автоматизация, логи и типичные ошибки
Ручной запуск выгрузки годится только для теста. В продакшене обмен ставят на расписание через агенты Битрикс или, надёжнее, через системный cron с вызовом отдельного PHP-скрипта. Cron предпочтительнее: агенты выполняются на хитах посетителей и на низком трафике могут запускаться нерегулярно.
Обмен по API обязательно логируют — без журнала разбирать отклонённые карточки практически невозможно. В лог стоит писать task_id, коды ответов и тела ошибок. Что встречается чаще всего:
- 429 Too Many Requests — превышены лимиты API; помогает пакетирование и пауза между запросами.
- Ошибка валидации атрибута — не заполнен обязательный или словарный атрибут категории.
- Пустой или неуникальный
offer_id— товар не создаётся или перезаписывает чужой. - Недоступные изображения — URL закрыт авторизацией, отдаёт 404 или редирект.
Итог
Выгрузка на Ozon из 1С-Битрикс — это не генерация файла, а полноценная интеграция по Seller API: подготовка каталога (артикулы, штрихкоды, габариты, изображения), маппинг категорий и атрибутов, создание карточек через /v3/product/import и раздельная синхронизация цен и остатков по расписанию. Аккуратный маппинг и логирование ошибок экономят десятки часов на разборе отклонённых позиций.
Мы в B2Bsite настраиваем такие интеграции под конкретный каталог: связываем свойства инфоблоков с атрибутами Ozon, подключаем обмен к сессиям 1С и берём обмен на сопровождение, чтобы цены и остатки на площадке всегда совпадали с сайтом.
Частые вопросы
Можно ли выгрузить товары на Ozon обычным YML-фидом, как на Яндекс.Маркет?
Нет. Ozon не забирает YML-файл для создания карточек — обмен идёт через Seller API запросами на api-seller.ozon.ru. Из Битрикс нужно отправлять данные кодом, а не выкладывать фид.
Где взять Client-Id и Api-Key?
В личном кабинете продавца Ozon: Настройки — Seller API — Ключи API. Api-Key показывается один раз при создании, поэтому его сразу сохраняют в защищённом месте.
Что использовать как offer_id в Битрикс?
Обычно артикул товара или торгового предложения — свойство CML2_ARTICLE. Главное, чтобы значение было заполнено и уникально: по нему Ozon отличает новый товар от обновления существующего.
Почему после отправки товаров они не появляются в кабинете?
Импорт асинхронный: в ответ приходит task_id, а не результат. Статус и ошибки по каждой карточке нужно получить отдельным запросом /v1/product/import/info.
Как часто синхронизировать цены и остатки?
Остатки ходовых позиций — раз в 10–15 минут, чтобы избежать заказов отсутствующего товара. Цены обновляют по факту изменения или несколько раз в день через отдельные лёгкие эндпоинты.
Чем запускать обмен — агентами Битрикс или cron?
Надёжнее cron: он срабатывает по расписанию независимо от посещаемости. Агенты выполняются на хитах посетителей и при низком трафике могут запускаться нерегулярно.
Нужны ли штрихкоды для всех товаров?
Для большинства категорий Ozon требует barcode. В Битрикс он хранится в штрихкодах склада, а не в свойстве инфоблока, поэтому его нужно готовить отдельно.
Как выгружать товары с размерами и цветами?
Через торговые предложения (SKU) каталога Битрикс — каждая вариация становится отдельной карточкой Ozon со своим offer_id, штрихкодом и остатком.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.