Найти в Дзене
Ellefra

Продолжение интеграции сайта и Яндекс.Доставки

В предыдущей статье мы сформировали массив параметров для запроса на получение вариантов доставки (офферов) и отправили его в АПИ Яндекс.Доставки. В этой статье хочу рассказать о возможных ошибках и об ответе на запрос. Ошибки были связаны с некорректным указанием типов данных, например, тип integer был в кавычках. Вес обязательно должен быть в граммах (не превышать 30 кг), размеры - в см (не больше 110см, а в сумме - до 300см), цена за единицу товара - в копейках (до 250 тыс. рублей). В адресе не должно быть индекса и квартиры, разделяйте разные части одного адреса запятыми между собой. Интервалы доставки нельзя указывать больше 5 дней от даты создания заявки. Либо умещаемся в эти сроки, либо получаем ближайшую возможную дату доставки. Обратите внимание, что на тестовом сайте должен быть тестовый идентификатор склада отгрузки, на рабочем - рабочий. Авторизационный токен также должен быть везде свой. Их выдает менеджер. Токен для рабочего сайта можно взять в личном кабинете - Профиль -
Оглавление

В предыдущей статье мы сформировали массив параметров для запроса на получение вариантов доставки (офферов) и отправили его в АПИ Яндекс.Доставки. В этой статье хочу рассказать о возможных ошибках и об ответе на запрос.

Интеграция с Яндекс.Доставкой
Интеграция с Яндекс.Доставкой

Ошибки были связаны с некорректным указанием типов данных, например, тип integer был в кавычках. Вес обязательно должен быть в граммах (не превышать 30 кг), размеры - в см (не больше 110см, а в сумме - до 300см), цена за единицу товара - в копейках (до 250 тыс. рублей). В адресе не должно быть индекса и квартиры, разделяйте разные части одного адреса запятыми между собой.

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

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

Пример ошибки с некорректным складом отгрузки
Пример ошибки с некорректным складом отгрузки

Идентификатор заказа operator_request_id должен быть уникальным для каждого заказа. Т.е., если Вы уже получали варианты доставки для заказа с каким-то номером, то повторно варианты по нему получить не удастся. Можете добавить какой-то счетчик в конце, например, -1, -2, -3.

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

Пример ответа со списком офферов
Пример ответа со списком офферов

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

Подтверждение заявки

Бронирование выбранного варианта доставки (оффера).

HTTP-запрос

POST b2b.taxi.tst.yandex.net/api/b2b/platform/offers/confirm

Если все отправлено без ошибок, в ответе получите идентификатор только что созданного заказа.

Процесс создания заявки полностью окончен.

Далее можно по АПИ отслеживать статусы наших заявок, если они еще не имеют статус полученных, методом

Получение информации о заявке

Получение информации о заявке и ее текущем статусе.

HTTP-запрос

GET b2b.taxi.tst.yandex.net/api/b2b/platform/request/info?request_id={string}&slim={boolean}

Мы использовали обновленную версию ответа slim=true

В поле sharing_url находится ссылка на страницу с трекингом заказа для получателя.

В поле state.status  находится статус, описывающий текущее состояние заказа.

Из всех вариантов статусов заказов нам наиболее интересны:

Отмена CANCELLED

Доставка до ПВЗ DELIVERY_ARRIVED_PICKUP_POINT

Заказ доставлен DELIVERY_DELIVERED

Заказ возвращён SORTING_CENTER_RETURN_RETURNED

Заказчика интересует статус "Доставка до ПВЗ" в том плане, что если этот статус не меняется в течение 72 часов, то заказ считается доставленным.

Также может быть интересен метод

Отмена заявки

Отмена заявки, созданной в логистической платформе.

HTTP-запрос

POST b2b.taxi.tst.yandex.net/api/b2b/platform/request/cancel

По нему документация понятна и работает.

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