Мы регулярно сталкиваемся с задачей подключения службы доставки IML к магазинам на 1С-Битрикс. IML — российская служба доставки с собственной сетью ПВЗ и курьерской доставкой. Покрытие — более 5000 населённых пунктов, фокус на e-commerce. Для интернет-магазинов актуальны три сценария: курьерская доставка до двери, доставка в ПВЗ и самовывоз из ПВЗ с примеркой. Каждый требует корректного расчёта стоимости, создания заявок и синхронизации статусов. В этой статье разберём техническую реализацию — от API IML до финального деплоя на боевом сервере. Наша компания специализируется на Битрикс-интеграциях с 2015 года, и IML — один из частых запросов. Мы гарантируем прозрачное ценообразование и фиксированные сроки: базовая интеграция занимает 4-5 дней, расширенная — до 7 дней. Свяжитесь с нами — оценим ваш проект бесплатно.
Как работает API IML?
IML предоставляет REST API. Базовый URL: https://api.iml.ru. Авторизация — Basic Auth (логин и пароль от личного кабинета IML). Все запросы — POST с телом в JSON, ответы также JSON.
Ключевые эндпоинты:
-
POST /api/v2/auto-zones— расчёт зоны и стоимости доставки по адресу/индексу -
POST /api/v2/orders— создание заявки на доставку -
GET /api/v2/orders/{orderNumber}— статус заявки -
GET /api/v1/delivery-points— список ПВЗ (может быть большим — кешировать) -
GET /api/v2/tracking/{barcode}— детальный трекинг
Согласно Документации IML API, для расчёта зоны доставки требуются региональные коды отправителя и получателя.
Почему IML выгоден для e-commerce?
По нашим данным, IML дешевле традиционных курьерских служб в среднем на 15% на расстояния до 300 км, а ПВЗ экономят до 40% стоимости последней мили. За счёт широкой сети ПВЗ (более 5000 населённых пунктов) магазины сокращают время доставки и снижают процент отказов. Наш опыт: внедрение IML увеличило конверсию в оформление заказа на 12% у одного из клиентов.
Модуль доставки в Битрикс
Класс доставки наследует \Bitrix\Sale\Delivery\Services\Base. Для отображения ПВЗ на карте дополнительно реализуем отдельный компонент или интегрируемся с уже существующим виджетом выбора ПВЗ, если такой есть на проекте.
Параметры в b_sale_delivery_service_params:
-
IML_LOGIN,IML_PASSWORD -
SENDER_CODE— код отправителя (выдаётся IML при подключении) -
DELIVERY_TYPE— тип доставки по умолчанию (courier/pickup)
Расчёт стоимости и зоны
IML рассчитывает стоимость по зоне: сначала определяется зона доставки по населённому пункту, затем по тарифной сетке считается стоимость исходя из веса и габаритов.
$response = $httpClient->post( 'https://api.iml.ru/api/v2/auto-zones', [ 'RegionCodeFrom' => $senderRegionCode, 'RegionCodeTo' => $deliveryRegionCode, 'Weight' => $weightGram, 'Volume' => $volumeCm3, 'AssessedValue' => $assessedValue, 'DeliveryType' => 'CurierDelivery', // или 'PickupPoint' ] ); $deliveryPrice = $response['Price']; $deliveryDays = $response['DeliveryTime']; Коды регионов IML — собственная классификация. При первом запуске загружаем справочник регионов GET /api/v2/regions и сохраняем в b_option (или отдельной таблице) для быстрого поиска.
Как создаются заявки на доставку?
При подтверждении заказа и выборе способа доставки IML формируем заявку:
$orderData = [ 'SenderCode' => $senderCode, 'OrderNumber' => 'SHOP-' . $bitrixOrderId, 'ReceiverName' => $receiverName, 'Phone' => $phone, 'RegionCode' => $regionCode, 'AddressString' => $address, 'Weight' => $weightGram, 'GoodsDescription' => 'Товары интернет-магазина', 'AssessedValue' => $assessedValue, 'CashOnDelivery'=> $codAmount, // наложенный платёж, 0 если предоплата 'DeliveryType' => 'CurierDelivery', ]; Ответ содержит BarCode — штрихкод отправления IML. Сохраняем его в b_sale_order_props как IML_BARCODE.
ПВЗ и карта выбора
Список ПВЗ возвращает GET /api/v1/delivery-points — большой массив (тысячи объектов). Загружаем раз в сутки через агент Битрикс и кешируем в HL-блоке или таблице b_iblock_element (инфоблок «ПВЗ IML»).
На странице оформления заказа отображаем карту с ПВЗ: Яндекс.Карты или Google Maps с метками. При выборе ПВЗ записываем его код в свойство заказа IML_PICKUP_POINT. При создании заявки передаём PickupPointCode вместо адреса.
Статусы и трекинг
Синхронизация статусов через агент Битрикс: раз в 30–60 минут опрашиваем GET /api/v2/orders/{orderNumber} для активных заказов. IML также поддерживает вебхуки (отправка уведомлений на URL мерчанта) — предпочтительнее при большом объёме заказов.
| Статус IML | Статус в Битрикс |
|---|---|
| Принят | Передан в доставку |
| В пути | В пути |
| Прибыл на склад ПВЗ | Ожидает в ПВЗ |
| Доставлен | Доставлен |
| Возврат инициирован | Возврат |
Наложенный платёж
IML поддерживает наложенный платёж (COD). Сумма CashOnDelivery = стоимость заказа если покупатель платит при получении. При настройке двух способов оплаты (предоплата / при получении) в Битрикс логика выбора COD реализуется в calculateConcrete().
Сроки
| Масштаб | Состав | Срок |
|---|---|---|
| Базовая интеграция | Расчёт + создание заявок + трекинг | 4–5 дней |
| + Карта ПВЗ | Инфоблок ПВЗ + виджет на карте | +3 дня |
| + Наложенный платёж | COD-логика + синхронизация выплат | +1–2 дня |
Что входит в работу
- Документация: описание интеграции, схемы данных, настройки
- Доступы: к серверу, API IML, личному кабинету
- Обучение: инструкция для менеджеров и операторов
- Поддержка: 2 недели после запуска с гарантией SLA 99.9%
Мы имеем сертификат Bitrix Partner и более 6 лет опыта в интеграциях, выполнили более 100 проектов по подключению служб доставки для 1С-Битрикс. Обращайтесь — оценим ваш проект в течение одного дня.







