Exabit Logo

Сколько стоит интеграция двух систем - и почему «просто связать по API» легко дорожает в 3 раза

20 марта 2025 · 4 мин чтения ·
Сколько стоит интеграция двух систем - и почему «просто связать по API» легко дорожает в 3 раза

На первом звонке клиент сказал: «Тут сайт и 1С, обмен заказами, думаю, пара недель». После discovery мы разложили процесс по шагам и увидели 12 статусов, 4 типа оплат, 3 юрлица, несколько складов и частичные возвраты. Само подключение к API заняло меньше трети работ, а итоговая оценка выросла в 2,3 раза.

Такая история повторяется часто. Бизнесу кажется, что нужно просто передать данные из А в Б, а по сути надо собрать рабочий процесс без ручных дыр, потерь заказов и споров по статусам.

Дороже всего не API, а то, как реально живет процесс

У заказа есть жизненный цикл, и каждая система описывает его по-своему. В одном месте «оплачен» - это финальный статус, в другом - цепочка из «счет выставлен», «деньги пришли», «документы проведены». Пока это не разложили на шаги, смета почти всегда выглядит слишком оптимистично.

У нас был проект для оптовой компании: сайт на Laravel 11, CRM и учетная система на стороне клиента. Сначала обсуждали только обмен заказами. Потом вскрылись резерв товара, ручная проверка менеджером, частичный возврат и автоматическая отправка документов. В итоге цепочка стала такой: сайт -> CRM -> ERP -> склад -> документы.

REST API обычно закрывает 30-40% реальной сложности. Остальное - правила переходов, маппинг полей, повторы, ошибки и ручные исключения.

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

Смету двигают сценарии обмена, а не названия систем

Если грубо, цена интеграции складывается из числа сущностей и числа правил. Заказы, клиенты, остатки, цены, платежи, возвраты, акты - каждая сущность добавляет свою ветку логики и свой набор ошибок.

Один и тот же запрос «передавать заказы» может стоить очень по-разному:

  • 40-80 часов - односторонний обмен по готовому REST API
  • 150-300+ часов - двусторонний обмен с 1С, документами и сложными справочниками
  • еще 20-60 часов - журнал событий, retry, idempotency, уведомления об ошибках
Способ обмена Старт Где дорожает
REST API дешевле маппинг, лимиты, права
Webhooks быстро потеря событий, повторы
SOAP средне/дорого старая документация, сложные схемы
Файловый обмен дешево на входе ручные проверки, задержки
Очереди сообщений дороже на старте проектирование событий

Когда интеграция резко дорожает?
Когда нужен real-time, несколько систем меняют одни и те же данные и нельзя терять события. В этот момент «просто обмен» превращается в отдельный слой логики, который нужно проектировать и поддерживать.

1С и связки CRM -> ERP ломают оценку быстрее всего

С 1С проблема обычно не в названии. Дорожают кастомная конфигурация, учет по юрлицам, документы, характеристики номенклатуры и складские правила, которые исторически завязаны на конкретную компанию. В одном проекте для дистрибьютора около 60% времени ушло на согласование правил: какие склады участвуют, как фильтровать по организациям, что делать с товарами без полных атрибутов.

Когда систем больше трех, прямые связи между всеми начинают мешать. Для таких схем мы обычно ставим отдельный слой интеграции на Node.js 20 + NestJS, Redis для коротких очередей и RabbitMQ, если потоков много и нельзя терять события. Смысл простой: если ERP или склад легли на полчаса, сайт не должен остановиться вместе с ними.

Нужен ли отдельный интеграционный слой сразу?
Не всегда. Если у вас сайт и одна внешняя система, иногда хватает аккуратного REST API. Но при связке CRM, ERP, склада, доставки и платежей такой слой быстро окупается, потому что кто-то должен держать правила в одном месте.

Самый дешевый старт потом часто обходится дороже

Я нормально отношусь к Make и n8n. Для быстрого запуска они полезны. Но был кейс у e-commerce компании, где связку сайта, CRM и склада собрали за 250 тыс. ₽, и на типовом потоке все работало.

Проблемы начались через несколько месяцев: возвраты, частичные оплаты, сезонная нагрузка. Сценарии размножились, правила разъехались по разным автоматизациям, при одном сбое рвалась вся цепочка. Мы переносили логику в отдельный сервис на Node.js 20 + NestJS, Redis и RabbitMQ. Грубо говоря, за быстрый старт заплатили дважды.

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

Нормальная оценка начинается с карты обмена

Если подрядчик сразу называет фикс, не посмотрев API, ограничения и тестовый контур, я бы насторожился. Рабочая оценка начинается с discovery на 5-15 рабочих дней. За это время можно понять, какие сущности ходят между системами, где критичен real-time, какие ручные операции все равно останутся и что считается успешной синхронизацией.

Смотрите, что полезно запросить до старта:

  • сценарии обмена по шагам;
  • границы работ и список допущений;
  • отдельно запуск и отдельно поддержку после релиза.

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

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

Нужна помощь с реализацией?

Расскажите о задаче - предложим решение и дадим оценку сроков.