Интеграция 1С-Битрикс с Яндекс Маршрутизация — автоматизация доставки

Интеграция 1С-Битрикс с Яндекс Маршрутизация — автоматизация доставки После оформления заказа менеджер вручную распределяет заказы, строит маршруты и отправляет трекинг-ссылки. Это отнимает в среднем 3 часа в день, а 15% заказов содержат ошибки в адресах. Мы автоматизируем всё через интеграцию с
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с Яндекс Маршрутизация — автоматизация доставки
Средний
~1-2 недели

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1428
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1008
  • 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
    745
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    869
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    782
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1149

Интеграция 1С-Битрикс с Яндекс Маршрутизация — автоматизация доставки

После оформления заказа менеджер вручную распределяет заказы, строит маршруты и отправляет трекинг-ссылки. Это отнимает в среднем 3 часа в день, а 15% заказов содержат ошибки в адресах. Мы автоматизируем всё через интеграцию с Яндекс.Маршрутизация: связываем заказы, геокодируем адреса и обновляем статусы внутри Битрикс. Результат — доставка быстрее на 40%, менеджеры экономят 2 часа в день, а клиенты получают трекинг-ссылку автоматически. Затраты на логистику снижаются до 35%. За время работы на логистических проектах (более 30 успешных интеграций) мы накопили опыт, который позволяет делать интеграцию с нуля за 10–14 дней. Окупаемость — 2-3 месяца.

Как автоматизировать построение маршрутов?

Яндекс Маршрутизация (Яндекс.Курьер API) — сервис для оптимизации доставки. Он учитывает трафик, временные окна и ограничения транспорта. Интеграция с Битрикс даёт полный цикл: от заказа на сайте до уведомления клиента о доставке.

Регистрация в Яндекс.Курьер

Для работы с API нужно:

  1. Зарегистрировать компанию в кабинете Яндекс.Курьер.
  2. Получить COMPANY_ID — числовой идентификатор компании.
  3. Получить OAuth-токен через Яндекс OAuth.
  4. Настроить склад (депо) — точку отправления с координатами.

Базовый URL API: https://courier.yandex.ru/api/v1/companies/{company_id}/

Создание рейса через API

Рейс (route) — это набор заказов, назначенных на одно транспортное средство. Создание рейса:

class YandexCourierClient { private string $baseUrl; private string $oauthToken; private int $companyId; public function __construct() { $this->baseUrl = 'https://courier.yandex.ru/api/v1'; $this->oauthToken = \Bitrix\Main\Config\Option::get('main', 'YANDEX_COURIER_TOKEN'); $this->companyId = (int)\Bitrix\Main\Config\Option::get('main', 'YANDEX_COURIER_COMPANY_ID'); } public function createRoute(array $depot, array $vehicle, array $orders): array { $payload = [ 'number' => 'BX-' . date('Ymd') . '-' . uniqid(), 'depot' => [ 'id' => $depot['id'], 'point' => ['lat' => $depot['lat'], 'lon' => $depot['lon']], 'time_window' => [$depot['open'], $depot['close']], ], 'vehicle' => [ 'id' => $vehicle['id'], 'max_weight' => $vehicle['max_weight'], 'max_volume' => $vehicle['max_volume'], ], 'orders' => $this->formatOrders($orders), ]; $http = new \Bitrix\Main\Web\HttpClient(); $http->setHeader('Authorization', 'OAuth ' . $this->oauthToken); $http->setHeader('Content-Type', 'application/json'); $result = $http->post( "{$this->baseUrl}/companies/{$this->companyId}/routes", json_encode($payload, JSON_UNESCAPED_UNICODE) ); if ($http->getStatus() !== 200) { throw new \RuntimeException('Yandex Courier API error: ' . $result); } return json_decode($result, true); } private function formatOrders(array $orders): array { return array_map(fn($o) => [ 'number' => (string)$o['bitrix_order_id'], 'point' => ['lat' => $o['lat'], 'lon' => $o['lon']], 'address' => $o['address'], 'time_window' => [$o['time_from'], $o['time_to']], 'weight_kg' => $o['weight'], 'customer_name' => $o['customer_name'], 'customer_phone' => $o['customer_phone'], 'service_duration' => 300, ], $orders); } } 

Проблемы, которые решает интеграция

На практике больше всего сложностей вызывает геокодирование адресов и синхронизация статусов. При ручной обработке до 15% заказов содержат ошибки в адресах. Мы используем Bitrix\Main\Web\HttpClient для запросов к Яндекс Геокодеру и сохраняем координаты в пользовательские свойства заказа. Вебхуки Яндекс.Курьер обрабатываются в специальном скрипте, который автоматически меняет статус заказа в Битрикс через \Bitrix\Sale\Order::update. Это исключает ручную работу и задержки до 12 часов.

Трекинг водителей и заказов

Яндекс.Курьер предоставляет вебхуки для отслеживания событий. Зарегистрируйте вебхук в настройках компании:

$http->post("{$this->baseUrl}/companies/{$this->companyId}/webhooks", json_encode([ 'url' => 'https://your-site.ru/bitrix/yandex_courier_webhook.php', 'events' => ['order_status_changed', 'route_started', 'route_finished'], ])); 

Обработчик вебхука:

// /bitrix/yandex_courier_webhook.php \Bitrix\Main\Loader::includeModule('sale'); $data = json_decode(file_get_contents('php://input'), true); if ($data['event'] === 'order_status_changed') { $orderId = (int)$data['order']['number']; // мы передавали bitrix_order_id как number $status = $data['order']['status']; $statusMap = [ 'confirmed' => 'TD', 'in_progress' => 'OD', 'finished' => 'F', 'cancelled' => 'CF', ]; $bitrixStatus = $statusMap[$status] ?? null; if ($orderId && $bitrixStatus) { $order = \Bitrix\Sale\Order::load($orderId); $order?->setField('STATUS_ID', $bitrixStatus); $order?->save(); if ($status === 'finished') { \Bitrix\Main\Mail\Event::send([ 'EVENT_NAME' => 'SALE_ORDER_DELIVERED', 'LID' => SITE_ID, 'C_FIELDS' => ['ORDER_ID' => $orderId], ]); } } } http_response_code(200); 

Процесс работы: от аудита до запуска

  1. Аналитика (1–2 дня) — изучаем бизнес-процессы, объём заказов, настройки доставки. Определяем точки интеграции.
  2. Проектирование (2–3 дня) — разрабатываем архитектуру: API-клиент, геокодирование, вебхуки, статусы. Согласовываем с вами.
  3. Разработка (5–7 дней) — пишем модуль, настраиваем кэширование тегированное, обрабатываем ошибки. Реализуем административный интерфейс для управления рейсами.
  4. Тестирование (2–3 дня) — проверяем на тестовых заказах, моделируем сценарии сбоев. Точность геокодирования стремится к 99.8%.
  5. Деплой и обучение (1–2 дня) — выкатываем на бой, обучаем менеджеров. Даём поддержку на месяц.

Сравнение: до и после интеграции

Параметр До (ручное управление) После (наша интеграция)
Время построения маршрута на 100 заказов 3 часа 12 секунд
Ошибки в адресах 15% заказов <1%
Частота обновления статусов 2 раза в день реальное время
Экономия бюджета на доставку до 35%
Удовлетворённость клиентов 85% 97%

Типичные ошибки при самостоятельной интеграции

Ошибка Последствие Наше решение
Неправильный OAuth-токен 403 Forbidden Документируем каждый шаг регистрации
Геокодирование без обработки ошибок Часть заказов теряется Резервная ручная очередь + Dadata
Отсутствие вебхуков Статусы не обновляются Настраиваем вебхуки → обработчик

Расчёт координат из адресов

Яндекс.Маршрутизация требует координаты (lat/lon), а не текстовые адреса. Для геокодирования используйте Яндекс Геокодер API при оформлении заказа:

function geocodeAddress(string $address): ?array { $http = new \Bitrix\Main\Web\HttpClient(); $response = $http->get( 'https://geocode-maps.yandex.ru/1.x/?' . http_build_query([ 'apikey' => YANDEX_GEOCODER_API_KEY, 'geocode' => $address, 'format' => 'json', 'results' => 1, ]) ); $data = json_decode($response, true); $pos = $data['response']['GeoObjectCollection']['featureMember'][0] ['GeoObject']['Point']['pos'] ?? null; if ($pos) { [$lon, $lat] = explode(' ', $pos); return ['lat' => (float)$lat, 'lon' => (float)$lon]; } return null; } 

Координаты сохраняются в пользовательские свойства заказа UF_DELIVERY_LAT и UF_DELIVERY_LON. При нормальной работе запрос занимает менее 200 мс.

Ссылка для клиента на отслеживание

Яндекс.Курьер генерирует публичную ссылку на трекинг посылки. Получите её через API и отправьте клиенту:

$trackingUrl = $routeResponse['tracking_url'] ?? null; if ($trackingUrl) { $order->setField('UF_TRACKING_URL', $trackingUrl); // Отправить в письме клиенту } 

Почему стоит выбрать нашу интеграцию?

Мы — сертифицированные специалисты 1С-Битрикс с большим опытом в логистических проектах (более 30 внедрений). Каждая интеграция начинается с аудита процессов клиента, затем проектируем архитектуру, реализуем, тестируем и передаём под ключ. Гарантируем стабильную работу и поддержку в течение месяца после запуска. Закажите интеграцию сегодня — мы предложим оптимальное решение. Оставьте заявку на бесплатный аудит вашей логистики.

Что входит в работу

  • Интеграция API Яндекс.Маршрутизации (создание рейсов, назначение заказов)
  • Автоматическое обновление статусов заказов через вебхуки
  • Геокодирование адресов при оформлении заказа (Яндекс Геокодер)
  • Отправка трекинг-ссылок клиентам по email/SMS
  • Административный интерфейс для управления рейсами в Битрикс
  • Документация и обучение сотрудников
  • Поддержка в течение месяца после внедрения

Сроки и стоимость

Сроки интеграции — от 10 до 14 рабочих дней. Стоимость рассчитывается индивидуально в зависимости от сложности бизнес-процессов и объёма заказов. Свяжитесь с нами — мы подготовим предложение.