Обзор

В этом обзоре обобщается сквозной процесс заказа и то, как он взаимодействует с вашим веб-сервисом выполнения.

Заказ

Сквозной пользовательский интерфейс заказа обрабатывает все взаимодействия с пользователем, когда он добавляет пункты меню в свой заказ и принимает решение о самовывозе или доставке, в зависимости от услуг, предлагаемых рестораном. Этот опыт основан на объектах Restaurant , Service и Menu , найденных в ваших фидах данных .

Следующим шагом является этап проверки корзины, на котором результирующая Cart созданная пользователем, обрабатывается вашим веб-сервисом.

Действие при оформлении заказа

Действие оформления заказа — это первый вызов Google к конечной точке вашего веб-сервиса. Ваш веб-сервис отвечает за проверку Cart . Вы должны подтвердить наличие и цену товаров, рассчитать и вернуть налоги, скидки и сборы, а также подтвердить адрес доставки заказа.

Процесс оформления заказа происходит в такой последовательности:

  1. Служба сквозного заказа заказов отправляет сообщение CheckoutRequestMessage , содержащее Cart , в конечную точку веб-службы выполнения.
  2. Вашему веб-сервису необходимо проверять товары в Cart на основе текущих цен, доступности и поставщиков услуг. Затем вы рассчитываете общую стоимость, которая включает скидки, налоги и стоимость доставки.
  3. Ваша конечная точка отвечает сообщением CheckoutResponseMessage , содержащим неизмененную Cart для успешных запросов. FoodErrorExtension можно включить в CheckoutResponseMessage , чтобы сообщить об ошибке обработки или предложить незначительные изменения, если это необходимо.

После проверки Cart пользователь может перейти к этапу отправки заказа.

Отправить действие заказа

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

Процесс отправки заказа происходит в такой последовательности:

  1. Служба сквозного заказа заказов отправляет сообщение SubmitOrderRequestMessage , содержащее Order , в конечную точку веб-службы выполнения. Прежде чем продолжить, вашему серверу необходимо выполнить еще одну проверку Cart .
  2. Ваш веб-сервис обрабатывает платежные реквизиты, указанные в Order , обычно выполняя следующие действия:

    1. Выполняйте проверку токенов, мошенничество и другие проверки приемлемости.
    2. Авторизуйте и, при необходимости, пополните карту.
  3. Ваша конечная точка отвечает сообщением SubmitOrderResponseMessage , которое содержит OrderUpdate с состоянием CREATED (статус покупки «Заказано»), CONFIRMED (статус покупки «Принято») или REJECTED (статус покупки «Отклонено»).

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

Действие обновления асинхронного заказа

Независимо от каких-либо уведомлений пользователя с вашей стороны, вы также должны отправлять в Google обновления статуса заказа для следующих событий:

  1. Изменения в OrderState , такие как переходы от CREATED к CONFIRMED и CONFIRMED к IN_TRANSIT .
  2. Изменения в позициях заказа, таких как цена или наличие.
  3. Каждый раз, когда пользователь отправляет запрос на поддержку по одному из ваших каналов поддержки клиентов.

Обновления отправляются из конечной точки веб-службы в виде AsyncOrderUpdateRequestMessage , содержащего OrderUpdate . Google отвечает AsyncOrderUpdateResponseMessage .

Диаграмма последовательности

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

Сквозной поток выполнения заказов

Настройте конечную точку выполнения

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

  • Ваш веб-сервис должен иметь возможность получать сообщение JSON в виде запроса POST от службы сквозного заказа заказов.
  • Ваш веб-сервис должен предоставлять общедоступную конечную точку URL-адреса, называемую URL-адресом выполнения , который вы указываете в Центре действий . URL-адрес выполнения используется для оформления и отправки заказов. Ваша реализация должна обрабатывать оба типа запросов.
  • Ваш веб-сервис должен иметь возможность проверять сообщения от Google с помощью метода проверки сообщений .
  • Ваша реализация конечной точки URL-адреса должна обеспечивать возможность обработки как оформления заказа, так и выполнения заказа с помощью одной конечной точки. Вы не можете иметь одну конечную точку URL-адреса для оформления заказа и отдельную конечную точку для отправки заказа.

Клиентские библиотеки

Генератор клиентского кода в разделе «Инструменты» доступен для проверки вашего веб-сервиса на соответствие спецификации Fulfillment API.