1C-Bitrix Integration with TechnoLogist Delivery Service (Belarus)
TechnoLogist is a Belarusian logistics operator specializing in e-shop delivery across Belarus. Own courier service, pickup points and fulfillment. Main currency — Belarusian ruble (BYN). For shops operating on RB market, one of main delivery options alongside EuroPochta and SDEK.
TechnoLogist API
TechnoLogist provides REST API for integration with e-shops. Documentation provided to partners upon connection. Authorization by token in header. Endpoints:
-
POST /orders— create request -
GET /orders/{id}— request status -
GET /orders/{id}/label— label for printing -
POST /orders/calculate— calculate cost -
GET /pvz— list of pickup points
Delivery Module in Bitrix
Class inherits \Bitrix\Sale\Delivery\Services\Base. Module parameters:
-
TECHNOLOGIST_TOKEN— API access token -
SENDER_ID— sender identifier -
DEFAULT_CITY— default city for calculation (Minsk) -
CURRENCY— BYN (Belarusian ruble)
In calculateConcrete() execute cost calculation request considering weight, dimensions, delivery type (courier/PVZ) and recipient city.
Features of Belarusian Market
When integrating with Belarusian delivery services, important to account for:
Currency. Order sum and delivery cost transmitted in BYN. If shop works in multiple currencies, in calculateConcrete() convert via Bitrix rate mechanism (CCurrencyRates::ConvertCurrency()).
Customer phone. Belarusian numbers: +375 (XX) XXX-XX-XX. In API request send in format 375XXXXXXXXX — no plus, no brackets. Normalization via regex in handler.
Addresses. Belarus doesn't use KLADR system (Russian standard). TechnoLogist uses own reference of populated places. When ordering, city search — via GET /cities?q={query} with result caching.
Cash on delivery. Widespread in Belarus. When CashOnDelivery > 0, courier accepts cash or card (depending on courier terminal equipment — check with TechnoLogist).
Creating Request
$payload = [
'externalOrderId' => 'SHOP-' . $bitrixOrderId,
'senderId' => $senderId,
'recipient' => [
'name' => $recipientName,
'phone' => $normalizedPhone,
'address' => [
'cityId' => $cityId,
'street' => $street,
'house' => $house,
'flat' => $flat,
],
],
'deliveryType' => 'courier', // or 'pvz'
'pvzId' => $pvzId,
'weight' => $weightKg,
'dimensions' => $dimensions,
'declaredValue' => $declaredValueBYN,
'cod' => $codAmountBYN,
'comment' => $deliveryComment,
];
In response receive orderId in TechnoLogist system and trackingNumber. Save to b_sale_order_props.
Statuses
TechnoLogist notifies on status change via webhook (POST to shop URL) or via polling. Mapping:
| TechnoLogist Status | Bitrix |
|---|---|
| Accepted | Sent for delivery |
| On sorting | Processing |
| In delivery | Courier in transit |
| Delivered | Delivered |
| Return | Return |
Pickup Point Integration
List of PVZ loaded once per day by Bitrix agent and saved to HL-block. For Minsk — several tens of points, across all Belarus — less than major Russian operators. Display on map with coordinates from API response.
Timeline
| Scope | Components | Duration |
|---|---|---|
| Basic integration | Calculation + requests + statuses | 3–5 days |
| + Pickup point map | HL-block + widget | +2 days |
| + Multi-currency | Conversion to BYN + logic | +1 day |







