Partnerzy uczestniczący w programie „Listy oczekujących rezerwacji” muszą najpierw ukończyć konfigurację konta. Jednak niektóre czynności opisane w przewodniku ogólnym nie są konieczne, aby korzystać z funkcji listy oczekujących. Wytyczne na tej stronie wyjaśniają, jakie czynności należy wykonać w przypadku partnerów zainteresowanych korzystaniem z funkcji listy oczekujących w Zarezerwuj z Google. Przed wykonaniem kroków integracji sugerujemy zapoznanie się z tym omówieniem.
Proces uruchamiania
Na Rysunku 1 przedstawiamy proces wprowadzania w Actions Center sprzedawców, którzy mają dostęp do listy oczekujących.
![Rysunek 1. Ogólna integracja](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=8&hl=pl)
Ogólnie główne przepływy danych między Tobą (partnerem) a Google zostały przedstawione na ilustracji 2:
![Rysunek 2. Schemat przepływu danych integracji](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=8&hl=pl)
Wytyczne dla wszystkich partnerów oferujących listy oczekujących rezerwacji
Wdrażając funkcję „Listy oczekujących rezerwacji”, pamiętaj o tych kwestiach:
- Usługa każdego sprzedawcy z listy oczekujących rezerwacji musi mieć pole
waitlist_rules
.- Musisz używać tej samej usługi zarówno na liście oczekujących, jak i w rezerwacji. Inaczej mówiąc, jeśli Twoja restauracja umożliwia też rezerwacje, dodaj do usługi metadane związane z listą oczekujących.
- Wysyłanie aktualizacji SMS jest wymagane w przypadku implementacji listy oczekujących w tych przypadkach:
- Potwierdź, że użytkownik dołączył do listy oczekujących.
- Powiadomienie użytkownika, że jego tabela jest gotowa.
- Powiadomienie użytkownika o anulowaniu jego pozycji na liście oczekujących.
- SMS-y muszą zawierać link do strony, na której użytkownicy mogą sprawdzić stan swojej listy oczekujących.
- Sprzedawcy z listy oczekujących nie muszą przesyłać plików danych o dostępności do Centrum działań.
- Serwer rezerwacji musi wdrożyć wszystkie kroki związane z listą oczekujących, podane w artykule Wdrażanie serwera rezerwacji. Partnerzy, którzy obsługują zarówno rezerwacje, jak i listy oczekujących, mogą dodać nowe metody do swojego serwera rezerwacji.
- Centrum działań uruchamia zestaw przypadków testowych metod listy oczekujących na serwerze rezerwacji.
Schemat blokowy stanu
Ten wykres przedstawia stany, które muszą być zgłaszane w zadaniu
WaitlistEntry.waitlist_entry_state
w przypadku odpowiadania na wywołania
GetWaitlistEntry
. Wykres wskazuje też, kiedy należy zarejestrować i wypełnić pola
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
, a kiedy wysłać do użytkownika SMS-a z informacją o wprowadzeniu nowego stanu.
![Rysunek 3. Schemat blokowy stanu listy oczekujących](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=8&hl=pl)
Najczęstsze przypadki skrajne
Poniżej znajdziesz typowe przypadki skrajne w integracji list oczekujących rezerwacji i preferowane rozwiązania w ich przypadku.
-
Jeśli niektóre (ale nie wszystkie) osoby nie akceptują dodawania nowych osób do listy oczekujących, ponieważ nie trzeba czekać w przypadku tych rozmiarów, preferowane jest zwrócenie wartości
WaitEstimates
dla wszystkich rozmiarów grupy w odpowiedziBatchGetWaitEstimates
i zezwolenie użytkownikom na dołączenie do listy oczekujących na osoby z tych rozmiarów bez konieczności czekania. ZwróćWaitLength
z wartością 0parties_ahead_count
lub z wartościąestimated_seat_time_range
o wartości 0start_seconds
i 0end_seconds
w przypadku zasobówparty_size
bez oczekiwania -
Jeśli co najmniej 1 rozmiar grupy nie akceptuje dodawania nowych do listy oczekujących, ponieważ czas oczekiwania wydłużył się, preferowane jest pominięcie
WaitEstimates
w przypadku tych rozmiarów grupy w odpowiedziBatchGetWaitEstimates
.
Te metody są preferowane, ponieważ dają użytkownikom różne opcje, nawet jeśli lista oczekujących sprzedawcy nie jest w pełni otwarta.
Wytyczne dla partnerów korzystających tylko z list oczekujących na rezerwacje
Jeśli serwer rezerwacji jest używany tylko do tworzenia list oczekujących, pamiętaj o tych kwestiach:
- Partnerzy korzystający tylko z list oczekujących rezerwacji nie przesyłają plików danych o dostępności do usługi Zarezerwuj z Google.
- Partnerzy korzystający tylko z list oczekujących rezerwacji nie implementują metod rezerwacji na swoim serwerze rezerwacji. Zamiast tego zaimplementuj serwer rezerwacji zgodnie z instrukcjami implementacji listy oczekujących.
- Partnerzy korzystający tylko z list oczekujących rezerwacji nie wykonują wywołań interfejsu API w Google. Oznacza to, że partnerzy mający dostęp tylko do list oczekujących na rezerwacje nie muszą konfigurować projektu w chmurze ani podawać adresu e-mail dewelopera. Nie musisz przeprowadzać aktualizacji interfejsu API w czasie rzeczywistym. Jednak pliki danych sprzedawcy i usług nadal muszą być jednak przesłane w Actions Center.
Wytyczne dla partnerów, których sprzedawcy muszą ręcznie akceptować/odrzucać dodania do listy oczekujących
Jeśli Twoi sprzedawcy wymagają możliwości ręcznego akceptowania lub odrzucania nowych pozycji na liście oczekujących od Google, są wymagane dodatkowe czynności:
- Ustaw
waitlist_confirmation_mode
naWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
wwait_estimate
w przypadku rozmiarów grup, które wymagają ręcznego potwierdzenia. Należy go ustawić w polachBatchGetWaitEstimateResponse
iGetWaitlistEntryResponse
. - Wpisy na liście oczekujących, o które prosi użytkownik, ale które nie zostały jeszcze zaakceptowane przez sprzedawcę, powinny mieć stan
PENDING_MERCHANT_CONFIRMATION
.
Przypadki testowe dotyczące list oczekujących dotyczących rezerwacji
Google testuje poniższe przypadki użycia, aby upewnić się, że metody listy oczekujących w implementacji serwera rezerwacji działają prawidłowo. Google testuje i monitoruje również czas oczekiwania. Przed uruchomieniem muszą zostać zaliczone wszystkie te testy.
Pobieranie oszacowania czasu oczekiwania
- Zwracane są szacowane czasy oczekiwania dla każdej liczby osób żądanej w
BatchGetWaitEstimatesRequest
. - W przypadku liczby osób, które sprzedawca może zaakceptować lub odrzucić nowe osoby do listy oczekujących, ustaw ustawienie Waitlist_confirmation_mode na
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
.
Tworzenie pozycji na liście oczekujących
- Wpis na liście oczekujących można utworzyć na podstawie żądania
CreateWaitlistEntry
. - Jeśli nie uda się utworzyć wpisu na liście oczekujących, w odpowiedzi wyświetli się błąd logiki biznesowej.
- Jeśli próba
CreateWaitlistEntry
się powiedzie, ta sama odpowiedź zostanie zwrócona po ponownym odebraniu tego samego elementuCreateWaitlistEntry
. - Jeśli próba
CreateWaitlistEntry
się nie powiedzie, serwer ponawia próbę, gdy ponownie otrzyma ten sam parametrCreateWaitlistEntry
. - Pozycje na liście oczekujących pojawią się w interfejsie sprzedawcy.
- Wywołania
GetWaitlistEntry
zwracają utworzoną pozycję na liście oczekujących.
Stany wpisów na liście oczekujących i sygnatury czasowe
- Sprawdź, czy każdy stan wpisu na liście oczekujących jest zwracany prawidłowo we wpisie listy oczekujących dla odpowiedzi
GetWaitlistEntry
. - Sprawdź, czy sygnatura czasowa każdego stanu jest ustawiona w odpowiednim polu sygnatury czasowej pozycji na liście oczekujących w odpowiedziach
GetWaitlistEntry
.
Usunięcie pozycji z listy oczekujących
- Istniejące wpisy z listy oczekujących można usunąć. Odpowiedź na udane usunięcie musi być pustym proto
{}
.
Zrezygnuj
- Sprawdź, czy sprzedawcy, którzy zrezygnowali z tej funkcji, są traktowani w sposób opisany w sekcji Rezygnacja sprzedawców.
Przykładowy plik danych usługi listy oczekujących (JSON)
Plik danych usługi listy oczekującychRezygnacja sprzedawcy
Google oczekuje określonych odpowiedzi w przypadku sprzedawców, którzy wcześniej korzystali z list oczekujących, ale zdecydowali się zrezygnować z ich używania.
Natychmiastowa rezygnacja
- Zwróć
CLOSED_OTHER
w przypadku żądańBatchGetWaitEstimates
. - Zwróć
WAITLIST_CLOSED
dla żądańCreateWaitlistEntry
. - Zwracaj prawidłowe żądania
GetWaitlistEntry
w przypadku użytkowników, którzy są już na liście oczekujących.
Rozszerzona rezygnacja
- Usuń atrybut
waitlist_rules
z pliku danych usług sprzedawcy, jeśli nie rezygnuje on z rezerwacji. - Usunąć sprzedawcę z pliku danych, jeżeli zrezygnował ze wszystkich integracji z Google.