Вернуться к списку Вернуться к статьям
Статьи

Интеграция интернет-магазина со службами доставки

Покупатель оформляет заказ, выбирает пункт выдачи и ждёт уведомления. Если сайт показывает только «заказ передан в доставку», оператору трудно понять, где находится отправление: на сортировке, в пути или уже доступно к получению.

Интеграция интернет-магазина со службами доставки связывает сайт с внешней системой обмена. Сайт передаёт сведения о заказе и получателе, получает условия доставки, статусы и данные пунктов выдачи. До разработки заказчик описывает путь заказа: от выбора способа получения до вручения, отмены или возврата.

Какие данные передаёт интернет-магазин службе доставки

Набор данных зависит от сценария. Для курьерской доставки могут потребоваться контакты получателя, адрес, состав заказа и параметры отправления. Для пункта выдачи добавляется идентификатор выбранной точки. Если в проекте предусмотрена оплата при получении, правила её обработки согласуют отдельно.

Поля с похожими названиями не всегда совпадают по структуре. Адрес на сайте может храниться одной строкой, а внешняя система ожидать город, улицу, дом, корпус и квартиру по отдельности. Такая же проверка нужна для телефона, комментария к доставке, веса, габаритов и состава вложения.

Заказчик фиксирует в требованиях:

  • какие поля сайт отправляет при создании отправления;
  • на каком этапе заказ передают в доставку;
  • какие данные внешний сервис возвращает на сайт;
  • может ли сотрудник изменить адрес или способ получения после оформления;
  • как обрабатываются отмена заказа, частичная отмена и возврат;
  • кто разбирает ошибку, если внешняя система не приняла заявку.

Если магазин работает на «1С-Битрикс: Управление сайтом», интеграция затрагивает заказ, каталог и интерфейс сайта. Внутренний порядок работы сотрудников описывают отдельным документом, чтобы не смешивать его с обменом между сайтом и службой доставки.

Расчёт доставки в корзине и при оформлении заказа

До оформления заказа сайт может запросить доступные варианты доставки для текущей корзины. На ответ влияют город, адрес или пункт выдачи, состав заказа, вес, габариты, объявленная ценность и другие параметры, предусмотренные проектом.

Пока покупатель не указал адрес или не выбрал пункт выдачи, данных для запроса может не хватать. Заказчик и разработчик заранее согласуют поведение интерфейса: показывать предварительный вариант, предложить выбрать город или не выводить результат до заполнения нужных полей.

Расчёт при выборе доставки и создание отправления могут дать разные результаты. В требованиях нужно определить, какой ответ сайт считает актуальным и что происходит, если после изменения корзины выбранный способ перестал быть доступен.

Перед разработкой подрядчик уточняет обязательные параметры расчёта, обработку товаров без веса или габаритов, использование данных упаковки и порядок записи ошибок внешнего ответа. Это помогает избежать ситуации, когда сайт показывает вариант доставки, который не удаётся подтвердить при создании отправления.

Статусы заказа и отслеживание отправления

Статус заказа на сайте и статус перевозки описывают разные события. Заказ может быть подтверждён, но ещё не передан службе доставки. Отправление может находиться в пути, ожидать получения, быть вручённым, отменённым или возвращаться отправителю.

Для обмена составляют таблицу соответствий: внешнее событие, статус на сайте, текст для покупателя и действие сотрудника. Технические обозначения сохраняют для диагностики, а в личном кабинете выводят понятное описание состояния отправления.

Обновления можно получать регулярными запросами к внешней системе или через её уведомления. Разработчик обрабатывает задержки, повторную доставку одного события и временную недоступность сервиса. Запоздалый ответ не должен менять статус назад, если такой переход не предусмотрен сценарием.

В интерфейсе обычно достаточно состояний: отправление создано, передано перевозчику, находится в пути, доступно к получению, вручено, возникла проблема. Формулировки и переходы зависят от данных подключаемой службы доставки.

Пункты выдачи заказов на карте и в списке

Выбор пункта выдачи требует не только карты с метками. Покупателю нужны сведения о расположении точки и её доступности для выбранного заказа. Данные могут меняться: пункт закрывается, временно не принимает отправления или меняет график.

Заказчик определяет сценарий выбора: карта, поиск по адресу, список или их сочетание. Для мобильной версии особенно полезен поиск, когда рядом много точек.

Разработчик проверяет, какие сведения возвращает внешняя система и какие данные нужно сохранить на сайте. Если при создании отправления требуется точный идентификатор пункта, одного адреса недостаточно: похожие адреса могут относиться к разным точкам.

Отдельно согласуют ситуацию, когда выбранный пункт стал недоступен до передачи заказа. Покупателю можно предложить выбрать другую точку, а заказ передать оператору для обработки. Автоматическая замена допустима только при заранее заданном и понятном условии.

Ошибки обмена со службой доставки

Ошибка может появиться из-за неполного адреса, отсутствующего параметра товара, повторной передачи заказа, изменения формата ответа или временной недоступности внешней системы.

Ошибка расчёта при оформлении заказа и ошибка создания отправления после оплаты требуют разных действий. В первом случае сайт показывает покупателю доступный способ продолжить оформление. Во втором оператор видит, что заказ не передан, а повторный запуск не создаёт дубликат.

В проектной документации фиксируют:

  • где хранятся технические ответы и идентификаторы отправлений;
  • как система отличает повторный запрос от нового;
  • какие ошибки разработчик обрабатывает повторной попыткой, а какие передаёт сотруднику;
  • где оператор видит причину сбоя;
  • что происходит с заказом, пока передача не подтверждена;
  • как проверяют отмену, возврат и недоступность внешней системы.

Заказчик и разработчик согласуют тестовые сценарии в требованиях, затем проверяют их перед запуском интеграции. В набор входят заказ с несколькими позициями, доставка по адресу, получение в пункте выдачи, изменение заказа до отправки и ошибка внешнего ответа. Формулировка «интеграция работает» не заменяет результаты таких проверок.

Как выбрать способ интеграции со службой доставки

Способ подключения зависит от доступных методов обмена и задач интернет-магазина. Одному проекту достаточно передавать оформленные заказы и получать статусы. Другому требуется расчёт на сайте, выбор пункта выдачи, отмена отправления, обработка возврата или работа с документами в отдельном контуре.

Перед выбором решения заказчик отвечает на практические вопросы: какие способы получения доступны покупателю, нужен ли расчёт до оформления, кто создаёт отправление, где оператор разбирает ошибки, нужно ли показывать статусы в личном кабинете и какой источник данных использовать при расхождениях.

Готовый модуль проверяют по полям, статусам, правилам оформления и ограничениям конкретного проекта. Индивидуальная разработка рассматривается, если типовой вариант не передаёт нужные данные, не поддерживает согласованную последовательность действий или оставляет сотрудникам постоянную ручную работу.

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

Что подготовить до интеграции интернет-магазина со службой доставки?

Заказчик описывает способы получения заказа, поля адреса, правила передачи заказа, отмены и возвраты. Для проверки обмена пригодятся примеры товаров с разными параметрами и несколько типовых заказов.

Почему доставка исчезает после изменения корзины?

После изменения количества товаров, состава заказа, адреса или пункта выдачи внешний сервис может вернуть другой набор вариантов. В требованиях фиксируют момент повторного запроса и сообщение, которое увидит покупатель при недоступности прежнего выбора.

Нужно ли показывать в личном кабинете все статусы перевозчика?

Нет. В личном кабинете оставляют статусы, которые помогают покупателю понять состояние отправления. Технические сведения сохраняют для сотрудников, разбирающих ошибки и спорные ситуации.

Как избежать повторного создания отправления?

Разработчик сохраняет внешний идентификатор отправления и реализует правила повторной отправки запроса. При сбое система сначала проверяет результат предыдущей попытки, а затем решает, создавать ли новое отправление.

Что делать, если внешний сервис не принимает выбранный пункт выдачи?

Сайт выводит понятное сообщение и запускает согласованный сценарий: покупатель выбирает другую точку, уточняет данные или заказ передают оператору. Условия замены пункта и порядок уведомления определяют до запуска интеграции.