Интеграция 1С-Битрикс со службой доставки IML

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс со службой доставки IML
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция 1С-Битрикс со службой доставки IML

IML — российская служба доставки с собственной сетью пунктов выдачи и курьерской доставкой. Покрытие — более 5000 населённых пунктов, фокус на e-commerce. Для Битрикс-магазинов актуальны три сценария: курьерская доставка до двери, доставка в ПВЗ и самовывоз из ПВЗ с примеркой.

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} — детальный трекинг

Модуль доставки в Битрикс

Класс доставки наследует \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 дня