대기자 명단 소개

대기자 명단 프로그램에 참여하는 파트너는 시작하기 전에 계정 설정을 완료해야 합니다. 하지만 일반 가이드의 일부 단계는 대기자 명단 기능을 사용하는 데 필요하지 않습니다. 이 페이지의 가이드라인에서는 Google 예약의 대기자 명단 기능을 사용하려는 파트너에게 적용되는 단계를 설명합니다. 통합 단계를 진행하기 전에 이 개요를 읽어보는 것이 좋습니다.

출시 과정

그림 1은 Google 예약에서 대기자 명단 지원 판매자를 출시하는 과정을 간략하게 보여줍니다.

그림 1: 대략적인 통합 단계
그림 1: 대략적인 통합 단계

전반적으로 귀하 (파트너)와 Google 간의 주요 데이터 흐름은 그림 2에 나와 있습니다.

그림 2: 통합 데이터 흐름 다이어그램
그림 2: 통합 데이터 흐름 다이어그램

모든 대기자 명단 파트너를 위한 가이드라인

대기자 명단 기능을 구현할 때 다음 사항에 유의하세요.

  • 모든 대기자 명단 판매자의 서비스에는 waitlist_rules가 채워져 있어야 합니다.
    • 대기자 명단과 예약 모두에 동일한 서비스를 사용해야 합니다. 즉, 음식점에서도 예약을 허용하는 경우 대기자 명단 관련 메타데이터를 서비스에 추가하기만 하면 됩니다.
  • 다음과 같은 경우 대기자 명단 구현을 위해 SMS 업데이트를 전송해야 합니다.
    • 사용자가 대기자 명단에 등록했는지 확인하기 위해
    • 사용자에게 테이블이 준비되었음을 알립니다.
    • 사용자에게 대기자 명단에 있는 항목이 취소되었음을 알립니다.
  • SMS 메시지에는 사용자가 대기자 명단 상태를 볼 수 있는 페이지 링크가 포함되어야 합니다.
  • 대기자 명단 전용 판매자는 Google 예약에 이용 가능 여부 피드를 제공할 필요가 없습니다.
  • 예약 서버는 예약 서버 구현에 나열된 모든 대기자 명단별 단계를 구현해야 합니다. 예약과 대기자 명단을 모두 지원하는 파트너는 기존 예약 서버에 새로운 메서드를 추가할 수 있습니다.
  • Google 예약에서는 예약 서버의 대기자 명단 메서드에 대해 테스트 사례를 실행합니다.

상태 플로 차트

이 차트에서는 GetWaitlistEntry 호출에 응답할 때 WaitlistEntry.waitlist_entry_state에서 보고되어야 하는 상태를 설명합니다. 이 차트에는 WaitlistEntry.waitlist_entry_state_times.*_time_seconds 필드를 기록하고 채우는 시점과 새로운 상태에 진입했음을 사용자에게 알리기 위해 사용자에게 SMS를 보내는 시점도 표시됩니다.

그림 3: 대기자 명단 상태 플로우 차트
그림: 3 대기자 명단 상태 플로우 차트

일반적인 예외 사례

다음은 대기자 명단 통합의 일반적인 특이 사례와 이에 대한 선호 솔루션입니다.

  • 일부 인원 수 (전부는 아님)에서 인원 수에 대한 대기자 명단이 없기 때문에 새로운 대기자 명단 추가를 수락하지 않는 경우, BatchGetWaitEstimates 응답에서 모든 인원 수에 대해 WaitEstimates를 반환하고 사용자가 대기 없이 이러한 인원 수의 대기자 명단에 등록할 수 있도록 허용하는 것이 좋습니다. 대기 시간이 없는 party_size의 경우 parties_ahead_count가 0인 estimated_seat_time_range 또는 start_seconds가 0이고 end_seconds가 0인 WaitLength를 반환합니다.
  • 대기 시간이 너무 길어 하나 이상의 인원 수에서 새로운 대기자 명단 추가를 수락하지 않는 경우 BatchGetWaitEstimates 응답에서 이러한 인원수에 WaitEstimates를 생략하는 것이 좋습니다.

이러한 접근 방식은 판매자의 대기자 명단이 완전히 열려 있지 않아도 사용자에게 옵션을 제공하기 때문에 선호됩니다.

대기자 명단 전용 파트너를 위한 가이드라인

예약 서버가 대기자 명단에만 사용되는 경우 다음 사항에 유의하세요.

  • 대기자 명단 전용 파트너는 Google 예약에 이용 가능 여부 피드를 제공하지 않습니다.
  • 대기자 명단 전용 파트너는 예약 서버에서 예약 방법을 구현하지 않습니다. 대신 대기자 명단 구현 안내에 따라 예약 서버를 구현합니다.
  • 대기자 명단 전용 파트너는 Google에 API 호출을 하지 않습니다. 즉, 대기자 명단 전용 파트너는 클라우드 프로젝트를 설정하거나 개발자 이메일 주소를 제공할 필요가 없습니다. 실시간 API 업데이트를 완료하지 않아도 됩니다. 하지만 판매자서비스 피드는 Google 예약에 제공해야 합니다.

판매자가 대기자 명단 추가를 수동으로 수락/거부해야 하는 파트너를 위한 가이드라인

판매자가 Google의 새로운 대기자 명단 추가를 직접 수락하거나 거부하는 기능이 필요한 경우 다음 단계를 따르세요.

  • 수동 확인이 필요한 인원 수의 경우 wait_estimate에서 waitlist_confirmation_modeWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS로 설정하세요. 이는 BatchGetWaitEstimateResponseGetWaitlistEntryResponse에서 설정해야 합니다.
  • 사용자가 요청했지만 아직 판매자가 수락하지 않은 대기자 명단 항목은 PENDING_MERCHANT_CONFIRMATION 상태여야 합니다.

대기자 명단 테스트 사례

Google에서는 다음 사용 사례를 테스트하여 예약 서버 구현에서 대기자 명단 메서드의 기능을 확인합니다. 또한 Google은 지연 시간을 테스트하고 모니터링합니다. 이러한 모든 테스트는 출시 전에 통과해야 합니다.

WaitEstimate 검색

  • BatchGetWaitEstimatesRequest에서 요청된 각 인원 수에 대한 예상 대기 시간이 반환됩니다.
  • 판매자가 새로운 대기자 명단 추가를 수락하거나 거부하는 경우 대기자 명단 확인을 WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS로 설정하세요.

대기자 명단 항목 만들기

  • CreateWaitlistEntry 요청에서 대기자 명단 항목을 만들 수 있습니다.
  • 대기자 명단 항목 생성에 실패하면 응답에 비즈니스 로직 오류가 표시됩니다.
  • CreateWaitlistEntry 시도가 성공하면 동일한 CreateWaitlistEntry가 다시 수신될 때 동일한 응답이 반환됩니다.
  • CreateWaitlistEntry 시도가 실패하면 서버는 동일한 CreateWaitlistEntry가 다시 수신될 때 재시도합니다.
  • 대기자 명단 항목은 판매자의 인터페이스에 표시됩니다.
  • GetWaitlistEntry를 호출하면 생성된 대기자 명단 항목이 성공적으로 반환됩니다.

대기자 명단 항목 상태 및 타임스탬프

  • 각 대기자 명단 항목 상태가 GetWaitlistEntry 응답의 대기자 명단 항목에 올바르게 반환되는지 확인합니다.
  • 각 상태 타임스탬프가 GetWaitlistEntry 응답에서 대기자 명단 항목의 적절한 타임스탬프 필드에 설정되어 있는지 확인합니다.

대기자 명단 항목 삭제

  • 기존 대기자 명단 항목은 삭제할 수 있습니다. 성공적인 삭제에 대한 응답은 빈 proto {}여야 합니다.

선택 해제

샘플 대기자 명단 서비스 피드(JSON)

대기자 명단 서비스 피드

판매자 선택 해제

Google에서는 이전에 대기자 명단을 사용 설정했지만 거부한 판매자에 대한 특정 응답을 기대합니다.

즉시 선택 해제

확장 선택 해제

  • 판매자가 예약을 선택 해제하지 않은 경우 판매자의 서비스 피드에서 waitlist_rules를 삭제합니다.
  • 판매자가 모든 Google 통합을 선택 해제한 경우 판매자 피드에서 삭제합니다.