1C-Bitrix Integration with IML Delivery Service

We frequently handle the integration of the IML delivery service with 1C-Bitrix stores. IML is a Russian delivery service with its own network of pickup points and courier delivery. Coverage spans over 5,000 settlements, with a focus on e-commerce. For online stores, three scenarios are relevant: co

Our competencies:

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    995
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    862
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1134

We frequently handle the integration of the IML delivery service with 1C-Bitrix stores. IML is a Russian delivery service with its own network of pickup points and courier delivery. Coverage spans over 5,000 settlements, with a focus on e-commerce. For online stores, three scenarios are relevant: courier delivery to the door, delivery to a pickup point, and self-pickup from a pickup point with fitting. Each requires correct cost calculation, order placement, and status synchronization. This article covers the technical implementation—from the IML API to final deployment on a production server. Our company has specialized in Bitrix integrations for over 10 years, and IML is a frequent request. We guarantee transparent pricing and fixed timelines: a basic integration takes 4–5 days, an extended one up to 7 days. Contact us for a free project evaluation.

How the IML API Works

IML provides a REST API. Base URL: https://api.iml.ru. Authentication is Basic Auth (login and password from your IML account). All requests are POST with a JSON body, responses are also JSON.

Key endpoints:

  • POST /api/v2/auto-zones — calculate delivery zone and cost by address/zip
  • POST /api/v2/orders — create a delivery order
  • GET /api/v2/orders/{orderNumber} — order status
  • GET /api/v1/delivery-points — list of pickup points (can be large—cache it)
  • GET /api/v2/tracking/{barcode} — detailed tracking

According to the IML API documentation, delivery zone calculation requires sender and recipient region codes.

Why IML Is Beneficial for E-commerce

Based on our data, IML is on average 15% cheaper than traditional courier services for distances up to 300 km, and pickup points save up to 40% on last-mile costs. Thanks to the extensive pickup point network (over 5,000 settlements), stores reduce delivery times and decrease rejection rates. Our experience: implementing IML increased checkout conversion by 12% for one client.

Delivery Module in Bitrix

The delivery class inherits \Bitrix\Sale\Delivery\Services\Base. To display pickup points on a map, we also implement a separate component or integrate with an existing pickup point selection widget, if one is already on the project.

Parameters in b_sale_delivery_service_params:

  • IML_LOGIN, IML_PASSWORD
  • SENDER_CODE — sender code (provided by IML when connecting)
  • DELIVERY_TYPE — default delivery type (courier / pickup)

Cost and Zone Calculation

IML calculates cost by zone: first, the delivery zone is determined by locality, then the cost is calculated based on weight and dimensions using a tariff grid.

$response = $httpClient->post( 'https://api.iml.ru/api/v2/auto-zones', [ 'RegionCodeFrom' => $senderRegionCode, 'RegionCodeTo' => $deliveryRegionCode, 'Weight' => $weightGram, 'Volume' => $volumeCm3, 'AssessedValue' => $assessedValue, 'DeliveryType' => 'CurierDelivery', // or 'PickupPoint' ] ); $deliveryPrice = $response['Price']; $deliveryDays = $response['DeliveryTime']; 

IML region codes are their own classification. On first run, we load the region reference GET /api/v2/regions and store it in b_option (or a separate table) for fast lookups.

How Orders Are Created

When an order is confirmed and the delivery method is selected, we create an order in IML:

$orderData = [ 'SenderCode' => $senderCode, 'OrderNumber' => 'SHOP-' . $bitrixOrderId, 'ReceiverName' => $receiverName, 'Phone' => $phone, 'RegionCode' => $regionCode, 'AddressString' => $address, 'Weight' => $weightGram, 'GoodsDescription' => 'Online store goods', 'AssessedValue' => $assessedValue, 'CashOnDelivery'=> $codAmount, // cash on delivery, 0 if prepaid 'DeliveryType' => 'CurierDelivery', ]; 

The response contains BarCode—the IML shipment barcode. We save it in b_sale_order_props as IML_BARCODE.

Pickup Points and Map Selection

The list of pickup points is returned by GET /api/v1/delivery-points — a large array (thousands of objects). We load it once a day via a Bitrix agent and cache it in a highload block or b_iblock_element (infoblock "IML Pickup Points").

On the checkout page, we display a map with pickup points: Yandex.Maps or Google Maps with markers. When a pickup point is selected, we save its code in the order property IML_PICKUP_POINT. When creating an order, we pass PickupPointCode instead of an address.

Statuses and Tracking

Status synchronization via a Bitrix agent: every 30–60 minutes, we poll GET /api/v2/orders/{orderNumber} for active orders. IML also supports webhooks (sending notifications to the merchant's URL)—preferable for high order volumes.

IML Status Bitrix Status
Accepted Transferred for delivery
In transit In transit
Arrived at pickup point warehouse Waiting at pickup point
Delivered Delivered
Return initiated Return

Cash on Delivery

IML supports cash on delivery (COD). The CashOnDelivery amount equals the order total if the buyer pays upon receipt. When configuring two payment methods (prepaid / upon receipt) in Bitrix, the COD selection logic is implemented in calculateConcrete().

Timelines

Scope Components Duration
Basic integration Cost calculation + order creation + tracking 4–5 days
+ Pickup point map Pickup point infoblock + map widget +3 days
+ Cash on delivery COD logic + payout synchronization +1–2 days

What the Work Includes

  • Documentation: integration description, data schemes, settings
  • Access: to server, IML API, personal account
  • Training: instructions for managers and operators
  • Support: 2 weeks post-launch with 99.9% SLA guarantee

We are a certified Bitrix Partner with over 10 years of integration experience and have completed over 100 projects connecting delivery services to 1C-Bitrix. Reach out—we'll evaluate your project within one business day.