Клиент дошёл до оформления заказа, выбрал доставку — и видит либо «стоимость уточнит менеджер», либо тариф, который потом не совпадёт с реальным. Каждая такая неопределённость на последнем шаге стоит магазину заказов: покупатель хочет сразу знать, сколько и когда, и выбрать удобный пункт выдачи, не выходя из корзины. Ручной расчёт доставки и ручное создание заявок — это и потерянные продажи, и лишняя работа менеджеров.
Эта статья — практическое руководство по интеграции Яндекс Доставки с интернет-магазином на 1С-Битрикс: как устроены службы доставки, как подключить автоматический расчёт стоимости, показать ПВЗ на карте, создавать заявки и отслеживать статусы. Полноценную настройку доставки и обмена с 1С мы закрываем услугой автоматизации продаж и склада на 1С.
Коротко
- Доставка в Битрикс реализуется через службы доставки и обработчики модуля «Интернет-магазин».
- Обработчик обращается к API Яндекс Доставки и рассчитывает стоимость и срок по адресу, весу и габаритам.
- ПВЗ показываются на карте при оформлении, выбор клиента сохраняется в заказе.
- Создание заявок и трекинг выносят в фон с повторными попытками, чтобы сбой API не ломал оформление.
Что даёт интеграция Яндекс Доставки
Автоматизация доставки закрывает сразу несколько болей — и покупателя, и магазина. Покупатель получает прозрачность на последнем, самом чувствительном шаге воронки: точную стоимость, реальный срок и выбор удобного пункта выдачи прямо в корзине. Это снижает число брошенных заказов, ведь неопределённость с доставкой — одна из главных причин, по которым клиент уходит без покупки.
Магазин, в свою очередь, избавляется от ручного труда: не нужно вручную считать доставку по каждому заказу и вручную заводить заявки в кабинете перевозчика. Расчёт идёт по реальным тарифам, заявки создаются автоматически, а статусы подтягиваются сами. Это ускоряет обработку заказов и убирает ошибки ручного ввода адресов и габаритов.
Как устроена доставка в 1С-Битрикс
Чтобы интеграция легла правильно, важно понимать штатную модель доставки Битрикса. Она реализована в модуле «Интернет-магазин» и построена вокруг служб доставки.
- Служба доставки. Способ доставки, который клиент видит при оформлении (курьер, ПВЗ, самовывоз).
- Обработчик. Код, который отвечает за расчёт стоимости и сроков для службы: обращается к API перевозчика или считает по правилам.
- Профили. Варианты внутри службы — например, разные тарифы или типы доставки одного перевозчика.
- Ограничения. Правила, при которых служба доступна: регион, вес, сумма заказа.
Интеграция Яндекс Доставки — это, по сути, служба доставки со своим обработчиком, который на этапе оформления обращается к API Яндекса. Всё остальное (выбор в корзине, сохранение в заказе) работает штатными механизмами Битрикса.
Способы подключения: готовое решение или свой обработчик
Есть два пути интеграции, и выбор зависит от требований проекта.
| Критерий | Готовое решение из Маркетплейса | Собственный обработчик |
|---|---|---|
| Скорость запуска | Быстро | Дольше |
| Гибкость | Ограничена возможностями модуля | Полная под ваши сценарии |
| Нестандартная логика | Сложно или невозможно | Реализуется как нужно |
| Поддержка | Зависит от вендора | Ваша команда |
| Кому подходит | Типовым магазинам | Проектам со своей логикой |
Готовое решение хорошо для типового магазина, где нужен стандартный расчёт и ПВЗ. Собственный обработчик выбирают, когда есть нестандартная логика: особые правила тарификации, интеграция расчёта с оптовыми условиями, специфический выбор ПВЗ или связка с внутренними системами. Часто оптимален гибридный путь — базовое решение, дополненное кастомной логикой.
Что нужно подготовить до интеграции
Успех интеграции закладывается до написания кода. Перед стартом стоит подготовить несколько вещей.
- Доступ к API. Учётная запись и ключи Яндекс Доставки, настроенный кабинет перевозчика.
- Весогабариты товаров. Вес и размеры в каталоге — без них расчёт невозможен.
- Регионы и склады отгрузки. Откуда отгружаете, какие регионы обслуживаете.
- Сценарии доставки. Курьер, ПВЗ, постаматы — что предлагаете клиенту.
- Связь с 1С. Как заказ и его статус доставки будут отражаться в учётной системе.
Весогабаритные характеристики товаров
Точность всей интеграции упирается в вес и габариты товаров. По ним API рассчитывает стоимость и формирует заявку, поэтому неверные данные означают неверную цену доставки и последующий пересчёт перевозчиком по факту — а это расхождения и претензии клиентов.
Весогабариты ведут как свойства товара в торговом каталоге, и в идеале они приходят из 1С при обмене, чтобы данные были едиными и актуальными. Для товаров с вариантами (размеры, фасовки) характеристики задают на уровне торговых предложений. Настройка стабильного обмена этими данными — часть работы, которую мы выполняем в рамках автоматизации на 1С, а предварительно оцениваем узкие места через аудит и оптимизацию 1С.
Автоматический расчёт стоимости и сроков
Сердце интеграции — автоматический расчёт. Когда клиент на оформлении вводит адрес или выбирает ПВЗ, обработчик службы доставки передаёт в API Яндекса адрес назначения, регион, вес и габариты заказа и получает актуальную стоимость и срок. Клиент видит реальную цену доставки сразу, а не «уточнит менеджер».
Чтобы расчёт был быстрым и не раздражал пользователя, ответы API кэшируют на короткое время, а сам расчёт делают асинхронно на нужных шагах оформления. Важно предусмотреть запасной сценарий: если API временно не ответило, клиент должен иметь возможность завершить заказ (например, по базовому тарифу с последующим уточнением), а не упереться в ошибку. Тяжёлые обращения к внешним API в высоконагруженных магазинах выносят в фон через очереди — этот подход мы разбираем в статье про REST, вебхуки и безопасность в Битрикс.
Пункты выдачи на карте
Выбор пункта выдачи на карте — важная часть пользовательского опыта. Список ПВЗ запрашивается у API по региону клиента и отображается на карте прямо в оформлении заказа. Покупатель выбирает удобный пункт, а его идентификатор сохраняется в заказе и потом передаётся при создании заявки.
Технически здесь важны две вещи: удобная карта в шаблоне оформления и кэширование данных о ПВЗ, чтобы не дёргать API на каждый шаг и не тормозить корзину. Список пунктов по региону меняется редко, поэтому его можно держать в кэше и обновлять периодически. Аккуратно встроенная карта с фильтром по адресу заметно повышает долю доставок в ПВЗ, которые обычно дешевле курьерских.
Создание заявки на доставку
После того как заказ оформлен и подтверждён, данные передаются в API Яндекс Доставки, который создаёт заявку и возвращает её номер и трек. В заявку уходят адрес или выбранный ПВЗ, состав заказа, весогабариты и данные получателя.
Создание заявки правильно выносить в фоновую задачу, а не выполнять синхронно в момент оформления. Так оформление не тормозит и не зависит от доступности API: если Яндекс временно недоступен, задача повторится позже. Номер заявки и трек сохраняются в заказе и при необходимости передаются в 1С. Для магазинов с большим потоком заказов такой фоновый подход через очереди — стандарт надёжности, о котором мы писали в материале про очереди RabbitMQ и Kafka в Битрикс.
Трекинг и статусы заказа
Клиент, оформивший доставку, хочет видеть, где его заказ. Статусы получают от API Яндекса — периодическим опросом или через уведомления, если они поддерживаются, — и сохраняют в заказе. Актуальный статус показывают покупателю в личном кабинете и при необходимости отражают в 1С.
Обновление статусов удобно выполнять фоновым процессом: регулярный опрос по активным заказам обновляет данные без нагрузки на пользовательские страницы. Прозрачный трекинг снижает нагрузку на поддержку — клиент сам видит статус, а не пишет «где мой заказ?». Личный кабинет с историей и статусами доставки — типовой элемент, который мы реализуем в проектах интернет-магазинов и B2B-порталов.
Надёжность интеграции и обработка сбоев
Любая интеграция с внешним API — это зависимость от чужого сервиса, который может тормозить или падать. Хорошая интеграция спроектирована так, чтобы сбой Яндекса не ломал работу магазина.
- Фоновые операции. Создание заявок и обновление статусов идут в фоне с повторными попытками, а не в веб-запросе.
- Запасной расчёт. Если API не ответило при оформлении, клиент может завершить заказ по базовому тарифу.
- Логирование обращений. Все запросы и ответы API логируются для разбора спорных ситуаций.
- Идемпотентность. Повтор задачи не создаёт вторую заявку на один заказ.
Такой подход превращает хрупкую связку «сайт ↔ внешний API» в устойчивый механизм: пользователь всегда может оформить заказ, а операции с перевозчиком надёжно доводятся до конца даже при временных сбоях.
Частые ошибки
- Нет весогабаритов. Расчёт идёт по нулям или заглушкам, перевозчик пересчитывает по факту — расхождения.
- Синхронное создание заявок. Оформление тормозит и падает, когда API Яндекса недоступно.
- Нет запасного сценария расчёта. Сбой API оставляет клиента без возможности завершить заказ.
- ПВЗ без кэша. Список пунктов запрашивается на каждый шаг, корзина тормозит.
- Статусы не обновляются. Клиент не видит трекинг и заваливает поддержку вопросами.
- Нет идемпотентности. Повторная фоновая задача создаёт дубль заявки на доставку.
- Данные не связаны с 1С. Статусы и заявки живут только на сайте и не отражаются в учёте.
Чек-лист внедрения
- Доступ к API готов. Ключи и кабинет перевозчика настроены.
- Весогабариты в каталоге. Вес и размеры ведутся как свойства и приходят из 1С.
- Служба доставки создана. Обработчик считает стоимость и сроки через API по адресу и габаритам.
- ПВЗ на карте. Пункты выдачи показываются по региону и кэшируются, выбор сохраняется в заказе.
- Заявки в фоне. Создание заявок вынесено в фоновую задачу с повторами и идемпотентностью.
- Трекинг работает. Статусы регулярно обновляются и видны клиенту в кабинете.
- Сбои обрабатываются. Есть запасной расчёт, логирование и устойчивость к недоступности API.
- Связь с 1С. Заказы и статусы доставки отражаются в учётной системе.
Вывод
Интеграция Яндекс Доставки превращает самый чувствительный шаг воронки — выбор доставки — из источника потерянных заказов в конкурентное преимущество. Клиент сразу видит реальную стоимость и срок, выбирает удобный ПВЗ на карте, а магазин избавляется от ручного расчёта и ручного заведения заявок.
Технически всё держится на трёх вещах: аккуратных весогабаритах товаров, правильно реализованном обработчике службы доставки и надёжности через фоновые задачи с повторными попытками. Наведите порядок в данных, вынесите обращения к API в фон и свяжите заказы с 1С — и доставка станет быстрой, прозрачной и устойчивой к сбоям.