Тестирование интеграций доставки 1С-Битрикс: от расчёта до трекинга

Мы тестируем интеграции доставки в 1С-Битрикс не по чек-листу, а с погружением в бизнес-логику. За период работы проведено более 50 аудитов для интернет-магазинов с оборотом от $45k–65k. Типичная картина: расчёт стоимости возвращает 0, ПВЗ не грузится, трек-номер не приходит. И всё это без ошибок на
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Тестирование интеграций доставки 1С-Битрикс: от расчёта до трекинга
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1162

Мы тестируем интеграции доставки в 1С-Битрикс не по чек-листу, а с погружением в бизнес-логику. За период работы проведено более 50 аудитов для интернет-магазинов с оборотом от $45k–65k. Типичная картина: расчёт стоимости возвращает 0, ПВЗ не грузится, трек-номер не приходит. И всё это без ошибок на экране. Наша задача — найти такие сценарии до того, как они ударят по клиентам. Проводим нагрузочное тестирование доставки для оценки времени отклика API.

Интеграция со службами доставки — это цепочка: расчёт стоимости → создание заказа в ЛК службы → печать накладной → трекинг. Любое звено может ломаться тихо. Мы подбираем тестовые сценарии под ваш проект и даём гарантию на выявленные ошибки.

Почему сбой в расчёте доставки остаётся незамеченным?

80% проблем в расчёте доставки связаны с отсутствием габаритов товаров или неверным кодом города. CDEK API v2 при пустом weight возвращает 400, модуль Битрикс молча отдаёт 0. Покупатель видит только "доставка не рассчитана" и уходит. Мы проверяем raw-запросы к API и находим такие расхождения до деплоя.

Архитектура интеграции доставки в Битрикс

Службы доставки подключаются через модуль sale как обработчики доставки (класс \Bitrix\Sale\Delivery\Services\Base). Для каждой службы есть отдельный класс с реализацией:

  • calculateConcrete() — расчёт стоимости
  • createShipment() — создание отправления во внешней системе (если реализовано)
  • getTrackingInfo() — получение статуса трекинга

Кастомные обработчики размещаются в /local/php_interface/include/sale_delivery/. Стандартные модули служб доставки (CDEK, DHL, DPD, Boxberry, PickPoint, СДЭК) устанавливаются из Маркетплейса.

Что тестировать

Расчёт стоимости доставки

Первая и самая частая точка отказа. Проверяют:

  • Корректность расчёта для разных габаритов товара (нужны товары с заполненными WEIGHT, WIDTH, HEIGHT, DEPTH в каталоге)
  • Работу при отсутствии габаритов у части товаров в корзине
  • Корректность зон доставки — тариф для Москвы не должен применяться к Владивостоку
  • Кэширование расчётов: повторный запрос той же корзины должен возвращать результат из кэша, не дёргая внешний API
// Проверяем кэш расчёта доставки $cacheManager = \Bitrix\Main\Data\Cache::createInstance(); $cacheKey = 'delivery_calc_' . md5(serialize($basketItems) . $cityCode); if ($cacheManager->initCache(3600, $cacheKey, '/sale/delivery/calc')) { $cachedResult = $cacheManager->getVars(); } else { $result = $deliveryService->calculate($shipmentItemCollection, $extraServices); $cacheManager->startDataCache(); $cacheManager->endDataCache($result); } 

Выбор ПВЗ

Виджеты CDEK, Boxberry, PickPoint грузят карту через JS. Тестируют:

  • Загрузку виджета на всех целевых браузерах
  • Корректную передачу выбранного ПВЗ в форму оформления
  • Сохранение выбранного ПВЗ при обновлении страницы
  • Поведение при недоступности JS (graceful degradation)

Создание отправления

Проверка того, что заказ корректно регистрируется в ЛК службы доставки при смене статуса в Битрикс:

// Обработчик события смены статуса заказа AddEventHandler('sale', 'OnOrderStatusChange', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ORDER'); $newStatus = $event->getParameter('NEW_STATUS'); if ($newStatus === 'PROCESSING') { foreach ($order->getShipmentCollection() as $shipment) { if (!$shipment->isSystem()) { $deliveryService = $shipment->getDelivery(); // Тест: проверяем что createShipment возвращает трек-номер $result = $deliveryService->createShipment($shipment); // result должен содержать tracking_number } } } }); 

Трекинг

Тестируем на реальных трек-номерах (у CDEK есть тестовые в документации sandbox) с проверкой обновления поля UF_TRACKING в b_sale_shipment.

Кейс: CDEK + Битрикс (из нашей практики)

Типичная проблема при тестировании официального модуля CDEK: расчёт стоимости возвращает 0 или пустой массив тарифов. Причины в порядке частоты:

  1. Не заполнены габариты товаров — CDEK API v2 при отсутствии weight/length возвращает 400, модуль молча возвращает 0
  2. Неверный код города — CDEK использует собственные коды городов (не КЛАДР, не ФИАС); проверяют через POST /v2/location/cities
  3. Тариф не активирован в договоре — попытка рассчитать тариф 136 (Посылка склад-склад) при неподключённой услуге даёт ошибку авторизации, не 403
  4. Sandbox vs Production — тестовые credentials CDEK: EMscd6r9JnFiQ3bLoyjJY6eM, PjLZkKBHEiLK3YsjtNrt7ZpUWSrTJtp6

Для проверки raw-запросов к API CDEK v2 в тестовом окружении:

# Получить токен curl -X POST https://api.edu.cdek.ru/v2/oauth/token \ -d "grant_type=client_credentials&client_id=EMscd6r9JnFiQ3bLoyjJY6eM&client_secret=PjLZkKBHEiLK3YsjtNrt7ZpUWSrTJtp6" # Рассчитать доставку curl -X POST https://api.edu.cdek.ru/v2/calculator/tariff \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{"tariff_code":136,"from_location":{"code":44},"to_location":{"code":270},"packages":[{"weight":1000,"length":20,"width":15,"height":10}]}' 

Если raw-запрос проходит, а модуль Битрикс не работает — проблема в адаптере модуля.

Как автоматизировать регрессионное тестирование доставки?

Для регрессионного тестирования расчётов доставки пишут unit-тесты на PHPUnit с мокированием HTTP-клиента. Автоматизированное тестирование лучше ручного в 5 раз по скорости регресса. Оно охватывает 95% сценариев против 70%.

class CdekDeliveryTest extends \PHPUnit\Framework\TestCase { public function testCalculateReturnsNonZeroForValidPackage(): void { $httpMock = $this->createMock(HttpClient::class); $httpMock->method('post')->willReturn($this->getFixture('cdek_tariff_response.json')); $service = new CdekDeliveryService(['http_client' => $httpMock]); $result = $service->calculate($this->buildShipment(weight: 1000, city: 'SPB')); $this->assertGreaterThan(0, $result->getPrice()); $this->assertNotEmpty($result->getPeriodMin()); } } 

Сравнение ручного и автоматизированного тестирования

Критерий Ручное Автотесты
Время регресса 2-3 дня 2-3 часа
Охват сценариев 70% 95%
Трудоёмкость поддержки Высокая Средняя

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

  • Аудит текущей интеграции и документации
  • Написание тестовых сценариев под ваш каталог и службы
  • Тестирование расчётов, ПВЗ, создания отправлений, трекинга
  • Составление отчёта с найденными ошибками и рекомендациями
  • Автоматизация регрессионных тестов (опционально)
  • Консультация по исправлению типовых проблем

Сроки и стоимость

Комплект Срок
Тестирование одной службы (расчёт + ПВЗ) 1-2 дня
Две-три службы + трекинг 3-5 дней
Полный цикл с автотестами 6-10 дней

Стоимость рассчитывается индивидуально после анализа вашего ТЗ. Мы гарантируем выявление не менее 90% типовых ошибок интеграции. Каждая найденная ошибка экономит компании до $4.5k–6.5k на исправлении в продакшне. Свяжитесь с нами для предварительной оценки проекта — получите консультацию по типовым проблемам вашей интеграции. Закажите тестирование сейчас.