이 개요에서는 주문 엔드 투 엔드 흐름과 이 흐름이 처리 웹 서비스와 상호작용하는 방법을 요약합니다.
주문
Ordering End-to-End 사용자 인터페이스는 사용자가 주문에 메뉴 항목을 추가하고 식당에서 제공하는 서비스에 따라 수령 또는 배달을 결정할 때 사용자와의 모든 상호작용을 처리합니다. 이 환경은 데이터 피드에 있는 Restaurant
, Service
, Menu
항목을 기반으로 합니다.
다음 단계는 사용자가 생성한 결과 Cart
가 웹 서비스에서 처리되는 장바구니 유효성 검사 단계입니다.
결제 작업
결제 작업은 Google에서 웹 서비스 엔드포인트에 연결하는 첫 번째 호출입니다.
웹 서비스는 Cart
의 유효성 검사를 담당합니다. 상품의 재고 및 가격, 컴퓨팅 및 반품 세금, 할인, 수수료를 확인하고 주문 배송지 주소를 검증해야 합니다.
결제 프로세스는 다음 순서를 따릅니다.
- 주문 엔드 투 엔드 서비스는
Cart
가 포함된CheckoutRequestMessage
를 처리 웹 서비스 엔드포인트에 전송합니다. - 웹 서비스는 현재 가격, 재고, 서비스 제공업체를 기준으로
Cart
의 항목을 확인해야 합니다. 그런 다음 할인, 세금, 배송비가 포함된 총가격을 계산합니다. - 엔드포인트는 성공적인 요청에 대해 수정되지 않은
Cart
가 포함된CheckoutResponseMessage
로 응답합니다.FoodErrorExtension
를CheckoutResponseMessage
에 포함하여 처리 오류를 발생시키거나 필요한 경우 사소한 변경을 제안할 수 있습니다.
Cart
의 유효성이 검사되면 사용자는 흐름의 주문 제출 단계로 진행할 수 있습니다.
주문 작업 제출
주문 제출 작업은 사용자가 주문할 때 트리거됩니다. 웹 서비스는 장바구니를 다시 검증하고, 온라인 결제가 사용 설정된 경우 카드 토큰을 처리하고, 마지막으로 주문 상태를 업데이트해야 합니다.
주문 제출 프로세스는 다음 순서를 따릅니다.
- 주문 엔드 투 엔드 서비스는
Order
가 포함된SubmitOrderRequestMessage
를 처리 웹 서비스 엔드포인트에 전송합니다. 계속하기 전에 백엔드에서Cart
유효성 검사를 다시 수행해야 합니다. 웹 서비스는
Order
에서 찾은 결제 세부정보를 처리하며 일반적으로 다음 작업을 수행합니다.- 토큰 인증, 사기 및 기타 자격요건 확인 수행
- 카드를 승인하고 원하는 경우 요금을 청구합니다.
엔드포인트는
CREATED
('주문됨' 구매 상태),CONFIRMED
('수락됨' 구매 상태) 또는REJECTED
('거부됨' 구매 상태) 상태의OrderUpdate
를 포함하는SubmitOrderResponseMessage
로 응답합니다.
주문이 완료되면 사용자는 판매자와 주문 엔드 투 엔드 사용자 인터페이스 모두에서 주문 상태 업데이트를 받을 수 있기를 기대합니다. 사용자에게 주문 확인 이메일을 보내야 합니다. 또한 비동기 주문 업데이트 API를 사용하여 관련 주문 업데이트를 Google에 전송합니다.
비동기 주문 업데이트 작업
다음과 같은 경우 사용자 알림과 관계없이 Google에 주문 상태 업데이트를 전송해야 합니다.
OrderState
변경사항:CREATED
에서CONFIRMED
로 및CONFIRMED
에서IN_TRANSIT
로 전환- 가격 또는 재고 등의 주문 상품 변경사항
- 사용자가 고객 지원 채널 중 하나에서 지원 요청을 트리거할 때마다
업데이트는 웹 서비스 엔드포인트에서 OrderUpdate
가 포함된 AsyncOrderUpdateRequestMessage
로 전송됩니다. Google은 AsyncOrderUpdateResponseMessage
로 응답합니다.
순차적 다이어그램
다음 그림은 처리 작업이 웹 서비스와 상호작용하는 방식을 보여줍니다. 확대하려면 클릭하세요.
처리 엔드포인트 설정
주문 엔드 투 엔드 작업은 JSON 메시지를 사용하여 웹 서비스와 통신하고 음식 주문의 처리, 확인, 업데이트를 처리합니다. 주문 엔드 투 엔드 웹 서비스를 설계할 때는 주문 엔드 투 엔드 서비스의 요청 메시지를 수신하고 Google 서비스에 메시지를 다시 반환할 수 있는 URL 엔드포인트를 정의해야 합니다. 구현은 다음 요구사항을 충족해야 합니다.
- 웹 서비스가 주문 엔드 투 엔드 서비스의
POST
요청으로 JSON 메시지를 수신할 수 있어야 합니다. - 웹 서비스는 작업 센터에서 지정하는 처리 URL이라는 공개적으로 액세스할 수 있는 URL 엔드포인트를 제공해야 합니다. 처리 URL은 주문을 결제하고 제출하는 데 사용됩니다. 구현에서는 두 유형의 요청을 모두 처리해야 합니다.
- 웹 서비스는 메시지 확인 방법을 사용하여 Google에서 보낸 메시지를 확인할 수 있어야 합니다.
- URL 엔드포인트 구현 시 단일 엔드포인트를 사용하여 결제 및 주문 처리를 모두 처리할 수 있어야 합니다. 결제를 위한 하나의 URL 엔드포인트와 주문 제출을 위한 별도의 엔드포인트는 있을 수 없습니다.
클라이언트 라이브러리
도구 섹션의 클라이언트 코드 생성기를 사용하여 Fulfillment API 사양을 기준으로 웹 서비스의 유효성을 검사할 수 있습니다.