Загрузка товаров на Озон через 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) |
|
| Размер файла | Не более 50 МБ в архиве (100 МБ для FBO) | Для 50 000 товаров — ~30-40 МБ |
| Обязательные теги | shop, offers, offer, url, price, currencyId |
|
| Формат цены | Целое число без разделителей (рубли в копейках) | 1 299 ₽ → 129900 |
| Изображения | Ссылки должны быть прямыми (без редиректов), формат JPG/PNG, размер ≥ 800×800 px |
|
Особое внимание уделите тегу <categoryId> — он должен соответствовать категориям Озон. Если указать неверный идентификатор, товар не пройдёт модерацию. Например, для смартфонов используйте categoryId="17035677" (категория "Мобильные телефоны").
Пошаговая инструкция: как создать 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 перед загрузкой
Как загрузить YML-файл в личный кабинет Озон
После создания YML остаётся загрузить его на маркетплейс. Это можно сделать через личный кабинет или API. Рассмотрим оба способа.
Способ 1: Через личный кабинет (для начинающих)
- Перейдите в раздел
Товары → Импорт товаров. - Выберите
Загрузить YML-файл. - Заархивируйте файл в
ZIP(если он больше 1 МБ). - Загрузите архив и дождитесь проверки (до 10 минут).
- Исправьте ошибки, если они появились в отчёте.
Озон покажет статус загрузки:
- ✅ Успешно — товары отправлены на модерацию.
- ⚠️ С предупреждениями — часть товаров не загружена (нужно исправить).
- ❌ Ошибка — файл не соответствует требованиям (проверьте кодировку или структуру).
Способ 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 штук.