YML-файл обновления цен и остатков для Ozon

Как собрать компактный YML-файл для обновления цен и остатков в Ozon: всего четыре поля offer, без категорий и описаний.

«Ozon: цены и остатки» — не полноценный товарный фид, а компактный файл для обновления цен и остатков по уже существующим на Ozon карточкам. У него нет ни категорий, ни описаний, ни фото — только идентификатор, цена и остаток. Если нужен полный товарный YML с названиями и категориями, эта справка не подходит — используйте сценарий для Яндекс.Маркета или универсальную конвертацию в YML.

Как выбрать этот сценарий

Профиль создаётся так же, как для YML для Яндекс.Маркета: «Интерпретатор» → «Новый профиль» → загрузка источника → формат YML на вкладке «Форматы». В списке «Площадка или сценарий» выберите «Ozon: цены и остатки».

Список Площадка или сценарий с выбранным пунктом Ozon: цены и остатки, выделенным красной рамкой
Официальной YML-спецификации именно под этот сценарий Ozon не публикует — каркас собран под формат обновления цен/остатков без продавческого API.

Всего четыре обязательных поля

Боковая подсказка «Подготовка YML» (устройство панели — в полной инструкции) для этого сценария не создаёт ни узел категорий, ни атрибут даты каталога — их тут просто нет в требованиях.

Поле offerСтатус
id — SKU товараОбязательно
price, currencyIdОбязательно
stock — остатокОбязательно
name, vendorCode, barcodeНеобязательно, рекомендуется для читаемости лога
url, picture, description, categoryId, availableНе используются в этом сценарии
Панель подготовки YML с чек-листом из 4 обязательных полей для сценария Ozon: цены и остатки
Раздел «Обязательные поля offer» показывает счётчик «4» — и ни узла категорий, ни каркаса даты в панели нет вообще.

Пример: было / стало

Из того же источника с полями id, price, qty (панель распознаёт qty как остаток) результат — компактный офер без лишних полей:

Было — исходный XML

<item>
  <id>LAMP-100</id>
  <name>Настольная лампа Nordic</name>
  <price>2490</price>
  <qty>18</qty>
  <brand>NordicHome</brand>
  <category>Освещение</category>
  <photo>https://cdn.example.com/img/lamp-100.jpg</photo>
  <url>https://shop.example.com/catalog/lamp-100</url>
  <description>Настольная лампа с тканевым абажуром, тёплый свет 3000K.</description>
</item>

Стало — офер для «Ozon: цены и остатки»

<offer id="LAMP-100">
  <id>LAMP-100</id>
  <price>2490</price>
  <currencyId>RUB</currencyId>
  <stock>18</stock>
</offer>

Остальные поля источника (name, category, photo, url, description) в результате остаются как есть, без переименования — панель их просто не трогает, потому что они не входят в требования этого сценария. Если они не нужны в файле, их можно исключить отдельной кнопкой (описано в инструкции для Маркета) или оставить — на обновление цен/остатков они не влияют.

Страница результата запуска со статусом Завершено для сценария Ozon: цены и остатки
Готовый запуск: id, price, currencyId и stock заполнены — файл готов для обновления карточек в Ozon.

Регулярное обновление

Раз это файл именно для обновления цен и остатков, разовой выгрузки обычно недостаточно — практический смысл имеет расписание: сервис сам будет забирать новые цены/остатки из источника (1С, Excel, Google Таблицы) и пересобирать этот файл. Как поставить профиль на расписание — в инструкции для Яндекс.Маркета.