-15%Скидка 15% на разработку сайта или магазина при старте до конца месяца

Тестирование интеграций с 1С, платёжками и доставкой

Тестирование интеграций с 1С, платёжками и доставкой в магазине на 1С-Битрикс

Магазин может отлично выглядеть и быстро работать, но если обмен с 1С привёз неверные цены, платёжка «потеряла» оплату, а расчёт доставки выдал ноль — покупатель уходит, а бизнес теряет деньги. Интеграции — самое хрупкое место любого магазина на 1С-Битрикс, потому что зависят от внешних систем, форматов данных и сети, которые вы контролируете лишь частично. И ломаются они обычно тихо, на «неудобных» данных, всплывая уже через жалобы клиентов.

В этой статье разберём, как тестировать интеграции магазина на 1С-Битрикс: обмен с 1С по CommerceML, платёжные шлюзы и службы доставки. Пройдём по тестовым средам, сценариям, граничным случаям, колбэкам, мониторингу и приёмке. Такой подход — часть услуги по аудиту и оптимизации 1С, где качество интеграций проверяется системно, а не «на глаз».

Коротко

  • Интеграции хрупки: они зависят от внешних систем и ломаются тихо, на граничных данных.
  • Нужна отдельная тестовая среда с песочницами платёжек, доставки и тестовым узлом 1С.
  • Проверяют не только «успех», но и отказы, отмены, возвраты, повторные и запоздавшие колбэки.
  • После запуска интеграции держат под логированием и мониторингом с алертами на тихие сбои.

Почему интеграции ломаются чаще всего

Внутренняя логика сайта детерминирована: тот же код на тех же данных даёт тот же результат. Интеграции устроены иначе — они общаются с внешними системами, чьё поведение, форматы и доступность меняются независимо от вас. Обновилась 1С, поменялся протокол платёжки, служба доставки изменила API — и то, что работало, ломается без единой правки на вашей стороне.

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

Тестовая среда и песочницы

Первое условие нормального тестирования интеграций — отдельная среда. Проверять оплату и обмен на боевом сайте с реальными деньгами и живым каталогом рискованно и непрофессионально.

Стенд должен быть максимально похож на продакшн — та же версия Битрикса, те же настройки обмена, тот же формат данных. Чем ближе среда к боевой, тем меньше сюрпризов при запуске. Как устроить стабильную инфраструктуру под такие стенды, мы разбираем в статье про инфраструктуру и BitrixVM.

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

Тестирование обмена с 1С

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

Что проверяемНа что смотрим
Выгрузка каталогаТовары, разделы, свойства, изображения, торговые предложения
Цены и типы ценКорректность значений и привязки к группам
Остатки по складамНаличие в разрезе складов, обновление
Заказы в 1СОбратная передача заказа, статусы, оплата

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

Граничные случаи обмена

Обмен ломается не на идеальных данных, а на «грязных». Хорошее тестирование специально прогоняет проблемные ситуации, которые обязательно встретятся в реальной жизни.

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

Тестирование платёжных шлюзов

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

  1. Успешная оплата. Заказ оплачен, статус изменился, клиент получил подтверждение.
  2. Отказ и отмена. Оплата не прошла или отменена — заказ не должен считаться оплаченным.
  3. Возврат. Полный и частичный возврат корректно отражается в заказе.
  4. Несколько способов оплаты. Каждый подключённый шлюз проверяется отдельно.

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

Колбэки и статусы оплаты

Самое коварное в платежах — асинхронные уведомления. Статус заказа должен меняться не тогда, когда покупатель вернулся на сайт, а когда пришёл колбэк (webhook) от банка. Пользователь может закрыть вкладку сразу после оплаты, и заказ всё равно обязан стать оплаченным.

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

Отдельно тестируют повторные и запоздавшие уведомления, а также их безопасность — колбэк должен приниматься только от настоящей платёжной системы, с проверкой подписи. Тему безопасной обработки входящих вызовов мы подробно разбираем в статье про REST, вебхуки и безопасность в Битрикс.

Тестирование доставки

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

Ключевой момент — поведение при сбое: если API доставки недоступно или вернуло ноль, покупатель не должен застревать в оформлении. Нужен запасной вариант — фиксированный тариф, расчёт менеджером или понятное сообщение. Молчаливый сбой расчёта доставки — частая скрытая причина брошенных корзин.

Сквозной сценарий заказа

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

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

Логи, мониторинг и алерты

Тестирование до запуска не отменяет наблюдения после. Интеграции ломаются в проде — от изменений внешних систем до всплесков нагрузки, — и важно узнавать об этом от системы, а не от клиентов.

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

Автотесты и защита от регрессий

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

Автотесты не заменяют ручную проверку полностью — внешние системы меняются, и часть проверок остаётся ручной, — но защищают от регрессий: поломка интеграции ловится до продакшна, а не после. Удобнее всего встроить автопроверки в процесс выкладки, чтобы каждый релиз автоматически прогонял критичные сценарии интеграций. Как выстроить такой конвейер, мы разбираем в статье про CI/CD и деплой на Битрикс.

Приёмка заказчиком

Техническое тестирование и бизнес-приёмка — разные вещи, и нужны обе. Разработчик проверяет технику: форматы, сценарии, граничные случаи, безопасность колбэков. Заказчик проверяет соответствие реальным процессам на своих бизнес-сценариях.

  1. Заранее описать сценарии. Согласовать список бизнес-сценариев приёмки до начала проверки.
  2. Прогнать типовой заказ. Реальный товар, оплата, выгрузка в 1С, отгрузка — как в жизни.
  3. Проверить нетипичное. Возврат, частичная оплата, заказ из недоступного региона.
  4. Зафиксировать результат. Что проверено, что работает, что требует доработки.

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

Частые ошибки

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

  1. Среда готова. Staging-стенд с песочницами платёжек, доставки и тестовым узлом 1С.
  2. Обмен проверен. Полный цикл CommerceML: каталог, цены, остатки, заказы, инкременты.
  3. Граничные данные. Товары без цены, битая кодировка, прерванная выгрузка, дубли кодов.
  4. Платежи по всем исходам. Успех, отказ, отмена, возврат, повторный и запоздавший колбэк.
  5. Колбэки безопасны. Статус по уведомлению банка, проверка подписи, защита от задвоения.
  6. Доставка целиком. Расчёт, отправление, трек, статусы, поведение при сбое API.
  7. Сквозной сценарий. Полный путь заказа через все интеграции разом.
  8. Наблюдаемость. Логи обменов и платежей, мониторинг и алерты на тихие сбои.

Вывод

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

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

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

Почему интеграции нужно тестировать отдельно и тщательно?

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

Что именно проверять в обмене с 1С по CommerceML?

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

Нужна ли отдельная тестовая среда для интеграций?

Да, обязательно. Тестировать платежи и обмен на боевом сайте с реальными деньгами и реальным каталогом рискованно. Нужен стенд (staging), повторяющий продакшн, с тестовыми ключами платёжных систем, тестовым узлом 1С и песочницами служб доставки. Тогда можно прогонять сценарии, включая сбойные, не затрагивая реальные заказы и оплаты. Отдельная среда — базовое условие нормального тестирования интеграций.

Как тестировать платёжные шлюзы?

Через тестовый режим платёжной системы: проверяют успешную оплату, отказ, отмену, возврат, а также обработку колбэков (webhook) о статусе платежа. Критично проверить, что заказ переходит в правильный статус именно по уведомлению от банка, а не по возврату пользователя на сайт. Отдельно тестируют повторные и запоздавшие колбэки, чтобы оплата не потерялась и не задвоилась. Безопасность обработки уведомлений — обязательная часть проверки.

Что проверять в интеграции со службами доставки?

Расчёт стоимости и сроков по разным адресам и весам, создание отправления, получение трек-номера и статусов. Проверяют граничные случаи: недоступный регион, негабарит, нулевой или отсутствующий тариф, недоступность API службы. Важно, чтобы при сбое расчёта покупатель не застревал в оформлении, а получал понятный запасной вариант. Доставка напрямую влияет на конверсию корзины, поэтому её тестируют особенно внимательно.

Как ловить ошибки интеграций уже после запуска?

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

Можно ли автоматизировать тестирование интеграций?

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

Кто должен тестировать интеграции — разработчик или заказчик?

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

Поделиться:

Нужно проверить надёжность интеграций магазина?

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

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем и сопровождаем интернет-магазины на 1С-Битрикс: обмен с 1С, платёжные шлюзы, доставку и их тестирование.

← Все статьи блога