Интеграция 1С-Битрикс со службой доставки СДЭК Беларусь

Магазины на 1С-Битрикс, доставляющие в Беларусь через СДЭК, часто сталкиваются с неверными тарифами и отсутствием ТТН-1. Мы разрабатываем интеграцию с белорусским API СДЭК, учитывая все юридические и технические нюансы. Наша команда реализует проект под ключ — от настройки расчёта до поддержки.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс со службой доставки СДЭК Беларусь
Средний
~1-2 недели

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1481
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1026
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    779
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    885
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    819
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1178

Если ваш магазин на Битрикс доставляет в Беларусь через СДЭК, вы уже сталкивались с сюрпризом: российские тарифы, неверный расчёт в BYN, отсутствие ТТН-1. Мы настроили десятки таких интеграций и знаем, где подвох. СДЭК работает в Беларуси через белорусское юрлицо — ООО «СДЭК-БЕЛ». API тот же v2, но конфигурация принципиально другая: коды локаций, тарифы, валюта и юридические документы. Разберём технические отличия и готовое решение для Битрикс. В среднем неправильная настройка обработчика доставки приводит к расхождению цены на 20–30% и задержкам в обработке заказов до 2 дней.

Чем интеграция СДЭК Беларусь отличается от российской?

Технически API идентичен: https://api.cdek.ru/v2, та же OAuth 2.0, те же эндпоинты. Но есть ключевые различия, которые необходимо учитывать:

Параметр Россия Беларусь
Юридическое лицо CDEK Russia ООО «СДЭК-БЕЛ»
Креденшелы аккаунт РФ отдельный аккаунт СДЭК-БЕЛ
Валюта USD BYN
Документы накладная CDEK накладная + ТТН-1
Коды городов российские белорусские коды

Для работы с белорусским API необходимо получить отдельные учетные данные в личном кабинете СДЭК-БЕЛ. Без этого все запросы будут отклонены с ошибкой 401. Также важно учитывать, что при обмене с 1С через CommerceML используются отдельные справочники номенклатуры для Беларуси.

Почему единый обработчик доставки не подходит?

Если использовать один CdekRuHandler для всех заказов, для белорусских адресов он применит российские тарифы и валюту. В результате клиент из Минска увидит стоимость в долларах РФ, а реальная цена будет в BYN — расхождение до 30%. Мы сталкивались с проектами, где из-за единого обработчика клиенты получали счета в долларах РФ вместо BYN, и перерасчёт занимал несколько дней. Наша реализация с двумя обработчиками позволяет избежать этого. Переключение происходит автоматически по стране из адреса доставки через событие OnBeforeCalculate.

Как настроить обработчик для Беларуси?

Инициализация клиента:

class CdekByHandler extends \Bitrix\Sale\Delivery\Services\Base {
    private function getApiClient(): CdekApiClient {
        // Белорусские credentials из личного кабинета СДЭК-БЕЛ
        return new CdekApiClient(
            clientId: $this->getOption('CLIENT_ID_BY'),
            clientSecret: $this->getOption('CLIENT_SECRET_BY'),
            apiUrl: 'https://api.cdek.ru/v2',
            testMode: (bool)$this->getOption('TEST_MODE')
        );
    }

    protected function calculateConcrete(
        \Bitrix\Sale\Shipment $shipment
    ): \Bitrix\Sale\Delivery\CalculationResult {
        $result = new \Bitrix\Sale\Delivery\CalculationResult();
        $client = $this->getApiClient();
        $toCode = $this->getByLocationCode($shipment);
        if (!$toCode) {
            $result->addError(new \Bitrix\Main\Error('Город не найден в базе СДЭК'));
            return $result;
        }
        $tariff = $client->calculateTariff([
            'tariff_code' => (int)$this->getOption('TARIFF_CODE_BY', 136),
            'from_location' => ['code' => $this->getOption('FROM_LOCATION_CODE_BY')],
            'to_location' => ['code' => $toCode],
            'packages' => [[
                'weight' => max($shipment->getWeight(), 100),
                'length' => (int)$this->getOption('DEFAULT_LENGTH', 20),
                'width' => (int)$this->getOption('DEFAULT_WIDTH', 20),
                'height' => (int)$this->getOption('DEFAULT_HEIGHT', 20),
            ]],
        ]);
        $result->setDeliveryPrice($tariff['total_sum']);
        $result->setPeriodDescription($tariff['period_min'] . '–' . $tariff['period_max'] . ' рабочих дней');
        return $result;
    }
}

Как вывести ПВЗ СДЭК на сайте для Беларуси?

Список ПВЗ запрашивается через GET /v2/deliverypoints?country_codes=BY. СДЭК предоставляет официальный JavaScript-виджет для выбора на карте — он корректно работает для белорусских точек. Данные кешируются на 6 часов для ускорения загрузки.

public function getBelarusOfficePoints(): array
{
    $cache = \Bitrix\Main\Data\Cache::createInstance();
    if ($cache->initCache(3600 * 6, 'cdek_pvz_by', '/cdek/')) {
        return $cache->getVars();
    }
    $points = $this->getApiClient()->getDeliveryPoints([
        'country_codes' => 'BY',
        'have_cashless' => true,
    ]);
    $cache->startDataCache();
    $cache->endDataCache($points);
    return $points;
}

Что такое ТТН-1 и зачем она нужна?

При внутрибелорусских перевозках законодательство требует товарно-транспортную накладную ТТН-1. СДЭК-БЕЛ может формировать её автоматически — уточните условия в договоре. Если нужна самостоятельная генерация, мы интегрируем формирование PDF с данными заказа и отправления. На практике игнорирование ТТН-1 приводит к штрафам до 20 базовых величин при проверках. Наша реализация автоматизирует формирование документа, экономя до 40% времени менеджеров.

Кейс из нашей практики

Один из клиентов — магазин электроники с аудиторией в Беларуси и России — использовал единый обработчик. Проблема: российские тарифы для белорусских заказов, путаница с BYN. Решение: два отдельных обработчика CdekRuHandler и CdekByHandler, переключение по стране через OnBeforeCalculate. Результат: корректные тарифы в BYN, ТТН-1 формируется, скорость обработки заказов выросла в 2 раза, количество ошибок снизилось на 25%. Объём заказов клиента — до 1500 в день. Документация API СДЭК v2.

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

Состав работ Детали
Аудит текущей логистики Анализ обработчиков доставки и кодов локаций
Настройка API СДЭК-БЕЛ Регистрация приложения, получение credentials
Разработка CdekByHandler Расчёт тарифа, создание заказа, трекинг
Вывод ПВЗ на карте Виджет СДЭК + кастомизация
Интеграция ТТН-1 Генерация документа (опционально)
Интеграция с 1С (CommerceML) Синхронизация номенклатуры и заказов
Кэширование данных ПВЗ Оптимизация загрузки страницы корзины
Тестирование и релиз Проверка на staging, обучение менеджеров

Ориентировочные сроки: базовая интеграция (расчёт + заказ) — 3-4 дня, с ПВЗ — до 5 дней, полный цикл с ТТН-1 — до 7 рабочих дней. Стоимость рассчитывается индивидуально под ваш объём и сложность.

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

Мы работаем с Битрикс более 10 лет и выполнили свыше 50 проектов по интеграции СДЭК. Среди них — как малые интернет-магазины, так и крупные каталоги с тысячами заказов в день. Гарантируем: корректную работу API, актуальные тарифы и полное сопровождение после релиза. Предоставляем гарантию на все работы — бесплатное исправление ошибок в течение 30 дней после сдачи.

Пример кэширования списка ПВЗ:

public function getBelarusOfficePoints(): array
{
    $cache = \Bitrix\Main\Data\Cache::createInstance();
    if ($cache->initCache(3600 * 6, 'cdek_pvz_by', '/cdek/')) {
        return $cache->getVars();
    }
    // ... запрос и кэширование
}

Хотите, чтобы доставка работала без сбоев? Запишитесь на консультацию — оценим ваш проект и предложим оптимальное решение.