После завершения оформления заказа и его размещения необходимо отправлять обновления статуса в Google с помощью веб-перехватчика заказов. Отправка этих событий гарантирует корректное отображение информации об отслеживании заказа, доставке и возврате на странице «Мои заказы» для клиента.
конечная точка веб-перехватчика
Для отправки обновлений заказа на следующую конечную точку необходимо отправить POST запрос, содержащий полный набор данных о заказе:
POST https://shoppingdataintegration.googleapis.com/v1/webhooks/partners/PARTNER_ID/events/order?key=API_KEY
В процессе регистрации Google предоставляет вам конкретный PARTNER_ID и API_KEY . Предоставьте API-ключ одним из двух способов:
- В качестве параметра запроса URL:
?key=API_KEY - Используется HTTP-заголовок:
X-Goog-Api-Key: API_KEY
Обязательные события обновления заказов
Необходимо сообщать о следующих изменениях статуса заказа:
- Заказ создан: Запущен сразу после подтверждения заказа (
status: processing). - Заказ отправлен: Отправляется, когда товары из заказа покидают склад. Требуются
tracking_numberиtracking_url. - Заказ доставлен: срабатывает, когда товары доставлены получателю.
Рекомендуемые события обновления заказа
Для обеспечения наилучшего пользовательского опыта мы также рекомендуем отправлять обновления по следующим событиям:
События корректировки:
-
dispute: ситуация, когда клиент оспаривает платеж.
-
Мероприятия по выполнению заказов:
-
canceled: Событие, когда выполнение заказа отменяется (отправляется в массивеfulfillment.events).
-
Логика заказа и сопоставление статусов
Для корректного отображения страницы «Мои заказы» Google использует определенную логику сопоставления данных в вашем полезном трафике.
Требования к отдельным позициям
- Позиции в списке товаров не должны быть пустыми и должны содержать информацию о
item. Согласно спецификации UCP , статус позиции в заказе должен точно отражать
totalи фактическое количествоfulfilledтоваров (гдеfulfilledозначает "доставленные" товары):-
processing: когдаfulfilledравно 0, аtotal> 0 (например,total: 2,fulfilled: 0). -
partial: когдаfulfilledбольше 0, но меньше значенияtotal(например,total: 2,fulfilled: 1). -
fulfilled: когдаfulfilledравноtotalиtotal> 0 (например,total: 2,fulfilled: 2). -
removed: когдаtotalравно 0 (например,total: 0,fulfilled: 0).
-
События корректировки
Любые события, связанные с перемещением денежных средств, должны быть включены в массив adjustments .
-
cancellation: Отмена всего заказа или отдельных товаров в заказе до его выполнения. -
return: ситуация, когда товары из заказа возвращаются покупателем после его выполнения. -
refund: Возврат денежных средств за заказ или отдельные товары.
Заказы, состоящие из нескольких товаров
В следующих разделах объясняется, как группируются и отслеживаются заказы и посылки, состоящие из нескольких товаров.
группировка многокомпонентных пакетов
Товары на странице «Мои заказы» сгруппированы по посылкам (имеющим одинаковый tracking_url ). Если посылка возвращена частично, возвращенные товары вынесены в отдельный раздел на странице «Мои заказы».
Статус посылки
Для посылки отображаются следующие статусы: Заказано, Отправлено, Доставлено, Возвращено, Возмещено, Отменено. Статусы посылок определяются атрибутом type объектов событий fulfillment и adjustments .
Как определяется статус посылки
Если событие корректировки имеет status: completed , то в зависимости от типа события корректировки на упаковке отобразится соответствующий статус: «Возвращено», «Возмещено» или «Отменено».
| Свойства события корректировки | Статус посылки |
|---|---|
type: return , status: completed | Возвращено |
type: refund , status: completed | Возврат средств |
type: cancellation , status: completed | Отменено |
Если корректировка не завершена, то статус будет определяться типом события выполнения:
| Свойства события выполнения | Статус посылки |
|---|---|
type: shipped | Отправлено (ожидается к <дата>) |
type: delivered | Доставленный |
| Событие выполнения не произошло | Заказано |
Правила технической валидации
Для обеспечения успешной обработки обновлений заказов ваши веб-хуки должны соответствовать определенным правилам проверки данных и форматирования цен.
Причины отклонения заказа
Google проверяет входящие данные веб-хуков и отклоняет обновления, если они соответствуют любому из следующих условий:
- В теле запроса отсутствует сущность заказа.
- В полезной нагрузке отсутствует
checkout_idилиid( идентификатор подтверждения заказа ). - В полезной нагрузке содержится метка времени, более старая, чем последнее зарегистрированное обновление.
- Событие корректировки отправляется с типом, отличным от
refund,return,credit,price_adjustment,disputeилиcancellation. - Любое описание доставки превышает 200 символов.
Цены указаны с учетом налогов.
Если вы работаете на рынках, где налог включен в промежуточную сумму, то в массиве totals по всем событиям веб-хука для каждого заказа должно отображаться следующее:
- Итого: Включите все применимые налоги в сумму
subtotalи установитеdisplay_textв значение"Subtotal (including taxes)". - Выполнение заказа: Добавьте
display_textполе для указания стоимости доставки или выполнения заказа (например,"Shipping"). - Налог: Исключите отдельные записи
"tax"из массиваtotals.
Следующие шаги
Чтобы просмотреть примеры полезной нагрузки JSON, заголовки веб-перехватчиков и инструкции по подписанию запросов для конкретной версии, см. руководство по внедрению для вашей целевой версии UCP: