이 개요에서는 주문 엔드 투 엔드 흐름과 주문 엔드 투 엔드 흐름이 처리 웹 서비스와 상호작용하는 방식을 요약합니다.
정렬
주문 엔드 투 엔드 사용자 인터페이스는 사용자가 주문에 메뉴 항목을 추가하고 음식점의 서비스에 따라 픽업 또는 배달을 결정할 때 사용자와의 모든 상호작용을 처리합니다. 이 환경은 데이터 피드에 있는 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에 전송해야 합니다.
CREATED
에서CONFIRMED
로,CONFIRMED
에서IN_TRANSIT
로의 전환과 같은OrderState
변경사항- 가격 또는 재고와 같은 주문 상품의 변경사항
- 사용자가 고객 지원 채널 중 하나에서 지원 요청을 트리거할 때마다
업데이트는 웹 서비스 엔드포인트에서 OrderUpdate
가 포함된 AsyncOrderUpdateRequestMessage
로 전송됩니다. Google은 AsyncOrderUpdateResponseMessage
로 응답합니다.
순차적 다이어그램
다음 그림은 처리 작업이 웹 서비스와 상호작용하는 방식을 보여줍니다. 클릭하여 확대합니다.
처리 엔드포인트 설정
주문 엔드 투 엔드 작업은 JSON 메시지를 사용하여 웹 서비스와 통신하고 음식 주문의 처리, 확인, 업데이트를 처리합니다. 주문 엔드 투 엔드 웹 서비스를 설계할 때는 주문 엔드 투 엔드 서비스에서 요청 메시지를 수신하고 Google 서비스로 메시지를 다시 반환할 수 있는 URL 엔드포인트를 정의해야 합니다. 구현은 다음 요구사항을 충족해야 합니다.
- 웹 서비스는 Ordering End-to-End 서비스에서 JSON 메시지를
POST
요청으로 수신할 수 있어야 합니다. - 웹 서비스는 작업 센터에서 지정하는 실행 URL이라는 공개적으로 액세스 가능한 URL 엔드포인트를 제공해야 합니다. 처리 URL은 주문을 결제하고 제출하는 데 사용됩니다. 구현은 두 유형의 요청을 모두 처리해야 합니다.
- 웹 서비스는 메시지 인증 메서드를 사용하여 Google의 메시지를 인증할 수 있어야 합니다.
- URL 엔드포인트의 구현은 단일 엔드포인트로 결제와 주문 처리를 모두 처리할 수 있어야 합니다. 결제용 URL 엔드포인트와 주문 제출용 엔드포인트를 별도로 둘 수는 없습니다.
클라이언트 라이브러리
도구 섹션의 클라이언트 코드 생성기를 사용하여 Fulfillment API 사양에 대해 웹 서비스를 검증할 수 있습니다.