Аудит и схема обмена
Разбираем, какие данные о «ERP и учёт» уже ведутся и что умеет API «amoCRM»: методы, лимиты, тестовый контур.
- Карта сущностей и владельцев данных
- Ограничения API и частота запросов
- Согласование правил конфликтов
Выберите тему — соберём контекст
Как связать ERP и учёт и amoCRM в интернет-магазине: какие данные ходят между системами, где типовые ошибки и что определяет стоимость работ.
Состав работ по интеграции «ERP и учёт» с системой «amoCRM». Набор уточняется после обследования API и данных.
Разбираем, какие данные о «ERP и учёт» уже ведутся и что умеет API «amoCRM»: методы, лимиты, тестовый контур.
Реализация передачи данных в обе стороны с идемпотентностью, ограничителем частоты и журналом операций.
Проверяем, как интеграция влияет на чеки по 54-ФЗ, коды маркировки, счета и УПД: где формируется документ и в какой момент.
Прогон нештатных сценариев, суточная сверка и оповещение об ошибках, документация по обмену для поддержки.
От обследования до продуктивного обмена с мониторингом ошибок.
Проверяем доступные методы, лимиты, тестовый контур и то, какие данные уже ведутся на обеих сторонах. Фиксируем владельца каждой сущности.
Описываем сущности, направления, частоту и правила конфликтов. Согласуем, что делать при недоступности внешней системы.
Пишем обмен с очередями, повторными попытками и журналом, проверяем нештатные сценарии на тестовых данных.
Выводим обмен в продуктив, включаем суточную сверку и оповещения об ошибках, передаём документацию по обмену.
Учётный контур: номенклатура, цены, остатки, заказы, резервы, документы и себестоимость. Для магазина это источник правды по товару и главный потребитель заказов.
Типовые системы на этом конце: 1С:УТ, 1С:ERP, 1С:КА, «МойСклад», SAP, Microsoft Dynamics.
amoCRM — CRM с воронками продаж и цифровыми воронками: сделки, этапы, задачи, интеграции с телефонией и мессенджерами.
Как с ней работать технически: API v4 с OAuth-авторизацией, вебхуками и подписками на события. Лимиты по частоте запросов привязаны к аккаунту, а превышение приводит к временной блокировке — нужен ограничитель и повторные попытки.
Из учётной системы идут номенклатура, характеристики, цены и остатки; в неё уходят заказы, оплаты, отгрузки и данные для документов (счёт, УПД, накладная).
Мы всегда описываем обмен в виде таблицы «сущность — направление — частота — владелец данных». Без этого документа интеграция работает до первой нештатной ситуации, после чего расхождения ищут вручную.
«ERP и учёт» и «amoCRM» отвечают за разные участки процесса, поэтому прямой коннектор между ними нужен не всегда — чаще они сходятся в одной из систем контура. CRM не хранит товарные остатки, платежи и чеки — она отвечает за отношения с клиентом. Обмен строим по единому ключу (телефон, e-mail или ID клиента), иначе появляются дубли контактов, а синхронизацию запускаем очередями с ограничителем частоты запросов.
Реализация зависит от того, есть ли у системы открытый API и какие у него лимиты. Если API нет или он ограничен, обмен строим через промежуточный слой: очередь, промежуточную базу или файловый обмен по расписанию с журналом обработки.
Обмен ломается на расхождениях: цены на сайте и в базе разошлись, остаток продан дважды, заказ создан повторно. Причины — отсутствие идемпотентности, обмен файлами без журнала и отсутствие контроля версий справочников. Правильный контур: очередь, журнал операций, сверка раз в сутки и явный владелец каждого поля.
Мы закладываем в интеграцию ограничитель частоты запросов, повторные попытки с нарастающей паузой, журнал операций и оповещение при ошибках. Это дешевле, чем разбирать последствия сбоя в высокий сезон.
Как и любая CRM, amoCRM не хранит остатки и не формирует чеки: это система про отношения и сделки. Товарные позиции поддерживаются, но не являются учётным регистром.
Часть ограничений обходится архитектурой (кэш, очередь, разделение каналов обмена), часть — нет: тогда мы предлагаем изменить процесс, а не имитировать его в коде.
На стоимость влияют: наличие и качество API, количество сущностей в обмене, требования к истории (загружать ли прошлые заказы), необходимость синхронизации в реальном времени, требования к маркировке и чекам, а также готовность данных на обеих сторонах.
Сроки обычно определяет не разработка, а согласования: доступы к системе, тестовый контур, договор с провайдером, правила расчёта и требования бухгалтерии. Мы выносим эти пункты в чек-лист подготовки, чтобы они не останавливали работы в середине проекта.
Первый шаг — обследование: смотрим, какие данные уже ведутся, кто владелец каждой сущности и какие ограничения есть у API. Затем делаем прототип обмена на тестовом контуре, проверяем нештатные сценарии (повтор, отмена, частичное выполнение) и только после этого выводим интеграцию в продуктив.
После запуска передаём документацию по обмену и журнал операций, чтобы поддержку можно было передать другой команде без обратного проектирования кода.
Готовые коннекторы закрывают типовой сценарий, но почти всегда требуют доработки под ваши правила: момент расчёта и чеки, распределение остатков по каналам, частичные отгрузки и возвраты. Мы сначала проверяем, что умеет готовое решение, и предлагаем его, если оно дешевле собственной разработки.
Обмен строится так, чтобы недоступность внешней системы не останавливала продажи: события складываются в очередь, повторяются с нарастающей паузой и обрабатываются после восстановления. Покупатель при этом видит корректный статус заказа, а не ошибку.
На тестовом контуре прогоняем нештатные сценарии: повторная передача, отмена, частичная отгрузка, возврат, расхождение цен. После запуска включаем сверку раз в сутки и оповещение об ошибках, чтобы расхождения находились до того, как их заметит клиент или бухгалтерия.
Простой обмен по одному направлению с готовым API занимает от одной до трёх недель. Двусторонняя синхронизация с историей, маркировкой и несколькими каналами продаж — от полутора месяцев, потому что включает проектирование, тестовый контур и приёмку на реальных данных.
Пришлите описание систем и текущего обмена — предложим схему и оценим работы.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.