Навіть одна відправка в село перетворюється на проблему: кур'єрські служби туди не їздять, а Белпошта залишається єдиним оператором, що покриває всю Білорусь. Без інтеграції менеджери вручну заповнюють дані на сайті пошти — помилки, затримки, втрачені статуси. Клієнти незадоволені, а ви втрачаєте час. Ручне створення посилки займає 10–15 хвилин, а при 50 замовленнях на день це години марної роботи. Помилки при введенні індексу або ваги призводять до повернень і повторних відправлень — до 20% замовлень потребують корекції. Наші інженери з 10+ річним досвідом інтегрували Белпошту з десятками магазинів на 1С-Бітрікс, обробивши понад 100 000 посилок. Ми — сертифікований партнер 1С-Бітрікс, надаємо гарантію на модуль 12 місяців. Рішення закриває весь цикл: від розрахунку вартості до друку марки та трекінгу.
Інтеграція 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 рази дешевша за кур'єрські служби в регіони, особливо для відправлень у села та селища. Інтеграція в 5 разів швидше за ручне створення посилок. API дозволяє автоматизувати весь цикл: від розрахунку до друку марок. Для інтернет-магазинів, орієнтованих на всю Білорусь, це обов'язковий канал.
Особливості:
- Мінімальна вага — 50 г. Товари менше оформлюються як «дрібний пакет» за іншим тарифом — модуль автоматично підбирає тариф.
- Міжнародна доставка: Белпошта учасник UPU, відправка в країни СНД та далеке зарубіжжя. Митні декларації CN22/CN23 через окремий метод API. Інтеграція підтримує заповнення декларацій на основі товарних позицій каталогу.
- Строки: в межах Білорусі 3–7 робочих днів, у віддалені райони до 10 днів. Фактичні строки залежать від завантаженості відділень.
- Накладений платіж підтримується, перерахування раз на тиждень. Сума накладеного платежу (cod_sum) автоматично розраховується як вартість замовлення плюс поштовий збір.
Інтеграція знижує трудозатрати на обробку замовлень до 95%. Помилки ручного введення виключаються — адреси та ваги беруться безпосередньо із замовлення. Це особливо важливо для інтернет-магазинів з великим асортиментом та високою сезонністю. Економія на обробці одного замовлення становить до 8 хвилин, що при 100 замовленнях на місяць дає понад 13 годин зекономленого часу. Вартість базової інтеграції починається від 500 $. Економія на перших 100 відправленнях складає до 200 $.
Як впровадити інтеграцію:
- Укладіть договір з Белпоштою та підключіть послугу «Електронна доставка».
- Отримайте API-токен для авторизації.
- Встановіть наш модуль доставки для Бітрікс на сайт.
- Налаштуйте транспорт для розрахунку вартості.
- Налаштуйте агенти для синхронізації статусів та друку марок.
Тарифи Белпошти для інтернет-магазинів доступні в особистому кабінеті. Обмін з 1С-Бітрікс здійснюється через CommerceML обмін доставки. Інтеграція Белпошти з Бітрікс гарантує швидку доставку та точний трекінг.
Що входить в роботу
- Аналітика: аудит поточного обміну, визначення точок інтеграції (розрахунок, створення, друк, трекінг).
- Проектування: розробка схеми обробників, агентів, HL-блоків (якщо потрібна додаткова логіка).
- Розробка: реалізація транспорту, агентів синхронізації, інтерфейсу друку. Кешування запитів розрахунку — теговане, з прив'язкою до кошика.
- Тестування: на тестовому контурі Белпошти (пісочниця) — перевірка всіх сценаріїв, включаючи помилки API та тайм-аути.
- Запуск: встановлення модуля на бойовий сервер, налаштування агентів, навчання співробітників. Документація з експлуатації та відновлення після збоїв.
Строки робіт
| Склад | Строк |
|---|---|
| Розрахунок + створення посилки | 3–5 днів |
| + Друк марки + трекінг | +2 дні |
| + Міжнародні відправлення | +2 дні |
| Повний функціонал (всі опції) | 5–9 днів |
Строки варіюються в залежності від складності каталогу та вимог до обміну з 1С. Наприклад, якщо вже налаштовані торгові пропозиції та інфоблоки v2.0, інтеграція виконується швидше. Для інтернет-магазинів, що працюють з 1С через CommerceML, ми налаштовуємо передачу статусів доставки назад в 1С.
Оцінимо ваш проект безкоштовно — зв'яжіться з нами для консультації. Замовте інтеграцію — вона окупиться на перших ста відправленнях за рахунок економії часу та зниження повернень. Отримайте готове рішення за 5–9 днів.







