Загрузка товаров на Озон через YML: полное руководство с примерами

Загрузка товаров на Озон через YML-файл — самый эффективный способ для продавцов с большим ассортиментом. Этот метод экономит время, исключает ручной ввод данных и минимизирует ошибки при синхронизации каталога. Но чтобы процесс прошёл гладко, нужно учитывать технические требования Озон к структуре YML, ограничения на количество товаров и правила заполнения обязательных полей.

В этой статье вы найдёте пошаговую инструкцию: от создания YML-файла до проверки результатов загрузки. Мы разберём типичные ошибки (например, неверный формат цены или отсутствие артикулов), покажем примеры корректного кода и расскажем, как автоматизировать обновление каталога через API. А если вы только начинаете работать с Ozon Seller, здесь есть всё, чтобы избежать отказов при модерации.

Что такое YML и почему Озон требует этот формат

YML (Yandex Market Language) — это XML-формат, изначально разработанный Яндекс.Маркетом для обмена данными о товарах. Озон адаптировал его под свои нужды, добавив обязательные поля и ограничения. Главное преимущество YML перед ручным вводом или Excel:

  • 🔄 Автоматическая синхронизация — изменения в вашем каталоге сразу отражаются на маркетплейсе.
  • Скорость — загрузка тысяч товаров занимает минуты, а не часы.
  • 📊 Структурированные данные — Озон лучше понимает характеристики товаров, что улучшает выдачу в поиске.
  • 🛡️ Меньше ошибок — система валидирует файл перед загрузкой и указывает на проблемы.

Озон принимает YML-файлы версии 1.0 и 1.1, но рекомендует использовать последнюю. Основное отличие — поддержка мультимедиа (видео, 3D-модели) и расширенных атрибутов в версии 1.1. Если ваш каталог простой, достаточно и 1.0.

⚠️ Внимание: Озон блокирует загрузку YML, если в нём есть товары с дублирующимися offer id (внутренними идентификаторами). Даже один дубль приведёт к отказу всего файла. Проверяйте уникальность артикулов перед отправкой!

Требования Озон к структуре YML-файла в 2026 году

Озон предъявляет жёсткие требования к структуре YML. Если файл не соответствует стандарту, вы получите ошибку ещё на этапе валидации. Вот ключевые правила:

Параметр Требования Озон Пример
Кодировка Только UTF-8 (без BOM)
<?xml version="1.0" encoding="UTF-8"?>
Размер файла Не более 50 МБ в архиве (100 МБ для FBO) Для 50 000 товаров — ~30-40 МБ
Обязательные теги shop, offers, offer, url, price, currencyId
<offer id="123" available="true">

<url>https://example.com/product1</url>

<price>999</price>

<currencyId>RUB</currencyId>

</offer>

Формат цены Целое число без разделителей (рубли в копейках) 1 299 ₽ → 129900
Изображения Ссылки должны быть прямыми (без редиректов), формат JPG/PNG, размер ≥ 800×800 px
<picture>https://example.com/img/product1.jpg</picture>

Особое внимание уделите тегу <categoryId> — он должен соответствовать категориям Озон. Если указать неверный идентификатор, товар не пройдёт модерацию. Например, для смартфонов используйте categoryId="17035677" (категория "Мобильные телефоны").

📊 Как вы обычно загружаете товары на Озон?
Вручную через личный кабинет
Через Excel
Через YML
Через API
Другой способ

Пошаговая инструкция: как создать YML-файл для Озон

Сгенерировать YML можно тремя способами: вручную (для небольших каталогов), через плагины CMS (например, для 1C-Битрикс или WordPress), или с помощью скриптов. Мы разберём универсальный метод на примере Excel + конвертер.

Шаг 1. Подготовьте данные в Excel

Создайте таблицу со столбцами, соответствующими тегам YML. Минимальный набор:

  • 📌 ID (уникальный артикул)
  • 🔗 URL (ссылка на товар на вашем сайте)
  • 💰 Price (цена в копейках)
  • 📦 Quantity (остаток)
  • 📸 Picture (ссылка на главное изображение)
  • 🏷️ Name (название товара)
  • 📝 Description (описание)
  • 📌 CategoryId (ID категории Озон)

Пример заполнения:


ID | URL | Price | Quantity | Picture | Name | Description | CategoryId

--------|------------------------------|--------|----------|-----------------------------|---------------------|----------------------|-----------

12345 | https://site.ru/phone1 | 59900 | 10 | https://site.ru/img/phone1.jpg | iPhone 15 128GB | Смартфон Apple... | 17035677

Шаг 2. Сконвертируйте Excel в YML

Используйте бесплатные сервисы:

  • 🔧 YML Generator — загружаете Excel, получаете готовый файл.
  • 🔧 XML-Sitemaps — поддерживает расширенные настройки.
  • 🔧 Плагин "YML для Озон" в 1C-Битрикс (если у вас интернет-магазин на этой CMS).

Если товаров много (10 000+), лучше написать скрипт на Python с библиотекой pandas:

import pandas as pd

import xml.etree.ElementTree as ET

df = pd.read_excel('products.xlsx')

root = ET.Element('yml_catalog', date=str(pd.Timestamp.now()))

shop = ET.SubElement(root, 'shop')

Далее формируете структуру в цикле

☑️ Проверка YML перед загрузкой

Выполнено: 0 / 5

Как загрузить YML-файл в личный кабинет Озон

После создания YML остаётся загрузить его на маркетплейс. Это можно сделать через личный кабинет или API. Рассмотрим оба способа.

Способ 1: Через личный кабинет (для начинающих)

  1. Перейдите в раздел Товары → Импорт товаров.
  2. Выберите Загрузить YML-файл.
  3. Заархивируйте файл в ZIP (если он больше 1 МБ).
  4. Загрузите архив и дождитесь проверки (до 10 минут).
  5. Исправьте ошибки, если они появились в отчёте.

Озон покажет статус загрузки:

  • Успешно — товары отправлены на модерацию.
  • ⚠️ С предупреждениями — часть товаров не загружена (нужно исправить).
  • Ошибка — файл не соответствует требованиям (проверьте кодировку или структуру).

Способ 2: Через API (для автоматизации)

Для регулярных обновлений используйте API Озон. Пример запроса на Python:

import requests

url = "https://api-seller.ozon.ru/v1/product/import/yml"

headers = {

"Client-Id": "ваш_client_id",

"Api-Key": "ваш_api_key",

"Content-Type": "multipart/form-data"

}

files = {"file": open("products.yml", "rb")}

response = requests.post(url, headers=headers, files=files)

print(response.json())

Ответ API будет содержать task_id — по нему можно отследить статус загрузки через метод /v1/product/import/info.

1) Соответствие названий товара правилам Озон (без рекламных слов вроде "АКЦИЯ!").

2) Качество изображений (фон должен быть белым, без водяных знаков).

3) Наличие всех обязательных характеристик для категории (например, для одежды — размерная сетка).-->

Типичные ошибки при загрузке YML и как их исправить

Даже опытные продавцы сталкиваются с отказами при загрузке YML. Вот самые частые ошибки и способы их решения:

Ошибка Причина Решение
Invalid currencyId Неверный код валюты Используйте только RUB для российских товаров
Offer id is not unique Дублирующиеся артикулы Проверьте столбец ID на повторения
Image url is invalid Ссылка на изображение недоступна Проверьте URL через URL Inspector
Category not found Неверный categoryId Сверьтесь с классификатором Озон
Price is too low Цена ниже минимальной для категории Увеличьте цену или запросите исключение у поддержки

Если Озон возвращает ошибку XML parsing error, скорее всего, проблема в кодировке или некорректных символах (например, & вместо &). Используйте валидатор XML Validation для проверки.

⚠️ Внимание: Озон блокирует загрузку YML, если в нём есть товары с available="false" и ненулевым остатком. Либо укажите available="true", либо обнулите quantity.
Что делать, если YML не загружается без видимых ошибок?

Попробуйте:

1) Разбить файл на части (по 10 000 товаров).

2) Удалить все необязательные теги (например, vendor, model).

3) Загрузить файл через другой браузер (иногда помогает смена User-Agent).

4) Обратиться в поддержку Озон с логами ошибок (прикрепите файл и скриншот ответа системы).

Как обновлять товары на Озон через YML: автоматизация

Ручная загрузка YML подходит для разовых обновлений, но если ассортимент меняется ежедневно, нужна автоматизация. Вот 3 способа:

  • 🤖 CRON + скрипт: Настройте автоматическую генерацию YML по расписанию (например, каждый день в 3:00). Пример для Linux:
    0 3   * python3 /path/to/generate_yml.py && curl -X POST -F "file=@products.yml" https://api-seller.ozon.ru/v1/product/import/yml
  • 🔄 Интеграция с 1C: Используйте обработку "Выгрузка товаров на Озон" (доступна в 1C:Управление торговлей).
  • ⚙️ Сервисы-коннекторы: MoySklad, Битрикс24 или RetailCRM имеют готовые модули для синхронизации с Озон.

Для крупных продавцов (100 000+ товаров) оптимально использовать Ozon API с инкрементальными обновлениями. Вместо полной выгрузки отправляйте только изменённые позиции:

# Пример обновления цены для одного товара

import requests

url = "https://api-seller.ozon.ru/v2/product/import/prices"

headers = {"Client-Id": "ваш_id", "Api-Key": "ваш_key"}

data = {

"prices": [

{

"offer_id": "12345",

"price": "59900",

"old_price": "69900"

}

]

}

response = requests.post(url, headers=headers, json=data)

Частые вопросы о загрузке товаров через YML

Можно ли загрузить YML с товарами, которые уже есть на Озон?

Да, но есть нюансы:

  • Если товар с таким же offer id уже существует, данные обновятся.
  • Если offer id новый, создастся дубль (его придётся удалять вручную).
  • Для обновления характеристик (например, описания) обязательно указывайте offer id из личного кабинета Озон.

Чтобы избежать дублей, предварительно экспортируйте текущий каталог через Товары → Экспорт и сверьте артикулы.

Сколько времени занимает модерация товаров после загрузки YML?

Сроки зависят от категории:

  • Электроника, бытовая техника — до 72 часов (строгая модерация).
  • Одежда, обувь — до 48 часов.
  • Книги, канцтовары — до 24 часов.
  • FBO-товары проходят модерацию быстрее (до 12 часов).

Ускорить процесс можно, если:

  • Загружать YML в будние дни (среда-четверг).
  • Избегать пиковых нагрузок (с 10:00 до 16:00 по МСК).
  • Использовать Озон.Премиум (приоритетная модерация).

Как проверить, какие товары не прошли модерацию?

В личном кабинете перейдите в Товары → История импорта. Нажмите на задачу с ошибками и скачайте отчёт в формате CSV. В нём будут столбцы:

  • offer_id — артикул товара с ошибкой.
  • error_code — код ошибки (например, 1001 — неверная категория).
  • error_message — описание проблемы.

Для массового исправления используйте фильтр в Excel по error_code.

Можно ли загружать YML с вариантами товаров (цвета, размеры)?

Да, но нужно правильно оформить структуру. Для товаров с вариантами (например, футболка в 3 цветах) используйте тег <offer> с атрибутом group_id:

<offer id="123_red" group_id="123" available="true">

<name>Футболка (красный)</name>

<param name="Цвет">Красный</param>

</offer>

<offer id="123_blue" group_id="123" available="true">

<name>Футболка (синий)</name>

<param name="Цвет">Синий</param>

</offer>

Важно:

  • Все варианты должны иметь одинаковый group_id.
  • В названии укажите отличительный признак (цвет, размер).
  • Для одежды обязательно заполняйте параметры Размер и Пол.

Что делать, если Озон не принимает YML из-за большого размера?

Ограничение — 50 МБ для ZIP-архива. Решения:

  • Разбейте файл на части по 10 000 товаров.
  • Уменьшите вес изображений: конвертируйте в JPEG с качеством 80%, обрежьте до 800×800 px.
  • Используйте сжатие: архивируйте в ZIP с максимальным уровнем компрессии.
  • Уберите некритичные данные: например, длинные описания или дополнительные изображения (оставьте только главное).

Если даже после этого файл слишком большой, загружайте товары через API пачками по 1 000 штук.