Інтеграція 1С-Бітрікс із сервісами оптимізації маршрутів

Ручне планування маршрутів забирає години та призводить до зайвих витрат на паливо. Ми інтегруємо 1С-Бітрікс із сервісами оптимізації маршрутів, автоматизуючи цей процес. Наша команда реалізує проєкт під ключ — від вибору відповідного API до впровадження та подальшої підтримки.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс із сервісами оптимізації маршрутів
Середній
~1-2 тижні

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

Часті запитання

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1532
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1045
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    820
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    915
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    853
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1209

Щодня диспетчер витрачає 2-3 години на ручне планування маршрутів. Кур'єри не встигають доставити всі замовлення вчасно, повторні виїзди збільшують витрати на паливо. Інтеграція 1С-Бітрікс з API сервісів оптимізації маршрутів вирішує ці проблеми: алгоритми знаходять оптимальний маршрут за секунди, враховуючи затори, часові вікна та завантаження автомобіля. Наша команда виконала 30+ таких інтеграцій для бізнесу від 1 до 100 машин. Досвід показує, що після впровадження час планування скорочується до 10 хвилин, а пробіг — на 15-25%. Гарантуємо стабільну роботу інтеграції на всіх етапах.

Задача оптимізації маршрутів (Vehicle Routing Problem, VRP) — NP-складна, згідно з Wikipedia. На практиці справляються комерційні сервіси: Яндекс.Маршрутизація, Route4Me, Routific, OptimoRoute. Вони обробляють 10 000 точок за секунди — в 10 разів швидше самописних рішень. Безкоштовний OR-Tools від Google теж дає відмінні результати. Ми інтегруємо будь-який з них у вашу CRM на Бітрікс через універсальний адаптер. Сертифіковані інженери підберуть відповідний сервіс під ваш бюджет.

Проблеми, які вирішуємо

  • Довге ручне планування: логіст витрачає 2-3 години вранці. Автоматизація скорочує це до 10 хвилин.
  • Перевантажені маршрути: без оптимізації кур'єр проїжджає зайві 50 км на день. Оптимізатор знижує пробіг на 15-25%, економлячи витрати на паливо.
  • Помилки геокодування: якщо адресу не перетворено на координати, машина їде не туди. Ми геокодуємо під час імпорту замовлення, використовуючи свіжі бази.

Економія часу диспетчера — 2 години на день. Зниження витрат на логістику — до 25%.

Як вибрати сервіс оптимізації під бізнес?

Сервіс Особливості Модель оплати
Яндекс.Маршрутизація Російська інфраструктура, хороша геокодингова база Запити + склад кур'єрів
Route4Me Гнучкий API, часові вікна, мультидепо Підписка
Routific Просте API, підходить для малого автопарку Підписка від 5 машин
OptimoRoute Пріоритети, компетенції водіїв Підписка
OR-Tools Безкоштовний, self-hosted, потребує Python-сервер Свої сервери

Вибір залежить від кількості машин та обсягу замовлень. Для 1-3 машин — Routific або Яндекс, для 10+ — Route4Me з мультидепо. Ми допомагаємо підібрати варіант.

Архітектура інтеграції

Цикл роботи:

  1. Вранці агент збирає замовлення на сьогодні зі статусом «До доставки» з b_sale_order.
  2. Формує список точок з адресами, координатами та часовими вікнами.
  3. Надсилає запит в API оптимізатора.
  4. Зберігає маршрути в bl_delivery_routes.
  5. Призначає водіїв через CRM або вручну.
  6. При завершенні доставки вебхук від оптимізатора оновлює статуси замовлень.
Кейс: автоматизація для мережі доставкиДля мережі з 15 машин з мультидепо інтегрували Route4Me. Час планування скоротився з 3 годин до 15 хвилин, пробіг — на 20%. Клієнт отримав карту маршрутів в адмінці та автоматичні сповіщення клієнтам.

Чому інтеграція через адаптер — надійний спосіб?

Реалізуємо патерн адаптер — один інтерфейс, декілька реалізацій:

interface RouteOptimizerInterface {
    public function optimize(array $depot, array $vehicles, array $orders): array;
}

class YandexRouteOptimizer implements RouteOptimizerInterface {
    public function optimize(array $depot, array $vehicles, array $orders): array {
        $payload = [
            'depot' => $depot,
            'vehicles' => $vehicles,
            'orders' => array_map(fn($o) => [
                'id' => (string)$o['order_id'],
                'point' => ['lat' => $o['lat'], 'lon' => $o['lon']],
                'time_window' => [$o['time_from'], $o['time_to']],
                'service_duration' => 300,
            ], $orders),
        ];

        $http = new \Bitrix\Main\Web\HttpClient();
        $http->setHeader('Content-Type', 'application/json');
        $http->setHeader('X-Ya-Courier-Request-Id', uniqid());
        $response = $http->post(
            'https://courier.yandex.ru/api/v1/companies/' . $this->companyId . '/routes',
            json_encode($payload)
        );

        return json_decode($response, true);
    }
}

class Route4MeOptimizer implements RouteOptimizerInterface {
    public function optimize(array $depot, array $vehicles, array $orders): array {
        // Route4Me-специфічна логіка
    }
}

Конкретна реалізація вибирається через фабричний метод, конфігурується в b_option.

Перетворення даних замовлення

Ключовий момент — коректне перетворення даних Бітрікс у формат API оптимізатора. Адресу потрібно геокодувати в координати (якщо не зроблено під час замовлення), часові вікна — конвертувати в формат оптимізатора. Дані про товари можуть імпортуватися через CommerceML, що спрощує завантаження ваги та об'єму.

function buildOrderPoint(\Bitrix\Sale\Order $order): array {
    $props = $order->getPropertyCollection();
    return [
        'order_id' => $order->getId(),
        'lat' => (float)$props->getItemByOrderPropertyCode('LAT')?->getValue(),
        'lon' => (float)$props->getItemByOrderPropertyCode('LON')?->getValue(),
        'time_from' => $this->toUnix($props->getItemByOrderPropertyCode('DELIVERY_TIME_FROM')?->getValue()),
        'time_to' => $this->toUnix($props->getItemByOrderPropertyCode('DELIVERY_TIME_TO')?->getValue()),
        'weight_kg' => $this->getBasketWeight($order->getBasket()),
        'volume_m3' => $this->getBasketVolume($order->getBasket()),
        'priority' => (int)$props->getItemByOrderPropertyCode('DELIVERY_PRIORITY')?->getValue(),
    ];
}

Збереження та відображення маршрутів

Структура таблиці bl_delivery_routes:

route_id — ID маршруту від оптимізатора
route_date — дата доставки
vehicle_id — ID транспортного засобу
driver_id — CRM-контакт водія
stops_json — JSONB впорядкований список зупинок
total_distance — загальний пробіг у км
estimated_time — передбачуваний час у хвилинах
status — planned / in_progress / completed
created_at

Маршрут відображається на карті в адміністративному розділі через Яндекс.Карти API або Leaflet.js. Водію — посилання з waypoints.

Оновлення статусів замовлень

По завершенні доставки в точці оптимізатор (або водій через мобільний додаток) надсилає подію. Вебхук Бітрікс оновлює статус конкретного замовлення:

// /bitrix/route_webhook.php
$data = json_decode(file_get_contents('php://input'), true);
foreach ($data['completed_stops'] as $stop) {
    $order = \Bitrix\Sale\Order::load((int)$stop['order_id']);
    if ($order) {
        $order->setField('STATUS_ID', 'F');
        $order->save();
        // Відправка листа клієнту про доставку
    }
}

Терміни виконання за масштабом

Масштаб Особливості Терміни
Малий (1–3 машини) Один адаптер, ручне призначення водіїв 3–5 днів
Середній (5–20 машин) Автоназначення, карта маршрутів, вебхуки статусів 8–12 днів
Великий (20+ машин) Мультидепо, компетенції водіїв, реалтайм-трекінг 20–35 днів

Що входить у роботу

  • Розробка інтерфейсу RouteOptimizerInterface з адаптерами під ваші сервіси (1-3 дні на перший адаптер)
  • Налаштування агента збору замовлень та відправки в оптимізатор вранці робочого дня
  • Створення таблиці bl_delivery_routes зі зберіганням маршрутів та статусів
  • Реалізація карти маршрутів в адміністративному розділі
  • Налаштування вебхука оновлення статусів замовлень після виконання доставки
  • Документація з архітектури та навчання логістів (1-2 години)
  • Підтримка 30 днів після здачі

Інтеграція виконується під ключ. Оцінимо ваш проект за 1 день. Для замовлення інтеграції зв'яжіться з нами — допоможемо налаштувати автоматизацію доставки.