Интеграция 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 для компании ТЕХНОТОРГКОМПЛЕКС
    1208

Каждый день диспетчер тратит 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 день. Для заказа интеграции свяжитесь с нами — поможем настроить автоматизацию доставки.