예약 대기자 명단 프로그램에 참여하는 파트너는 시작하기 전에 계정 설정을 완료해야 합니다. 그러나 일반 가이드의 일부 단계는 대기자 명단 기능을 사용하는 데 필요하지 않습니다. 이 페이지의 가이드라인은 Google 예약의 대기자 명단 기능을 사용하려는 파트너에게 적용되는 단계를 설명합니다. 통합 단계를 진행하기 전에 이 개요를 읽어보는 것이 좋습니다.
출시 과정
그림 1은 Actions Center에서 대기자 명단 지원 판매자를 출시하는 프로세스를 간략하게 보여줍니다.
![그림 1: 대략적인 통합 단계](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=0000&hl=ko)
전반적으로 개발자 (파트너)와 Google 간의 주요 데이터 흐름은 그림 2에 나와 있습니다.
![그림 2: 통합 데이터 흐름 다이어그램](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=0000&hl=ko)
모든 예약 대기자 명단 파트너를 위한 가이드라인
예약 대기자 명단 기능을 구현할 때는 다음 사항에 유의하세요.
- 모든 예약 대기자 명단 판매자의 서비스는
waitlist_rules
을(를) 채워야 합니다.- 대기자 명단과 예약에 동일한 서비스를 사용해야 합니다. 즉, 음식점에서 예약을 허용하는 경우 대기자 명단 관련 메타데이터를 예약 서비스에 추가하기만 하면 됩니다.
- 다음과 같은 경우 대기자 명단 구현 시 SMS 업데이트를 보내야 합니다.
- 사용자가 대기자 명단에 등록했는지 확인합니다.
- 사용자에게 테이블이 준비되었음을 알립니다.
- 사용자에게 대기자 명단 등록이 취소되었음을 알립니다.
- SMS 메시지에는 사용자가 대기자 명단 상태를 볼 수 있는 페이지 링크가 포함되어야 합니다.
- 대기자 명단 전용 판매자는 Actions Center에 이용 가능 여부 피드를 제공할 필요가 없습니다.
- 예약 서버는 예약 서버 구현에 나열된 모든 대기자 명단별 단계를 구현해야 합니다. 예약과 대기자 명단을 모두 지원하는 파트너는 기존 예약 서버에 새로운 방법을 추가할 수 있습니다.
- 작업 센터는 예약 서버의 대기자 명단 메서드에 관한 테스트 사례 집합을 실행합니다.
상태 플로우 차트
이 차트에는
GetWaitlistEntry
호출에 응답할 때
WaitlistEntry.waitlist_entry_state
에서 보고해야 하는 상태가 설명되어 있습니다. 또한 차트는
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
필드를 기록하고 채워야 하는 경우와 사용자에게 새 상태에 들어갔음을 알리기 위해 SMS를 보낼 시기를 나타냅니다.
![그림 3: 대기자 명단 상태 플로우 차트](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=0000&hl=ko)
일반적인 예외 사례
다음은 예약 대기자 명단 통합의 일반적인 예외 사례 및 이 사례에서 선호하는 솔루션입니다.
-
인원수에 대한 대기자가 없어 일부 인원 (전부는 아님)이
새 대기자 명단 추가를 수락하지 않는 경우
BatchGetWaitEstimates
응답에서 모든 인원 수에 대해WaitEstimates
를 반환하고 사용자가 대기자 없이 이러한 인원수의 대기자 명단에 등록할 수 있도록 허용하는 것이 좋습니다. 대기 시간이 없는party_size
에 대해parties_ahead_count
가 0개인 또는estimated_seat_time_range
의start_seconds
와 0end_seconds
을 포함하는WaitLength
를 반환함 -
대기 시간이 너무 길어서 하나 이상의 인원수가 새로운 대기자 명단 추가를
수락하지 않는 경우
BatchGetWaitEstimates
응답에서 인원수에 대해WaitEstimates
를 생략하는 것이 좋습니다.
이러한 접근 방식은 판매자의 대기자 명단이 완전히 열리지 않더라도 사용자에게 옵션을 제공하므로 선호됩니다.
예약 대기자 명단 전용 파트너를 위한 가이드라인
예약 서버를 대기자 명단에만 사용하는 경우 다음 사항에 유의하세요.
- 예약 대기자 명단 전용 파트너는 Google 예약에 이용 가능 여부 피드를 제공하지 않습니다.
- 예약 대기자 명단 전용 파트너는 예약 서버에서 예약 방법을 구현하지 않습니다. 대신 대기자 명단 구현을 위한 안내에 따라 예약 서버를 구현합니다.
- 예약 대기자 명단 전용 파트너는 Google에 API 호출을 하지 않습니다. 즉, 예약 대기자 명단 전용 파트너는 클라우드 프로젝트를 설정하거나 개발자 이메일 주소를 제공할 필요가 없습니다. 실시간 API 업데이트를 완료할 필요가 없습니다. 하지만 판매자 및 서비스 피드는 여전히 Actions Center에 제공해야 합니다.
판매자가 대기자 명단 추가를 수동으로 수락/거부해야 하는 파트너를 위한 가이드라인
판매자가 Google의 새로운 대기자 명단 추가를 수동으로 수락하거나 거부할 수 있어야 하는 경우 다음과 같은 추가 단계가 필요합니다.
- 수동 확인이 필요한 인원 수의 경우
wait_estimate
에서waitlist_confirmation_mode
를WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
로 설정합니다. 이는BatchGetWaitEstimateResponse
및GetWaitlistEntryResponse
에서 설정해야 합니다. - 사용자가 요청했지만 판매자가 아직 수락하지 않은 대기자 명단 항목은
PENDING_MERCHANT_CONFIRMATION
상태여야 합니다.
예약 대기자 명단 테스트 사례
Google은 다음 사용 사례를 테스트하여 예약 서버 구현에서 대기자 명단 메서드의 기능을 확인합니다. 또한 Google은 지연 시간을 테스트하고 모니터링합니다. 이러한 모든 테스트는 출시 전에 통과해야 합니다.
WaitEstimate 검색
- 예상 대기 시간은
BatchGetWaitEstimatesRequest
에서 요청된 각 인원수에 대해 반환됩니다. - 판매자가 새로운 대기자 명단 추가를 수락하거나 거부할 수 있는
인원수의 경우 waitlist_confirmation_mode를
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
(으)로 설정합니다.
대기자 명단 항목 만들기
- 대기자 명단 항목은
CreateWaitlistEntry
요청에서 만들 수 있습니다. - 대기자 명단 항목 생성에 실패하면 비즈니스 로직 오류가 응답에 표시됩니다.
CreateWaitlistEntry
시도가 성공하면 동일한CreateWaitlistEntry
가 다시 수신될 때 동일한 응답이 반환됩니다.CreateWaitlistEntry
시도가 실패하면 서버는 동일한CreateWaitlistEntry
가 다시 수신될 때 다시 시도합니다.- 대기자 명단 항목은 판매자의 인터페이스에 표시됩니다.
GetWaitlistEntry
를 호출하면 생성된 대기자 명단 항목이 반환됩니다.
대기자 명단 항목 상태 및 타임스탬프
GetWaitlistEntry
응답의 대기자 명단 항목에 각 대기자 명단 항목 상태가 제대로 반환되는지 확인합니다.- 각 상태 타임스탬프가
GetWaitlistEntry
응답에서 대기자 명단 항목의 적절한 타임스탬프 필드에 설정되어 있는지 확인합니다.
대기자 명단 항목 삭제
- 기존 대기자 명단 항목은 삭제할 수 있습니다. 삭제 성공에 대한 응답은 빈 proto
{}
여야 합니다.
선택 해제
- 선택 해제된 판매자가 판매자 선택 해제에 설명된 대로 처리되는지 확인합니다.
샘플 대기자 명단 서비스 피드(JSON)
대기자 명단 서비스 피드판매자 선택 해제
Google에서는 이전에 대기자 명단을 사용 설정했지만 이를 선택 해제한 판매자에 대해 특정 응답을 받을 것으로 예상합니다.
즉시 선택 해제
BatchGetWaitEstimates
요청에 대해CLOSED_OTHER
를 반환합니다.CreateWaitlistEntry
요청에 대해WAITLIST_CLOSED
를 반환합니다.- 이미 대기자 명단에 있는 사용자에 대해
GetWaitlistEntry
요청을 올바르게 반환합니다.
확장 선택 해제
- 판매자가 예약을 선택 해제하지 않은 경우 판매자의 서비스 피드에서
waitlist_rules
를 삭제합니다. - 판매자가 모든 Google 통합을 선택 해제한 경우 판매자 피드에서 삭제합니다.