Перенос ассортимента между двумя крупнейшими маркетплейсами России — Ozon и Wildberries — задача, с которой рано или поздно сталкивается каждый мультибрендовый продавец. Вручную копировать сотни карточек нереально: это заняло бы недели и гарантировало бы ошибки в атрибутах, ценах и остатках. К счастью, есть легальный способ автоматизации — через API Seller IP, который позволяет синхронизировать каталоги между платформами с минимальными затратами времени.
Но здесь продавцов поджидают подводные камни: разная структура данных на Ozon и WB, ограничения API, необходимость трансформации атрибутов (например, color_name на Озоне vs color на ВБ). Эта статья — не теоретический обзор, а практические шаги с примерами кода, таблицей соответствия полей и решениями типичных ошибок, которые экономят дни работы. Мы разберём два сценария: перенос через готовые сервисы (типа МойСклад или Атоматик) и прямой экспорт через Seller IP для тех, кто готов писать скрипты.
Если вы никогда не работали с API маркетплейсов, не пугайтесь: мы начнём с базовых понятий и постепенно дойдём до технических деталей. Главное — понимать, что универсального решения нет: для одежды и электроники потребуются разные подходы к маппингу атрибутов. Готовьтесь к тому, что первый перенос займёт время, но последующие обновления будут занимать минуты.
1. Почему Seller IP — лучший способ переноса карточек
На первый взгляд, проще всего скачать Excel-отчёт с Ozon и загрузить его на Wildberries через личный кабинет. Но этот метод работает только для 10–15 товаров. При масштабировании вы столкнётесь с проблемами:
- 🔄 Разная структура файлов: Озон выдаёт данные в формате
JSON/CSVс сотней колонок, а ВБ требуетXLSXс жёстко заданными полями. - 📦 Отсутствие автоматической синхронизации: после первой загрузки вам придётся вручную обновлять остатки, цены и статусы.
- ⚡ Ограничения API: Wildberries блокирует массовую загрузку через интерфейс (максимум 500 товаров в час).
Seller IP решает эти проблемы, так как:
- Предоставляет единый интерфейс для работы с API обоих маркетплейсов.
- Позволяет трансформировать данные на лету (например, конвертировать
ozon_category_idвwb_subject). - Поддерживает реальное время: изменения на Озоне можно мгновенно отразить на ВБ.
Кроме того, Seller IP даёт доступ к расширенным функциям, например:
- 📊 Аналитика продаж по обоим маркетплейсам в одном дашборде.
- 🔄 Автоматическое резервирование остатков, чтобы избежать оверсела.
- 🛡️ Проверка на дубли перед загрузкой (важно для брендовых товаров).
2. Подготовка: что нужно сделать до переноса
Прежде чем приступать к технической части, выполните обязательные шаги:
1. Проверьте соответствие категорий. На Ozon и Wildberries разные иерархии. Например:
- На Озоне:
Электроника → Смартфоны → Apple - На ВБ:
Электроника → Телефоны и гаджеты → Смартфоны → iPhone
Используйте справочник категорий WB и документацию Ozon для маппинга.
2. Соберите обязательные атрибуты. Wildberries требует поля, которых нет на Озоне:
| Атрибут на Ozon | Атрибут на WB | Пример трансформации |
|---|---|---|
color_name |
color |
Если на Озоне "Цвет: Чёрный", на ВБ должно быть "Черный" (без кавычек). |
images (массив) |
photos (строка с URL) |
Нужно конвертировать из [{"url": "..."}] в "url1;url2;url3". |
price |
price |
Цена на ВБ должна быть не ниже РРЦ (если есть). |
stock |
quantity |
На ВБ нельзя указывать остатки больше 9999. |
3. Получите доступ к API:
- На Ozon: перейдите в
Личный кабинет → Настройки → API-ключии создайте ключ с правамиread:products. - На Wildberries: в
Личном кабинете → APIзапросите доступ кMarketplace API(может занять до 3 дней).
Проверено соответствие категорий|Собраны все обязательные атрибуты|Получены API-ключи от Ozon и WB|Создана тестовая карточка на WB для проверки|Подготовлен бэкап данных Озон-->
3. Пошаговая инструкция: перенос через Seller IP
Рассмотрим два варианта: с использованием готового сервиса (для новичков) и через прямой API-запрос (для продвинутых).
Вариант 1: Через сервис-интегратор (МойСклад, Атоматик, Seller IP)
Если вы не хотите писать код, используйте один из сервисов:
- Авторизуйтесь в сервисе и подключите аккаунты Озон и ВБ.
- Настройте маппинг полей. Например, в Seller IP это делается в разделе
Интеграции → Правила трансформации. - Запустите тестовую синхронизацию для 1–2 товаров. Проверьте:
- 📸 Корректность загрузки изображений.
- 🏷️ Совпадение атрибутов (цвет, размер, материал).
- 💰 Соответствие цен (учитывайте комиссию ВБ!).
Плюсы метода:
- ✅ Не нужен программист.
- ✅ Встроенная обработка ошибок.
- ✅ Поддержка клиентской службы.
Минусы:
- ❌ Платная подписка (от 1 500 ₽/мес).
- ❌ Ограниченная гибкость (не все атрибуты можно трансформировать).
Вариант 2: Прямой перенос через API (для разработчиков)
Если вы готовы писать скрипты, вот пошаговый алгоритм:
Шаг 1. Экспорт данных с Ozon
Используйте endpoint:
GET https://api-seller.ozon.ru/v2/product/list
Headers:
- Client-Id: [ваш_client_id]
- Api-Key: [ваш_api_key]
Пример ответа (упрощённо):
{
"items": [
{
"id": 12345,
"name": "Смартфон Apple iPhone 13 128GB",
"category_id": 17035609,
"price": "79990",
"images": [{"url": "https://..."}],
"attributes": [
{"name": "color_name", "value": "Синий"},
{"name": "brand", "value": "Apple"}
]
}
]
}
Шаг 2. Трансформация данных для WB
Пример кода на Python для конвертации:
def transform_ozon_to_wb(ozon_product):
wb_product = {
"name": ozon_product["name"],
"brand": next(a["value"] for a in ozon_product["attributes"] if a["name"] == "brand"),
"color": next(a["value"] for a in ozon_product["attributes"] if a["name"] == "color_name"),
"price": int(ozon_product["price"]),
"photos": ";".join(img["url"] for img in ozon_product["images"]),
"quantity": min(ozon_product["stock"], 9999) # Ограничение WB
}
return wb_product
Шаг 3. Загрузка на Wildberries
Используйте endpoint:
POST https://suppliers-api.wildberries.ru/content/v1/cards/upload
Headers:
- Authorization: [ваш_api_key_wb]
Body:
{
"data": [{"json": [преобразованные_данные]}]
}
4. Типичные ошибки и как их избежать
Даже при автоматизации переноса продавцы сталкиваются с проблемами. Вот TOP-5 ошибок и их решения:
| Ошибка | Причина | Решение |
|---|---|---|
400 Bad Request: Invalid category |
Некорректный subject или vendorCode. |
Проверьте соответствие категорий в справочнике WB. |
403 Forbidden: Price too low |
Цена ниже РРЦ или минимальной цены категории. | Увеличьте цену на 5–10% от РРЦ или запросите разрешение у WB. |
504 Gateway Timeout |
Слишком большой запрос (>1 000 товаров). | Разбейте на пакеты по 500–800 товаров. |
| Карточка не отображается в каталоге | Не заполнены обязательные атрибуты (например, country для одежды). |
Добавьте недостающие поля через PATCH-запрос. |
| Изображения не загружаются | URL изображений с Ozon недоступны для WB. | Скачайте изображения на свой сервер и укажите прямые ссылки. |
Самая частая проблема — несовпадение атрибутов. Например, на Озоне может быть size: "M", а на ВБ требуется size: {"rus": "M", "orig": "M"}. Решение:
# Пример трансформации размера для WB
if "size" in ozon_attributes:
wb_product["sizes"] = [
{
"rus": ozon_attributes["size"],
"orig": ozon_attributes["size"],
"vendorSize": ozon_attributes.get("vendor_size", "")
}
]
Что делать если WB отказывает в модерации?
Если карточка отклонена с формулировкой "Несоответствие товара заявленным характеристикам", проверьте:
1. Совпадение бренда в названии и атрибуте `brand`.
2. Качество изображений — на ВБ требуется белый фон (RGB 255,255,255) и разрешение не менее 800x800.
3. Описание — должно содержать ключевые слова из названия и не дублировать его.
Если проблема не решена, напишите в поддержку WB с указанием `nmId` товара и скриншотом ошибки.
5. Автоматизация обновлений: как синхронизировать остатки и цены
Одноразовый перенос — это только половина задачи. Главное — настроить регулярную синхронизацию, чтобы:
- 📉 Остатки обновлялись при продаже на Озоне.
- 💰 Цены корректировались с учётом акций на обоих маркетплейсах.
- ⚡ Статусы ("в наличии"/"под заказ") совпадали.
Способ 1: Вебхуки (рекомендуется)
Настройте уведомления об изменениях на Озоне:
POST https://api-seller.ozon.ru/v1/webhook/subscribe
{
"events": ["stocks_updated", "price_updated"],
"url": "https://ваш-сервер.com/ozon-webhook"
}
Пример обработчика на Python:
from flask import Flask, request
app = Flask(__name__)
@app.route('/ozon-webhook', methods=['POST'])
def handle_webhook():
data = request.json
if data['event'] == 'stocks_updated':
update_wb_stock(data['product_id'], data['new_stock'])
return "OK", 200
Способ 2: Cron-задачи
Если вебхуки не доступны, запускайте скрипт синхронизации по расписанию (например, каждые 4 часа):
0 /4 /usr/bin/python3 /path/to/sync_script.py
6. Оптимизация карточек для Wildberries: что изменить после переноса
Перенос — это только техническая часть. Чтобы товары продавались на ВБ, их нужно адаптировать под алгоритмы маркетплейса:
1. Название товара
На Озоне допускаются длинные названия с ключевыми словами, а на ВБ действуют жёсткие правила:
- ✅ Правильно:
Смартфон Apple iPhone 13 128GB Синий - ❌ Неправильно:
Apple iPhone 13 128 ГБ, новый, гарантия, быстрая доставка(лишние слова).
2. Описание
Wildberries ранжирует карточки с:
- 📝 Структурированным текстом (подзаголовки, списки, абзацы).
- 🔍 Ключевыми словами из поисковых запросов (используйте инструмент WB).
- 📏 Техническими характеристиками в таблице (для электроники).
3. Цена и скидки
На ВБ действуют особенности:
- 💰 Комиссия выше, чем на Озоне (до 15% для электроники). Учитывайте это в цене.
- 🎁 Скидки лучше устанавливать через
Promo API, а не вручную. - 📈 Динамическое ценообразование: используйте сервисы вроде Pricer24 для автоматического подбора цены под конкурентов.
7. Альтернативные способы переноса (если Seller IP не подходит)
Если по какой-то причине Seller IP вам не доступен, рассмотрите альтернативы:
1. Через 1C или МойСклад
Если вы ведёте учёт в 1C, можно настроить выгрузку:
- 📥 Импорт данных с Озон через
CommerceML. - 📤 Экспорт на ВБ через модуль WB Интеграция (стоимость от 5 000 ₽).
2. Парсинг + Excel
Для небольших каталогов (до 500 товаров):
- Спарсите данные с Озон через Ozon Parser (например, сервис).
- Обработайте файл в Excel:
- 🔄 Замените названия колонок (например,
ozon_id→vendorCode). - 📊 Добавьте недостающие поля (например,
countryдля одежды).
- 🔄 Замените названия колонок (например,
Личный кабинет WB → Товары → Импорт.3. Готовые решения от партнёров WB
Wildberries рекомендует несколько сервисов для миграции:
- 🛠️ RetailCRM — для комплексного управления.
- 📦 МойСклад — для синхронизации складов.
- 🤖 Атоматик — для автоматизации без кода.
FAQ: Ответы на частые вопросы
❓ Можно ли перенести отзывы с Озон на Wildberries?
Нет, Wildberries не предоставляет API для импорта отзывов. Однако вы можете:
- 📸 Добавить скриншоты отзывов с Озон в галерею товара на ВБ (с пометкой "Отзыв с Ozon").
- 📊 Указать средний рейтинг в описании (например: "4.8★ на Ozon по 120 отзывам").
⚠️ Внимание: Не копируйте текст отзывов напрямую — это может быть расценено как манипуляция рейтингами.
❓ Как перенести товары с вариантами (цвет/размер)?
Для товаров с вариантами (SKU) на Озоне и NMID на ВБ:
- Сгруппируйте варианты по
parent_id(на Озоне) илиgroupId(на ВБ). - Для каждого варианта укажите:
{"vendorCode": "AR123-BLUE-M", // Артикул + цвет + размер
"sizes": [{"rus": "M", "orig": "M"}],
"colors": [{"name": "Синий"}]
}
- Используйте
PATCH /cards/groupдля связывания вариантов в группу.
Важно: На ВБ все варианты должны иметь одинаковое название, кроме атрибутов цвета/размера.
❓ Сколько времени занимает модерация на Wildberries?
Сроки зависят от категории:
- ⚡ Быстрая модерация (1–6 часов): книги, канцтовары, некоторые аксессуары.
- ⏳ Стандартная (1–3 дня): электроника, одежда, обувь.
- 🐢 Долгая (до 7 дней): товары с сертификатами (например, детские игрушки).
🔹 Как ускорить:
- Заполните все обязательные атрибуты (особенно
countryиmaterial). - Прикрепите сертификаты (если требуются).
- Используйте предмодерацию в личном кабинете.
❓ Можно ли перенести товары с Ozon на WB бесплатно?
Да, но с ограничениями:
- 🆓 Бесплатно:
- Ручной перенос через Excel (до 500 товаров).
- Самописные скрипты на Python (если у вас есть навыки программирования).
- 💰 Платно:
- Сервисы типа Seller IP (от 1 500 ₽/мес).
- Партнёрские интеграции (например, RetailCRM — от 3 000 ₽/мес).
⚠️ Внимание: Бесплатные способы требуют много времени на поддержку. Например, при изменении API Озон или WB ваш скрипт может перестать работать.
❓ Что делать, если товар на Озоне есть, а на WB его нет в справочнике?
Если ваш товар отсутствует в каталоге Wildberries:
- Проверьте справочник номенклатуры WB по:
- 🏷️ Бренду (например,
brand: "Apple"). - 📦 Артикулу (попробуйте поиск по
vendorCode).
- 🏷️ Бренду (например,
- 📋 Заполните заявку на добавление (для брендовых товаров).
- 🔄 Или создайте карточку как "Свой товар" (для non-brand).
🔹 Важно: Для некоторых категорий (например, лекарства или алкоголь) добавление нового товара невозможно — их можно продавать только из существующего каталога WB.