Все кейсы

Как мы разделили розницу и опт — простым языком

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

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

Инфраструктуру построили в Yandex Cloud на serverless-стеке — чтобы было дешево, масштабируемо и без обслуживания серверов.


Основная идея

Всё работает по принципу:

Событие → Очередь → Обработчик → Вторая база

И в обратную сторону — точно так же.


Как это работает

В розничной базе меняется статус заказа

Например, заказ получил статус «Передать в опт».

МойСклад отправляет вебхук — это просто уведомление:

«Произошло событие, вот ID документа»

Вебхук приходит в API Gateway

Запрос попадает в облачный gateway (в Yandex Cloud). Мы не обрабатываем заказ сразу — таймаут работы вебхука в МойСклад 1500ms.

Мы делаем проще:


Сообщение попадает в очередь

Очередь нужна для надёжности:

Очередь — это буфер между «событием» и «обработкой».


Функция обрабатывает сообщения из очереди

Когда в очереди появляется сообщение, триггер запускает serverless-функцию.

Она:

  1. Берёт ID заказа
  2. Запрашивает полный заказ из розничной базы
  3. Для каждого товара ищет соответствие в оптовой базе

У нас для этого используется поле syncID:

После сопоставления:

Готово.


Обратное направление (опт → розница)

Когда в оптовой базе:

срабатывает тот же алгоритм:

  1. Вебхук
  2. Gateway
  3. Очередь
  4. Функция
  5. Создание приёмки в розничной базе

Архитектура зеркальная.


Почему мы сделали именно так

Надёжность

Очередь гарантирует, что событие не потеряется.

Масштабируемость

Serverless автоматически обрабатывает пики нагрузки.

Простота

Нет серверов, нет сложной инфраструктуры.

Контроль

Все соответствия товаров и документов хранятся в базе (YDB).

Можно всегда понять:


Что это дало бизнесу


100+ Проектов
24/7 Поддержка

Управляйте бизнесом на основе данных, а не интуиции

Внедрение МойСклад для контроля ключевых метрик и снижения операционных рисков на 40%, что позволит принять решения для увеличения прибыли на 15% в первый год

Обсудить внедрение
CTA Image