3

WebTech

Личный кабинет

Проекты, коммерческие предложения, документы и отчёты — в одном месте.

Войти Зарегистрироваться Забыли пароль?
Службы доставки

Интеграция: Службы доставки + ЮKassa

Как связать Службы доставки и ЮKassa в интернет-магазине: какие данные ходят между системами, где типовые ошибки и что определяет стоимость работ.

Решения

Что входит в работы

Состав работ по интеграции «Службы доставки» с системой «ЮKassa». Набор уточняется после обследования API и данных.

Аудит и схема обмена

Разбираем, какие данные о «Службы доставки» уже ведутся и что умеет API «ЮKassa»: методы, лимиты, тестовый контур.

  • Карта сущностей и владельцев данных
  • Ограничения API и частота запросов
  • Согласование правил конфликтов

Разработка обмена

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

  • Очереди и повторные попытки
  • Идемпотентные ключи операций
  • Журнал обмена и разбор ошибок

Кассовый и документный контур

Проверяем, как интеграция влияет на чеки по 54-ФЗ, коды маркировки, счета и УПД: где формируется документ и в какой момент.

  • Момент расчёта и признак чека
  • Код маркировки в чеке
  • Счета, УПД и ЭДО

Приёмка и мониторинг

Прогон нештатных сценариев, суточная сверка и оповещение об ошибках, документация по обмену для поддержки.

  • Тесты на реальных данных
  • Суточная сверка расхождений
  • Оповещения и регламент поддержки
Процесс

Этапы интеграции

От обследования до продуктивного обмена с мониторингом ошибок.

  1. 1 3–5 дней

    Аудит систем и API

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

  2. 2 1–2 недели

    Проектирование обмена

    Описываем сущности, направления, частоту и правила конфликтов. Согласуем, что делать при недоступности внешней системы.

  3. 3 1–4 недели

    Реализация и тестовый контур

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

  4. 4 1 неделя

    Запуск и мониторинг

    Выводим обмен в продуктив, включаем суточную сверку и оповещения об ошибках, передаём документацию по обмену.

Что значит интеграция «Службы доставки»

Доставка: расчёт стоимости и срока, выбор пункта выдачи или курьера, создание отправления, печать наклеек, отслеживание и обработка возвратов. Для части служб доступен наложенный платёж и частичный выкуп.

Типовые системы на этом конце: СДЭК, Boxberry, Почта России, DPD, Яндекс Доставка, 5Post, собственная курьерская служба.

Что за система «ЮKassa»

ЮKassa — российский платёжный провайдер: карты, СБП, кошелёк ЮMoney, рассрочка, рекуррентные платежи, чеки и возвраты. Часто закрывает сразу и приём платежей, и фискализацию.

Как с ней работать технически: REST API с идемпотентными ключами, вебхуками по событиям платежа и возврата, отдельной тестовой средой. Есть готовые SDK для PHP и документация по сценариям холдирования и двухстадийной оплаты.

Какие данные ходят между системами

В службу доставки уходят габариты и вес, адрес, состав заказа и объявленная ценность; обратно — тариф, срок, номер отправления, статусы и сумма к оплате при получении.

Мы всегда описываем обмен в виде таблицы «сущность — направление — частота — владелец данных». Без этого документа интеграция работает до первой нештатной ситуации, после чего расхождения ищут вручную.

Точка стыка: Службы доставки и ЮKassa

«Службы доставки» и «ЮKassa» отвечают за разные участки процесса, поэтому прямой коннектор между ними нужен не всегда — чаще они сходятся в одной из систем контура. Платёжный провайдер участвует только в денежном контуре: суммы и статусы уходят в платёжную систему, подтверждение приходит вебхуком с подписью. Обязательны проверка подписи, идемпотентность и ежедневная сверка с отчётом провайдера — иначе расхождение обнаружится в конце месяца.

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

Что обычно ломается

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

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

Ограничения стороны «ЮKassa»

Холдирование ограничено по сроку, а чеки можно формировать как через саму ЮKassa, так и через свою кассу — второй вариант требует отдельной интеграции с ОФД. Для маркируемых товаров код маркировки нужно передавать в чек.

Часть ограничений обходится архитектурой (кэш, очередь, разделение каналов обмена), часть — нет: тогда мы предлагаем изменить процесс, а не имитировать его в коде.

Что влияет на стоимость и сроки

На стоимость влияют: наличие и качество API, количество сущностей в обмене, требования к истории (загружать ли прошлые заказы), необходимость синхронизации в реальном времени, требования к маркировке и чекам, а также готовность данных на обеих сторонах.

Сроки обычно определяет не разработка, а согласования: доступы к системе, тестовый контур, договор с провайдером, правила расчёта и требования бухгалтерии. Мы выносим эти пункты в чек-лист подготовки, чтобы они не останавливали работы в середине проекта.

Как мы работаем

Первый шаг — обследование: смотрим, какие данные уже ведутся, кто владелец каждой сущности и какие ограничения есть у API. Затем делаем прототип обмена на тестовом контуре, проверяем нештатные сценарии (повтор, отмена, частичное выполнение) и только после этого выводим интеграцию в продуктив.

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

Частые вопросы

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

Обмен строится так, чтобы недоступность внешней системы не останавливала продажи: события складываются в очередь, повторяются с нарастающей паузой и обрабатываются после восстановления. Покупатель при этом видит корректный статус заказа, а не ошибку.

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

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

Обсудим интеграцию «Службы доставки» и «ЮKassa»

Пришлите описание систем и текущего обмена — предложим схему и оценим работы.