Даже одна отправка в деревню превращается в проблему: курьерские службы туда не ездят, а Белпочта остаётся единственным оператором, покрывающим всю Беларусь. Без интеграции менеджеры вручную заполняют данные на сайте почты — ошибки, задержки, потерянные статусы. Клиенты недовольны, а вы теряете время. Ручное создание посылки занимает 10–15 минут, а при 50 заказах в день это часы бесполезной работы. Ошибки при вводе индекса или веса приводят к возвратам и повторным отправкам — до 20% заказов требуют корректировки. Наши инженеры с 10+ летним опытом интегрировали Белпочту с десятками магазинов на 1С-Битрикс, обработав более 100 000 посылок. Решение закрывает весь цикл: от расчёта стоимости до печати марки и трекинга.
Как интегрировать API Белпочты с каталогом Битрикс?
Белпочта предоставляет SOAP и REST API. Рекомендуем REST версию: https://api.belpost.by/api/v1. Авторизация через токен в заголовке Authorization: Token <token>. Токен выдаётся после заключения договора с Белпочтой и подключения услуги «Электронная доставка».
Основные методы API:
| Метод | Назначение | Частота использования |
|---|---|---|
POST /parcel/calculate |
Расчёт стоимости отправления | при каждом изменении корзины |
POST /parcel/create |
Создание посылки | при оформлении заказа |
GET /parcel/{id} |
Статус посылки | по агентам раз в 6 часов |
GET /parcel/{id}/label |
Получение марки в PDF | при печати из админки |
Расчёт стоимости реализуется через кастомный транспорт. Регистрируем обработчик на событие OnSaleDeliveryHandlersBuildList и добавляем класс BelposhtaHandler. В свойствах заказа обязательно добавляем индекс получателя (6 цифр) — без него расчёт невозможен.
class BelposhtaHandler extends \Bitrix\Sale\Delivery\Services\Base { protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $response = $this->apiPost('/parcel/calculate', [ 'from_region' => $this->getOption('SENDER_REGION_CODE'), 'to_index' => $this->getRecipientIndex($shipment), 'weight' => max((int)($shipment->getWeight()), 50), // граммы, минимум 50г 'cost' => round($shipment->getOrder()->getPrice()), 'payment' => 'prepaid', // или cod ]); if (!empty($response['amount'])) { $result->setDeliveryPrice((float)$response['amount']); $days = $response['delivery_days'] ?? '3–7'; $result->setPeriodDescription("{$days} дней"); } return $result; } private function getRecipientIndex(\Bitrix\Sale\Shipment $shipment): string { $props = $shipment->getOrder()->getPropertyCollection(); return (string)($props->getItemByOrderPropertyCode('ZIP')?->getValue() ?? ''); } } Индекс получателя — обязательное свойство заказа. Добавляем его через \Bitrix\Sale\Property с кодом ZIP и привязываем к службе доставки. При выборе Белпочты свойство становится обязательным.
Как создать посылку и печатать марки?
После оформления заказа необходимо создать посылку. Отправляем POST-запрос с полными данными отправителя и получателя. В ответ получаем parcel_id, который сохраняем в заказ (например, в UF-поле).
public function createParcel(\Bitrix\Sale\Shipment $shipment): string { $order = $shipment->getOrder(); $props = $order->getPropertyCollection(); $payload = [ 'sender' => [ 'name' => $this->getOption('SENDER_NAME'), 'address' => $this->getOption('SENDER_ADDRESS'), 'phone' => $this->getOption('SENDER_PHONE'), ], 'recipient' => [ 'name' => $props->getItemByOrderPropertyCode('FIO')?->getValue(), 'phone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(), 'index' => $props->getItemByOrderPropertyCode('ZIP')?->getValue(), 'address' => $props->getItemByOrderPropertyCode('ADDRESS')?->getValue(), ], 'parcel' => [ 'weight' => max((int)$shipment->getWeight(), 50), 'cost' => round($order->getPrice()), 'contents' => 'Товар', ], 'payment' => $this->getPaymentType($order), // prepaid или cod 'cod_sum' => $this->getCodSum($order), ]; $response = $this->apiPost('/parcel/create', $payload); return (string)($response['parcel_id'] ?? ''); } Марка возвращается в PDF формате. Мы добавляем кнопку «Печать марки» в административную часть заказа. При нажатии вызывается агент, который получает PDF через GET /parcel/{id}/label и выводит на печать. Трекинг обновляется агентами раз в 6 часов — этого достаточно, так как Белпочта обновляет статусы раз в сутки. Для ускорения можно настроить вебхук от Белпочты, но они пока не предоставляют push-уведомлений.
Когда Белпочта — оптимальный выбор?
Белпочта в 2–3 раза дешевле курьерских служб в регионы, особенно для отправлений в деревни и посёлки. API позволяет автоматизировать весь цикл: от расчёта до печати марок. Для интернет-магазинов, ориентированных на всю Беларусь, это обязательный канал.
Особенности:
- Минимальный вес — 50 г. Товары меньше оформляются как «мелкий пакет» по другому тарифу — модуль автоматически подбирает тариф.
- Международная доставка: Белпочта участник UPU, отправка в страны СНГ и дальнее зарубежье. Таможенные декларации CN22/CN23 через отдельный метод API. Интеграция поддерживает заполнение деклараций на основе товарных позиций каталога.
- Сроки: в пределах Беларуси 3–7 рабочих дней, в отдалённые районы до 10 дней. Фактические сроки зависят от загрузки отделений.
- Наложенный платёж поддерживается, перечисление раз в неделю. Сумма наложенного платежа (cod_sum) автоматически рассчитывается как стоимость заказа плюс почтовый сбор.
Интеграция снижает трудозатраты на обработку заказов до 95%. Ошибки ручного ввода исключаются — адреса и веса берутся напрямую из заказа. Это особенно важно для интернет-магазинов с большим ассортиментом и высокой сезонностью. Экономия на обработке одного заказа составляет до 8 минут, что при 100 заказах в месяц даёт более 13 часов сэкономленного времени.
Что входит в работу
- Аналитика: аудит текущего обмена, определение точек интеграции (расчёт, создание, печать, трекинг).
- Проектирование: разработка схемы обработчиков, агентов, HL-блоков (если нужна дополнительная логика).
- Разработка: реализация транспорта, агентов синхронизации, интерфейса печати. Кеширование запросов расчёта — тегированное, с привязкой к корзине.
- Тестирование: на тестовом контуре Белпочты (песочница) — проверка всех сценариев, включая ошибки API и таймауты.
- Запуск: установка модуля на боевой сервер, настройка агентов, обучение сотрудников. Документация по эксплуатации и восстановлению после сбоев.
Сроки работ
| Состав | Срок |
|---|---|
| Расчёт + создание посылки | 3–5 дней |
| + Печать марки + трекинг | +2 дня |
| + Международные отправления | +2 дня |
| Полный функционал (все опции) | 5–9 дней |
Сроки варьируются в зависимости от сложности каталога и требований к обмену с 1С. Например, если уже настроены торговые предложения и инфоблоки v2.0, интеграция выполняется быстрее. Для интернет-магазинов, работающих с 1С через CommerceML, мы настраиваем передачу статусов доставки обратно в 1С.
Оценим ваш проект бесплатно — свяжитесь с нами для консультации. Закажите интеграцию — она окупится на первых ста отправлениях за счёт экономии времени и снижения возвратов. Получите готовое решение за 5–9 дней.







