Автоматическая синхронизация каталога с Ozon, WB, Яндекс.Маркет
Автоматическая синхронизация каталога с Ozon, Wildberries и Яндекс.Маркет решает проблему рассинхронизации товаров. Представьте: у вас 5000 SKU, три маркетплейса, а менеджеры вручную правят описания и цену. Через месяц рассинхронизация: на Ozon товара нет, на Wildberries цена устарела, на Яндекс.Маркете фото не то. Каждый день менеджеры тратят часы на проверку карточек, а клиенты жалуются на дубликаты и неверные остатки. Эта ситуация знакома многим: по нашей статистике, ручное управление каталогом на трёх площадках занимает до 20 часов в неделю и даёт 15–20% ошибочных карточек. Наша команда инженеров с опытом в e-commerce более 7 лет реализовала свыше 50 проектов по интеграции каталогов с маркетплейсами. Система автоматически передаёт новые товары, обновляет изменения и снимает с продажи удалённые позиции — без ручного труда. Мы используем детектор изменений на основе хеширования, что позволяет обрабатывать 10 000 товаров за 15 минут — в 5 раз быстрее, чем полный перебор.
Почему ручная синхронизация не работает?
Каждый маркетплейс имеет свой формат данных: Ozon требует уникальный идентификатор в поле offer_id, Wildberries использует артикул, Яндекс.Маркет — свой SKU. Категории и атрибуты различаются: на Ozon нужно указать тип товара (например, 'Обувь' в категории 17032750), а на Wildberries — привязаться к предмету. Ручной маппинг 5000 товаров занимает неделю и даёт 20% ошибок. Автоматизация с нашим маппером сокращает время до 3 часов и снижает ошибки до 1%.
Как работает детектирование изменений?
Используем хеширование полей: название, описание, бренд, цена, изображения, размеры. При каждом обновлении продукта в вашей CMS или ERP вычисляется SHA-256 хеш и сравнивается с сохранённым в таблице marketplace_product_mappings. Если хеш отличается — товар попадает в очередь на синхронизацию. Это позволяет снизить нагрузку на API маркетплейсов: типичный магазин с 10 000 товаров и 100 изменениями в день делает лишь 100 запросов вместо 10 000. Для ускорения мы используем очереди Laravel Horizon с задержками между запросами, чтобы не превышать лимиты (например, у Wildberries — 1 запрос/сек).
Почему маппинг категорий — узкое место?
Без маппинга категорий выгрузить товар невозможно: у каждой площадки своё дерево. Мы храним соответствие в БД и даём UI для связывания. Для Ozon используем поиск категорий по названию через API. Для Wildberries — ручной маппинг с автодополнением. Пример:
class CategoryMapper { public function getMarketplaceCategory(int $siteCategoryId, string $marketplace): ?int { return DB::table('category_mappings') ->where('site_category_id', $siteCategoryId) ->where('marketplace', $marketplace) ->value('marketplace_category_id'); } public function suggestOzonCategory(string $categoryName): array { return Http::withHeaders($this->ozonHeaders) ->post('https://api-seller.ozon.ru/v1/description-category/search', [ 'language' => 'DEFAULT', 'query' => $categoryName, ]) ->json('result'); } } Процесс работы: от аудита до деплоя
- Аналитика — разбираем текущие интеграции (CMS, ERP, API маркетплейсов).
- Проектирование — схема данных, маппинг, очереди задач (Laravel Horizon + Redis).
- Реализация — пишем адаптеры для каждого маркетплейса с использованием REST API.
- Тест — проверяем на копии каталога: детектирование изменений, обработка ошибок, нагрузка.
- Деплой — развёртываем на вашем сервере или облаке (AWS, Vercel).
Что входит в итоговое решение?
Кроме адаптеров, мы поставляем дашборд мониторинга на основе Laravel Telescope. Он отображает количество активных, ожидающих и ошибочных товаров по каждому маркетплейсу. Если количество ошибок превышает 5% от общего числа товаров, система отправляет уведомление в Telegram или Slack. Также мы настраиваем логирование всех операций в таблице sync_logs для аудита.
-- Текущее состояние каталога по маркетплейсам SELECT marketplace, COUNT(*) FILTER (WHERE status = 'active') AS active, COUNT(*) FILTER (WHERE status = 'pending') AS pending, COUNT(*) FILTER (WHERE status = 'error') AS errors, MAX(last_synced_at) AS last_sync FROM marketplace_product_mappings GROUP BY marketplace; Сроки и что входит в работу
| Этап | Длительность | Результат |
|---|---|---|
| Аналитика | 2-3 дня | Документация с требованиями и схемой API |
| Проектирование | 3-4 дня | ER-диаграмма, структура очередей |
| Разработка адаптеров | 8-12 дней | Рабочие адаптеры для 3 маркетплейсов |
| Тестирование | 3-5 дней | Отчёт о тестах, исправленные баги |
| Деплой и обучение | 2-3 дня | Система в продакшене, инструкция для менеджеров |
Итого: 18–24 рабочих дня. Гарантия на поддержку — 1 месяц после сдачи. В стоимость входит документация, настройка дашборда и обучение сотрудников. Такая автоматизация позволяет сэкономить от 30 000 до 50 000 рублей ежемесячно на ручном управлении.
Сравнение требований маркетплейсов
| Параметр | Ozon | Wildberries | Яндекс.Маркет |
|---|---|---|---|
| Формат изображений | JPEG, PNG, не более 10 MB | JPEG, не более 8 MB | JPEG, PNG, не более 5 MB |
| Обязательные поля | offer_id, название, цена, остаток | артикул, бренд, цена | SKU, название, URL изображения |
| Лимит API запросов | 10 запросов/сек | 1 запрос/сек | 5 запрос/сек |
Типичные ошибки при синхронизации
Неверный маппинг категорий — товар уходит не туда. Решение: загрузить пробную партию и проверить вручную.
Превышение лимитов API — маркетплейсы блокируют. Решение: queue с задержками и retry через 5 минут.
Разные форматы изображений — площадки требуют определённые размеры. Решение: настроить пресеты сжатия.
Технические детали реализации очередей
Мы используем Laravel Horizon с настройками: каждое задание синхронизации помещается в очередь "marketplace-sync". Между запросами устанавливается задержка, зависящая от лимитов площадки. Для Wildberries, где лимит 1 запрос/сек, задержка составляет 1.2 секунды.
Получите консультацию по автоматизации каталога уже сегодня. Свяжитесь с нами, и мы подготовим индивидуальное решение.







