Flowwow + МойСклад: автоматизация заказов
Кейс

Flowwow + МойСклад: автоматизация заказов

Ситуация

К нам обратился флористический магазин, который продаёт букеты и подарки через несколько каналов: Flowwow, другие маркетплейсы и розничная точка. Складской учёт по всем каналам ведётся в МойСклад — остатки, заказы, отгрузки, контрагенты.

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

Проблема

Тут всё как с обновлением остатков на Озон, про которое мы рассказывали раньше — только масштаб другой. Каждый заказ с Flowwow требовал ручной обработки: открыть кабинет маркетплейса, посмотреть состав заказа, переключиться в МойСклад, проверить остатки, вернуться обратно — принять или отклонить, потом вручную создать заказ покупателя в МойСклад. На один заказ уходило 3–5 минут.

В обычный день заказов с Flowwow — десятки, и это ещё терпимо. Но в пиковые периоды (14 февраля, 8 марта) бизнес принимает до 1 000 заказов в день по всем каналам, около трети из них — с Flowwow. Это порядка 330 заказов, каждый из которых нужно вручную перенести из одной системы в другую. При 3–5 минутах на заказ — 16–28 часов ручной работы в день. Физически невозможно для одного менеджера.

И ещё один момент, который не сразу очевиден: Flowwow учитывает время ответа на заказ при расчёте рейтинга магазина. Если менеджер на обеде или заказ пришёл ночью — он зависает без ответа, рейтинг падает, магазин теряет статус «Супермагазин» и позиции в выдаче. То есть проблема не только в трудозатратах — она ещё и напрямую бьёт по продажам.

Что было бы, если оставить как есть

При 330 заказах с Flowwow в пиковый день ручная обработка требует нескольких менеджеров, занятых исключительно копированием данных между системами. Каждый праздничный сезон — это выбор между наймом временных сотрудников и потерей заказов.

С остатками — та же история, что и на Озон, только последствия жёстче. Между проверкой наличия в МойСклад и принятием заказа в Flowwow проходит несколько минут. За это время товар мог быть продан через другой канал — розницу или другой маркетплейс — и магазин принимает заказ на товар, которого уже нет. Результат: отмена, негативный отзыв, штраф от площадки.

Что мы сделали

Мы построили сервис, который связывает Flowwow и МойСклад. Заказ приходит на маркетплейс — и без участия менеджера появляется в МойСклад, готовый к сборке.

На практике это выглядит так:

  1. Сервис проверяет Flowwow на новые заказы каждые 30 секунд.
  2. Для каждого заказа смотрит состав — какие товары и сколько.
  3. Проверяет, есть ли нужный товар на складе в МойСклад.
  4. Если всё в наличии — принимает заказ на Flowwow и создаёт заказ в МойСклад с данными получателя, позициями и ценами. Менеджер открывает МойСклад и видит готовый к сборке заказ — ничего не нужно перебивать вручную.
  5. Если товара нет — мгновенно отклоняет, чтобы покупатель мог заказать у другого продавца, не теряя времени.
  6. При отгрузке — списывает товар со склада.

Отдельно расскажем про то, что не даёт системе сломаться — потому что в автоматизации заказов надёжность важнее скорости:

  • Заказы обрабатываются строго по очереди. Не бывает ситуации «что-то зависло непонятно где» — если что-то пошло не так, заказ уходит в отдельную очередь ошибок, а не пропадает.
  • Если Flowwow или МойСклад временно лёг — заказ не теряется. Сервис сам повторит попытку, когда связь восстановится.
  • По каждому заказу ведётся лог. Можно открыть любой и посмотреть: принят в 03:47, списан со склада в 11:20, вот ошибка, вот повторная попытка. Очень удобно, когда клиент звонит и спрашивает «а где мой заказ?».
  • Если связь с одной из систем пропала — сервис сразу сигнализирует. Проблема решается до того, как заказы начинают копиться.

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

Результат

Интеграция запущена и прошла уже несколько пиков — в том числе 8 марта.

  • 330 заказов за праздничный день — и менеджер не притронулся к Flowwow. Открывает МойСклад, видит готовые заказы и идёт собирать, не тратя время на копирование.
  • Ответ на заказ — за 30 секунд. Раньше менеджер открывал кабинет, проверял, переходил, создавал — 3–5 минут. Теперь это происходит само, пока менеджер спит.
  • Остатки всегда актуальны. Приёмка резервирует товар, отгрузка списывает. Ситуация «приняли заказ на товар, которого нет» — исключена.
  • Корректные отказы. Заказы без товара отклоняются мгновенно с причиной — покупатель может сразу заказать у другого продавца, не дожидаясь ответа.

В цифрах

МетрикаБылоСтало
Время обработки заказа3-5 минут вручную30 секунд автоматически
Пиковый день (330 заказов)16-28 часов ручной работы0 минут ручной работы
Ответ на заказЗависит от менеджераМгновенно, 24/7
Ошибки по остаткамРегулярные пересортицыИсключены — остатки проверяются в реальном времени

Экономия в пиковый день: 20+ часов ручного труда. Менеджер собирает букеты вместо копирования данных.

Хотите увидеть, как подобная автоматизация работает на других примерах и как она окупается? Смотрите наш разбор.

Ограничения и уроки

Было бы нечестно не рассказать о том, что не покрыто или работает не идеально.

Flowwow не присылает уведомления о новых заказах. Поэтому сервис сам проверяет их каждые 30 секунд. Это работает, но при масштабировании на десятки магазинов потребует оптимизации.

Частичное выполнение невозможно. Если в заказе два товара и одного нет — заказ отклоняется целиком. Это ограничение самого Flowwow: площадка не поддерживает частичную приёмку.

Привязка товаров — ручная. Система определяет соответствие между товарами на Flowwow и позициями в МойСклад. Первоначальную настройку делает продавец. Если добавить новый товар на Flowwow и не привязать его — заказ с этим товаром будет отклонён.

Каталог не синхронизируется. Сейчас автоматизирован только поток заказов (Flowwow → МойСклад). Публикация каталога из МойСклад на Flowwow — отдельная задача, которая в этот проект не входила.

Технический стек

КомпонентТехнология
Серверная частьNode.js, TypeScript
Очередь задачBullMQ, Redis
API маркетплейсаFlowwow REST API (polling каждые 30 сек)
Складской учётМойСклад API
Обработка ошибокRetry с exponential backoff, dead letter queue
ЛогированиеСтруктурированные логи по каждому заказу
ДеплойVPS, systemd

Как устроена обработка заказов

Сервис работает как фоновый процесс на VPS. Каждые 30 секунд он запрашивает список новых заказов через Flowwow API. Каждый заказ попадает в очередь BullMQ — это гарантирует, что заказы обрабатываются строго последовательно и ни один не теряется даже при сбоях.

Для каждого заказа в очереди выполняется цепочка: проверка остатков в МойСклад → принятие/отклонение на Flowwow → создание заказа покупателя в МойСклад → списание при отгрузке. Если на любом шаге происходит ошибка (таймаут, 5xx от API), задача автоматически повторяется с нарастающей задержкой. После нескольких неудачных попыток заказ уходит в dead letter queue для ручного разбора.

Redis хранит состояние очередей и обеспечивает персистентность: при перезапуске сервиса необработанные заказы не теряются.

Читайте также

Не хотите разбираться сами?

Если читали статью и поняли, что руками уже не справляетесь — напишите. Оценим задачу бесплатно и предложим решение.

КМ
Константин
Менеджер проектов · ответит в течение часа

Как автоматизация окупается → Чеклист: 7 процессов для автоматизации →

140+ реализованных проектов
Google Products Expert в команде

Хотите такой же результат?

Расскажите о задаче — предложим решение и покажем релевантные кейсы.

Написать в Telegram

Подписывайтесь — делимся скриптами, кейсами и лайфхаками