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