개요

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

출시 과정

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

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

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

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

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

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

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

상태 플로우 차트

이 차트는 GetWaitlistEntry 호출에 응답할 때 WaitlistEntry.waitlist_entry_state 에 보고해야 하는 상태를 설명합니다. 차트는 WaitlistEntry.waitlist_entry_state_times.*_time_seconds 필드를 기록하고 채울 때와 사용자가 새 상태로 전환되었음을 알리는 SMS를 보낼 때도 나타냅니다.

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

일반적인 예외 사례

다음은 예약 대기자 명단 통합의 일반적인 예외 사례와 이에 대해 선호하는 솔루션입니다.

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

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

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

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

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

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

판매자가 Google에서 새 대기자 명단에 추가된 항목을 직접 수락하거나 거부할 수 있는 경우 다음 추가 단계가 필요합니다.

  • 수동 확인이 필요한 인원 수의 경우 wait_estimate에서 waitlist_confirmation_mode을(를) WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS(으)로 설정합니다. 이는 BatchGetWaitEstimateResponseGetWaitlistEntryResponse에서 설정해야 합니다.
  • 사용자가 요청했지만 아직 판매자가 수락하지 않은 대기자 명단 항목은 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에서는 이전에 대기자 명단을 사용 설정했지만 선택 해제하기로 결정한 판매자에 대한 특정 응답을 기대합니다.

즉시 선택 해제

확장 선택 해제

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