Если ваш магазин на Битрикс доставляет в Беларусь через СДЭК, вы уже сталкивались с сюрпризом: российские тарифы, неверный расчёт в BYN, отсутствие ТТН-1. Мы настроили десятки таких интеграций и знаем, где подвох. СДЭК работает в Беларуси через белорусское юрлицо — ООО «СДЭК-БЕЛ». API тот же v2, но конфигурация принципиально другая: коды локаций, тарифы, валюта и юридические документы. Разберём технические отличия и готовое решение для Битрикс. В среднем неправильная настройка обработчика доставки приводит к расхождению цены на 20–30% и задержкам в обработке заказов до 2 дней.
Чем интеграция СДЭК Беларусь отличается от российской?
Технически API идентичен: https://api.cdek.ru/v2, та же OAuth 2.0, те же эндпоинты. Но есть ключевые различия, которые необходимо учитывать:
| Параметр |
Россия |
Беларусь |
| Юридическое лицо |
CDEK Russia |
ООО «СДЭК-БЕЛ» |
| Креденшелы |
аккаунт РФ |
отдельный аккаунт СДЭК-БЕЛ |
| Валюта |
RUB |
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();
}
// ... запрос и кэширование
}
Хотите, чтобы доставка работала без сбоев? Запишитесь на консультацию — оценим ваш проект и предложим оптимальное решение.
Интеграция доставки: от разрозненных API к единому калькулятору за 5 дней
Покупатель бросает корзину на этапе доставки — не видит расчёта или видит заведомо неверную цену. Каждый такой случай теряет конверсию. Автоматизация логистики в 1С-Битрикс решает эту проблему: мы подключаем службы доставки так, чтобы цена показывалась мгновенно, а трекинг обновлялся без участия менеджера. За 8 лет реализовано более 50 проектов с каталогами от 500 до 100 000 SKU. Среднее время подключения одной транспортной компании — 4 дня.
Как ускорить подключение служб доставки к 1С-Битрикс?
Главная сложность — не сам вызов API, а адаптация к логике каждого перевозчика. СДЭК, Boxberry, Почта России, ПЭК, DPD — у каждого свой формат запроса, тарификация и обработка ошибок. Мы используем готовые адаптеры под каждую ТК, что сокращает время интеграции втрое по сравнению с реализацией с нуля. Развернутый кейс: интернет-магазин товаров для дома (15 000 товаров) — подключили СДЭК и Boxberry за 5 дней, автоматизировали расчёт и создание заказов. Обращения в поддержку по доставке снизились на 60%, средний чек вырос на 8% за счёт индикатора бесплатной доставки.
Почему API каждой транспортной компании — отдельный квест?
СДЭК — объёмный вес и карта ПВЗ
API v2 (/api/v2/calculator/tarifflist) принимает габариты, вес и адреса — возвращает все доступные тарифы. Подводные камни: объёмный вес рассчитывается по формуле (Д × Ш × В) / 5000. Если физический вес 2 кг, а объёмный 8 кг — СДЭК берёт по объёмному. Не учтёте в калькуляторе — покупатель увидит одну цену, а заплатит другую. Карта ПВЗ загружается через /deliverypoints. Виджет СДЭК можно встроить, но он конфликтует со стилями Битрикс — рисуем свою карту на Яндекс.Картах. Автоматическое создание заказа через /api/v2/orders — при оформлении заявка улетает в СДЭК, возвращается трек-номер. Печать накладных и этикеток из админки — через /api/v2/print/orders. Тарифы: склад-склад, склад-дверь, дверь-дверь, экспресс, постамат.
Boxberry — широкая сеть ПВЗ в регионах
Самая широкая сеть пунктов выдачи в малых городах. API проще, чем у СДЭК, но есть нюансы с наложенным платежом и частичным выкупом. Карта ПВЗ с фильтрацией: примерка, оплата картой, работа в выходные. Обязательно проверяем корректную обработку ответа 0 при отсутствии ПВЗ.
Почта России — стабильность ценой скорости
API «Отправка» — расчёт стоимости, автоформирование бланков ф.103 и ф.116, трекинг по трек-номеру. Тарифы: посылка, бандероль, EMS. Международные отправления. API медленнее коммерческих ТК — закладываем таймауты 10 секунд, используем асинхронные агенты Битрикс для обновления статусов.
ПЭК — тяжёлые грузы и сбор
Когда нужно отправить диван или оборудование. Расчёт сборных грузов, страхование, обрешётка. Доставка до терминала и от двери до двери. Индексы терминалов ПЭК подгружаем в инфоблок для автоподстановки.
DPD — экспресс-доставка с временными слотами
DPD по России и за рубеж. Доставка в выбранный временной интервал, возврат подписанных документов. В расчёте учитываем объёмный вес по формуле (Д×Ш×В)/4000 — отличие от СДЭК.
Пример: типичные ошибки при интеграции Boxberry
Отсутствие фильтрации ПВЗ по признаку `onlyPrepaid` приводит к ошибкам при наложенном платеже. Игнорирование параметра `partialReturn` ломает частичный выкуп. API возвращает код города в формате "770000000000" — требуется маппинг на index города.
Как объединить разные ТК в едином калькуляторе?
Используем гибридный подход: модуль-агрегатор, который маршрутизирует запросы к разным API и нормализует ответы. Это позволяет сравнивать тарифы в реальном времени без переключения между личными кабинетами. В ответе модуля — единая структура: название тарифа, цена, срок, тип доставки. Кэширование тегированное: при изменении настроек модуля очищается только кэш расчёта для выбранного города, остальное остаётся. Событие OnBeforeDeliveryCalculate вешаем на кастомный обработчик — так подменяем стандартную логику доставки.
Расчёт стоимости: какие грабли встречаются?
Автоматический калькулятор суммирует физический и объёмный вес товаров в корзине, прибавляет вес упаковки, выбирает наибольший. Звучит просто, но:
- Габариты должны быть заполнены у каждого товара. Нет габаритов — нет расчёта. На каталоге в 10 000 SKU обязательно найдутся товары без размеров — для них заводим дефолтные значения (например, 0.1×0.1×0.1 м) и предупреждаем менеджера через почтовое событие.
- Промоакции и пороги бесплатной доставки — гибкая настройка: по сумме заказа, для VIP-клиентов, при конкретном способе оплаты. Реализуем через пользовательские свойства корзины.
- Индикатор «До бесплатной доставки осталось N руб.» — простая штука, но поднимает средний чек на 5–12%. Вычисляем по сумме корзины и ближайшему порогу, выводим в шаблоне корзины.
Как автоматизировать трекинг, самовывоз и курьерскую доставку?
Трекинг. Автоматический опрос API транспортных компаний — агент Битрикс каждые 30 минут проверяет статусы заказов, у которых STATUS_DELIVERY != 'DELIVERED'. При изменении — обновление статуса заказа в системе и уведомление покупателю (email, SMS, push). Встроенная страница трекинга в личном кабинете — покупателю не нужно идти на сайт ТК. Карта с текущим местоположением, прогнозируемая дата доставки, возможность переадресации.
Самовывоз. Собственные точки выдачи на карте: адреса, график, контакты. Поиск ближайшей по адресу покупателя. Проверка наличия в реальном времени, бронирование до определённого часа. QR-код для быстрого получения и SMS о готовности к выдаче.
Курьерская доставка. Зоны доставки с разной стоимостью. 2-часовые слоты, управление расписанием курьеров, ограничение заказов на слот. Доставка день в день — приём до 14:00, экспресс за 2-4 часа с наценкой за срочность. Интеграция с навигацией для оптимизации маршрутов.
Мультисклад. Несколько складов с адресами и зонами обслуживания. Автоматический выбор склада отгрузки по адресу покупателя — приоритет ближайшему, где есть все товары заказа. Если на одном складе всего нет — разделение заказа по складам (мультидоставка). Синхронизация остатков через 1С или WMS (CommerceML), используем события OnBeforeBasketAdd для проверки доступности.
Сравнение транспортных компаний
| Параметр |
СДЭК |
Boxberry |
Почта России |
ПЭК |
DPD |
| Покрытие |
Россия, СНГ |
Регионы, малые города |
Вся РФ |
РФ, тяжёлые грузы |
РФ, экспресс |
| Скорость доставки |
2–7 дней |
3–10 дней |
5–15 дней |
3–10 дней |
1–4 дня |
| Сложность API |
Средняя |
Низкая |
Высокая (XML) |
Средняя |
Средняя |
| Особенность |
Широкий набор тарифов, постаматы |
Самая широкая сеть ПВЗ |
Стабильный, но медленный ответ |
Страхование, обрешётка |
Временные интервалы |
Из каких этапов состоит подключение служб доставки?
-
Анализ логистики (1–2 дня) — география, средний вес, объём заказов, интеграция с 1С. Рекомендуем комбинацию ТК.
-
Подключение API (3–5 дней на ТК) — настройка расчётов, карт ПВЗ, автоматическое создание заказов через агенты и события.
-
Настройка трекинга (1–2 недели) — агенты обновления статусов, шаблоны уведомлений, страница трекинга.
-
Тестирование (2–3 дня) — проверка на реальных адресах, сравнение тарифов, контроль ошибочных расчётов, нагрузочное тестирование.
-
Деплой и обучение (1 день) — выгрузка модуля, передача доступов, обучение менеджеров.
-
Гарантийная поддержка (1 месяц) — исправление багов, корректировка конфигураций, донастройка кэширования.
Ориентировочные сроки реализации
| Этап |
Срок |
| Подключение одной ТК (API) |
3–5 дней |
| Карта выбора ПВЗ |
2–3 дня |
| Настройка самовывоза |
2–3 дня |
| Система трекинга |
1–2 недели |
| Мультисклад |
2–4 недели |
| Комплексная логистическая система |
4–8 недель |
Сроки зависят от количества ТК, сложности каталога и необходимости интеграции с 1С/ERP. Стоимость рассчитывается индивидуально — ориентируйтесь на экономию: снижение операционных затрат на доставку до 40% и сокращение обращений в поддержку на 60%. Например, один из клиентов с магазином электроники (20 000 товаров) вернул инвестиции за 3 месяца за счёт уменьшения числа «забытых» заказов.
Готовы ускорить логистику вашего интернет-магазина? Свяжитесь с нами — поможем подобрать оптимальную комбинацию ТК под ваш ассортимент и бюджет. Закажите консультацию, и мы подготовим предложение за 1 рабочий день.