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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Тестирование интеграций доставки 1С-Битрикс: от расчёта до трекинга
Средний
~2-3 дня
Часто задаваемые вопросы

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

Этапы разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1042

Мы тестируем интеграции доставки в 1С-Битрикс не по чек-листу, а с погружением в бизнес-логику. За период работы проведено более 50 аудитов для интернет-магазинов с оборотом от 5 млн ₽. Типичная картина: расчёт стоимости возвращает 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% типовых ошибок интеграции. Каждая найденная ошибка экономит компании до 500 000 ₽ на исправлении в продакшне. Свяжитесь с нами для предварительной оценки проекта — получите консультацию по типовым проблемам вашей интеграции. Закажите тестирование сейчас.