В этом обзоре обобщается сквозной процесс заказа и то, как он взаимодействует с вашим веб-сервисом выполнения.
Заказ
Сквозной пользовательский интерфейс заказа обрабатывает все взаимодействия с пользователем, когда он добавляет пункты меню в свой заказ и принимает решение о самовывозе или доставке, в зависимости от услуг, предлагаемых рестораном. Этот опыт основан на объектах Restaurant
, Service
и Menu
, найденных в ваших фидах данных .
Следующим шагом является этап проверки корзины, на котором результирующая Cart
созданная пользователем, обрабатывается вашим веб-сервисом.
Действие при оформлении заказа
Действие оформления заказа — это первый вызов Google к конечной точке вашего веб-сервиса. Ваш веб-сервис отвечает за проверку Cart
. Вы должны подтвердить наличие и цену товаров, рассчитать и вернуть налоги, скидки и сборы, а также подтвердить адрес доставки заказа.
Процесс оформления заказа происходит в такой последовательности:
- Служба сквозного заказа заказов отправляет сообщение
CheckoutRequestMessage
, содержащееCart
, в конечную точку веб-службы выполнения. - Вашему веб-сервису необходимо проверять товары в
Cart
на основе текущих цен, доступности и поставщиков услуг. Затем вы рассчитываете общую стоимость, которая включает скидки, налоги и стоимость доставки. - Ваша конечная точка отвечает сообщением
CheckoutResponseMessage
, содержащим неизмененнуюCart
для успешных запросов.FoodErrorExtension
можно включить вCheckoutResponseMessage
, чтобы сообщить об ошибке обработки или предложить незначительные изменения, если это необходимо.
После проверки Cart
пользователь может перейти к этапу отправки заказа.
Отправить действие заказа
Действие «Отправить заказ» срабатывает, когда пользователь размещает заказ. Ваш веб-сервис должен повторно подтвердить корзину, обработать токен карты, если включены онлайн-платежи, и, наконец, обновить статус заказа.
Процесс отправки заказа происходит в такой последовательности:
- Служба сквозного заказа заказов отправляет сообщение
SubmitOrderRequestMessage
, содержащееOrder
, в конечную точку веб-службы выполнения. Прежде чем продолжить, вашему серверу необходимо выполнить еще одну проверкуCart
. Ваш веб-сервис обрабатывает платежные реквизиты, указанные в
Order
, обычно выполняя следующие действия:- Выполняйте проверку токенов, мошенничество и другие проверки приемлемости.
- Авторизуйте и, при необходимости, пополните карту.
Ваша конечная точка отвечает сообщением
SubmitOrderResponseMessage
, которое содержитOrderUpdate
с состояниемCREATED
(статус покупки «Заказано»),CONFIRMED
(статус покупки «Принято») илиREJECTED
(статус покупки «Отклонено»).
После размещения заказа пользователь ожидает получать обновления статуса заказа как от вас, так и от сквозного пользовательского интерфейса заказа. Вам необходимо отправить пользователю электронное письмо с подтверждением заказа. Кроме того, вы используете API асинхронного обновления заказов для отправки соответствующих обновлений заказов в Google.
Действие обновления асинхронного заказа
Независимо от каких-либо уведомлений пользователя с вашей стороны, вы также должны отправлять в Google обновления статуса заказа для следующих событий:
- Изменения в
OrderState
, такие как переходы отCREATED
кCONFIRMED
иCONFIRMED
кIN_TRANSIT
. - Изменения в позициях заказа, таких как цена или наличие.
- Каждый раз, когда пользователь отправляет запрос на поддержку по одному из ваших каналов поддержки клиентов.
Обновления отправляются из конечной точки веб-службы в виде AsyncOrderUpdateRequestMessage
, содержащего OrderUpdate
. Google отвечает AsyncOrderUpdateResponseMessage
.
Диаграмма последовательности
На следующем рисунке показано, как действия по выполнению взаимодействуют с вашим веб-сервисом. Нажмите, чтобы увеличить.
Настройте конечную точку выполнения
Сквозные действия заказа используют сообщения JSON для связи с вашим веб-сервисом и обработки, подтверждения и обновления заказов на еду. При разработке веб-службы сквозного заказа заказов необходимо определить конечную точку URL-адреса, которая будет получать сообщения запросов от сквозной службы заказа и может возвращать сообщения обратно в службу Google. Ваша реализация должна отвечать следующим требованиям:
- Ваш веб-сервис должен иметь возможность получать сообщение JSON в виде запроса
POST
от службы сквозного заказа заказов. - Ваш веб-сервис должен предоставлять общедоступную конечную точку URL-адреса, называемую URL-адресом выполнения , который вы указываете в Центре действий . URL-адрес выполнения используется для оформления и отправки заказов. Ваша реализация должна обрабатывать оба типа запросов.
- Ваш веб-сервис должен иметь возможность проверять сообщения от Google с помощью метода проверки сообщений .
- Ваша реализация конечной точки URL-адреса должна обеспечивать возможность обработки как оформления заказа, так и выполнения заказа с помощью одной конечной точки. Вы не можете иметь одну конечную точку URL-адреса для оформления заказа и отдельную конечную точку для отправки заказа.
Клиентские библиотеки
Генератор клиентского кода в разделе «Инструменты» доступен для проверки вашего веб-сервиса на соответствие спецификации Fulfillment API.