Даже одна отправка в деревню превращается в проблему: курьерские службы туда не ездят, а Белпочта остаётся единственным оператором, покрывающим всю Беларусь. Без интеграции менеджеры вручную заполняют данные на сайте почты — ошибки, задержки, потерянные статусы. Клиенты недовольны, а вы теряете время. Ручное создание посылки занимает 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 дней.







