Інтеграція 1С-Бітрікс зі службою доставки IML

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс зі службою доставки IML
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Bitrix зі службою доставки IML

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

API IML: структура та авторизація

IML надає REST API. Базова URL: https://api.iml.ru. Авторизація через Basic Auth (логін та пароль з особистого кабінету IML). Усі запити — POST з тілом у JSON, відповіді також у JSON.

Ключові endpoints:

  • 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

Клас доставки успадковує \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 — великий масив (тисячі об'єктів). Завантажуємо раз на добу через агент Bitrix і кешуємо в HL-блоці або таблиці b_iblock_element (інфоблок «ПВЗ IML»).

На сторінці оформлення замовлення відображаємо карту з ПВЗ: Яндекс.Карти або Google Maps з позначками. При виборі ПВЗ записуємо його код у властивість замовлення IML_PICKUP_POINT. При створенні заявки передаємо PickupPointCode замість адреси.

Статуси та трекінг

Синхронізація статусів через агент Bitrix: кожні 30–60 хвилин опитуємо GET /api/v2/orders/{orderNumber} для активних замовлень. IML також підтримує вебхуки (надсилання сповіщень на URL магазину) — краще при великому обсязі замовлень.

Статус IML Статус у Bitrix
Прийнято Передано в доставку
У пути У пути
Прибув на склад ПВЗ Очікує в ПВЗ
Доставлено Доставлено
Повернення ініційовано Повернення

Накладений платіж

IML підтримує накладений платіж (COD). Сума CashOnDelivery = вартість замовлення, якщо покупець платить під час отримання. При налаштуванні двох способів оплати (передплата / при отриманні) в Bitrix логіка вибору COD реалізується в calculateConcrete().

Графік

Масштаб Компоненти Тривалість
Базова інтеграція Розрахунок + створення заявок + трекінг 4–5 днів
+ Карта ПВЗ Інфоблок ПВЗ + віджет карти +3 дні
+ Накладений платіж Логіка COD + синхронізація платежів +1–2 дні