Интеграция Wildberries и МойСклад

Автоматизируем процессы и повышаем эффективность бизнеса

content

Как автоматизировать учёт товаров на Wildberries

Делится опытом Татьяна Цикунова, системный аналитик сервиса МойСклад

МойСклад — авторизованный сервис для работы с WB API, который упрощает складской учёт, продажи и общение с клиентами на Wildberries.


Проблема

Ручное управление товарами, запасами и заказами увеличивает вероятность ошибок и задержек в работе, что может повлиять на продажи и отразиться на ваших клиентах.


Задача

Автоматизировать обмен данными и решить ключевые задачи продавцов, рассчитать фактическую маржинальность продаж и сравнивать её с другими каналами.

Для FBS:

  • Настроить своевременную передачу данных об остатках, чтобы продавать только товары, которые есть в наличии.
  • Обновлять цены для поддержания маржинальности.
  • Получать заказы в режиме реального времени.
  • Ускорить подготовку отгрузок на склад Wildberries.
  • Отслеживать статус заказов на всех этапах.

Для FBO:

  • Контролировать актуальные остатки.
  • Прогнозировать запасы и поставки.
  • Формировать поставки с учётом прогноза продаж.

Решение

Интеграция API помогает:

  • Синхронизировать данные о товарах, остатках, ценах и заказах каждые 5 минут.
  • Обрабатывать заказы в интерфейсе сервиса.
  • Настроить сопоставление товаров для корректного отображения данных на всех площадках.
  • Получать отчёты комиссионера автоматически.

Результат

  • Ускорили обработку заказов.
  • Исключили ошибки и ручные операции.
  • Настроили обновление остатков в реальном времени.
  • Снизили риск блокировки аккаунта и карточек товаров.

Как устроена интеграция

Интеграция разработана с учётом потребностей продавцов и охватывает товары, остатки, заказы, цены и склады


Товары

Это ключевая сущность на маркетплейсах, которую необходимо синхронизировать, чтобы передавать остатки, получать заказы и обновлять цены

Сопоставляем товары

Cценарии работы:

  1. Товары уже есть в системе: сопоставим их с товарами маркетплейса.
  2. Товаров нет в системе: создадим их на основе данных маркетплейса.

WB API позволяет как создавать, так и получать товары. Для создания товара используем методы, которые возвращают информацию, категории и ограничения, после чего можно загружать товары в систему, используя полученные данные.

Дополнительно, можно запросить информацию о товарах на стороне вашей системы. Важно получить только актуальные товары для работы — те, которые на проверке или в архиве, не подойдут. Алгоритм сопоставления товаров ищет соответствие между системой и Wildberries.

Система получает JSON с актуальным списком товаров с Wildberries и ищет соответствия по указанному пользователем идентификатору. Каждый товар может иметь несколько идентификаторов: артикул продавца, штрихкод, уникальный артикул маркетплейса и т.д.

Если совпадение найдено, то в базе данных создаётся запись в таблице связей товаров, модификаций и комплектов. Если совпадений нет, то в системе создаются товар и добавляется запись в таблицу связей. Сервис использует реляционную базу данных, которая оптимально подходит для этих целей.

Модификации и комплекты

Комплекты поступают из маркетплейса как единые товары, без информации об их составе. Поэтому система создаёт только связь между комплектом из маркетплейса и соответствующим товаром в системе. Создание самих комплектов пока не поддерживается.

Что касается модификаций, система точно идентифицирует их по размеру, так как они имеют один и тот же идентификатор товара, в отличии от товаров разного цвета. Также есть возможность создавать размеры как отдельные товары или как модификации основного товара.

Когда сопоставляем номенклатуру:

Одинаковый штрихкод Данные WB Данные МС Сопоставляем
у товара в WB и товара в МС Товар со штрихкодом = 1 Товар со штрихкодом = 1 Товар и маппинг
у модификации в WB и товара в МС Модификация со штрихкодом = 1 Товар со штрихкодом = 1 Товар и маппинг
у товара в WB и модификации в МС Товар со штрихкодом = 1 Товар_1, Модификация со штрихкодом = 1 Модификация и маппинг
у модификации в WB и модификации в МС Модификация со штрихкодом = 1 Товар_1, Модификация со штрихкодом = 1 Модификация и маппинг

При включении автосинхронизации система каждые 15 минут запрашивает товары из маркетплейса и обновляет данные в МоёмСкладе.

Чтобы пользователь видел связь между товарами в МоёмСкладе и маркетплейсами, в карточке товара отображаются иконка «WB».

Диаграмма BPMN:

Image

Остатки

C Wildberries можно:

  1. Передавать данные об остатках товаров, которые хранятся и продаются со складов Wildberries (FBO).
  2. Передавать и получать остатки по товарам, которые продаются со склада продавца (FBS).

Остатки на складах Wildberries (FBO)

По этой модели продавец отгружает товары на склады Wildberries, отслеживает заказы и остатки, принимает решение о необходимости дозакупок и дополнительных поставок. Через WB API можно получить данные об остатках на складах, с разбивкой по каждому складу. В МоёмСкладе реализован отчёт, который:

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

Остатки на складах продавца (FBS)

В таком случае важно своевременно передавать данные об остатках, чтобы не продавать товары, которых нет в наличии. Для этого система синхронизирует остатки, чтобы точно показывать доступное количество количество товара.

Шаги для передачи остатков:

  1. Определить, с какого склада на какой нужно передать данные. Пользователь настраивает соответствие складов в системе МоегоСклада в разделе синхронизации. Эти данные сохраняются в отдельной таблице в базе данных.
  2. Определить, по каким товарам нужно передавать остатки. Для этого используется таблица связи товаров.
  3. Рассчитать, сколько каждого товара осталось на выбранном складе.
  4. Вызвать метод API и передать данные в нужном формате.

Для комплектов система проводит специальный расчёт — остатки рассчитываются исходя из количества доступных комплектующих.

Если пользователь активирует автосинхронизацию остатков, то система начнёт отправлять обновлённую информацию об изменениях каждые 5 минут. Тогда маркетплейс будет знать актуальные данные о товарах, после чего можно переходить к обработке заказов.


Заказы

Чтобы получить новые заказы, система запрашивает данные через API. Для работы с FBS-заказами можно использовать методы, указанные в документации API.

Чтобы не пропустить заказы, система периодически запрашивает данные у маркетплейса. Процесс работы с заказами аналогичен процессу работы с товарами: используется таблица связи, которая хранит информацию о том, что заказ, созданный в МоёмСкладе, пришёл из конкретного маркетплейса.

Обработка заказов во время изменения статусов

Если продавец изменит статус заказа между синхронизациями, то заказ не попадёт в список новых и не будет создан в системе. Чтобы поддерживать правильный учёт, добавлена обработка заказов в других статусах.

Таблица связей для заказов:

Поле Тип Ограничения Описание
id uuid NOT NULL 
ntype int4 NOT NULL Тип сущности, задаваемый числовым значением
entity_id uuid NOT NULL Ссылка на операцию, которую необходимо связать с внешним уникальным идентификатором
external_id varchar(255) NOT NULL Внешний уникальный идентификатор
account_id uuid NOT NULL Аккаунт, владеющий данными
connector_id uuid NOT NULL Идентификатор коннектора

Работа с рейтлимитами

Чтобы не превышать лимиты на вызовы WB API, сервис отслеживает частоту и количество отправляемых запросов и ограничивает их в зависимости от лимитов для каждого метода. Если он превышен, то запрос блокируется до момента, когда можно будет снова выполнить метод. Система повторяет попытку с заданной периодичностью. Алгоритм работы схож с Leaky Bucket. Подробнее смотрите в книге «System Design. Подготовка к сложному интервью» Алекса Сюй.

Синхронизация заказов

Кроме передачи заказов, происходит обмен статусами между Wildberries и системой МоегоСклада. Пользователи могут получать этикетки и собирать заказы через лист подбора.

Мы разобрали обмен тремя ключевыми сущностями: товарами, остатками и заказами. Следующая важная сущность — это цены.


Цены

Wildberries позволяет получать и обновлять цены товаров. При изменениях система обновляет только те цены, которые обновлялись с момента последней синхронизации.

Типы цен:

  • Розничная цена — обязательная в интеграции, отображается как зачёркнутая.
  • Цена со скидкой — фактическая цена продажи товара.

API методы для работы с ценами:

  • Обновление цен для товаров без размеров.
  • Обновление цен для товаров с размерами.
  • Проверка состояния загрузки.
  • Получение детализации загрузки.

В интеграции реализованы следующие возможности работы с ценами:

  • Запись актуальных цен из Wildberries при синхронизации товаров.
  • Импорт цен из маркетплейса в МоёмСкладе.
  • Экспорт цен из МоегоСклада в маркетплейс.
  • Автоматический экспорт цен из МоегоСклада каждые 15 минут.

Пользователь может выбрать любую из этих опций. Сервис показывает разные состояния экрана настройки синхронизации цен в зависимости от того, чем пользуется продавец в данный момент. Для этого хранится настройка в базе с такими вариантами:

  • 0 — импорт/экспорт не производился, импорт доступен.
  • 1 — процесс импорта (в процессе / успешен/ с ошибками).
  • 2 — доступен экспорт с рекомендацией предварительного импорта.
  • 3 — состояние между импортом и экспортом.
  • 4 — завершён первый экспорт.

Также через API можно передавать разные цены для размеров на определённые категории товаров.


Склады

Как в МоёмСкладе, так и в маркетплейсе может быть несколько складов. Это важно учитывать при передаче остатков и обработке заказов, так как товары резервируются на конкретных складах.

Перед передачей остатков надо выбрать, с какого склада на какой будет осуществлена передача.

API методы для работы со складами:

  • Получение списка всех складов Wildberries.
  • Получение складов продавца.
  • Создание, обновление и удаление складов продавца.

Сопоставление складов

Для сопоставления складов в базе данных сервиса хранится выбор пользователя. Селектор складов маркетплейса работает стандартно: при открытии страницы система через API загружает список активных складов и отображает их в выпадающем меню. Пользователь может сопоставить несколько складов из маркетплейса с несколькими складами в МоёмСкладе.


Отчёт о продажах по реализации

Для завершения учёта продаж на маркетплейсе есть функция «Загрузки отчёта о реализации». В личном кабинете Wildberries в разделе «Финансовые отчёты → Отчёты реализации → Еженедельные» продавец может скачать этот отчёт. Его анализ позволяет лучше понять, какие товары приносят наибольшую прибыль.

API Wildberries поддерживает методы для загрузки этих отчётов, поэтому их можно загружать как вручную через систему, так и автоматически — каждую неделю.

В системе МойСклад после загрузки создаётся наш внутренний документ, который называется «Полученный отчёт комиссионера». В него вносится информация о продажах, возвратах и прочих расходах.


Как отслеживать изменения в WB API

Поддержка и развитие интеграции требуют постоянного внимания к изменениям в API, таким как:

  • Обновление версии метода.
  • Изменения в запросах или ответах.
  • Удаление методов и рекомендации на замену.
  • Долговременная неработоспособность метода.
  • Переход на новые токены безопасности.
  • Изменение лимитов на вызовы методов.

Сервис постоянно следит за новостями в телеграм-канале и журнале изменений WB API, чтобы избежать сбоев в интеграции.

Кейсы

Найдите решение по другим вопросам