REST Resource: inventory.partners.merchants.services.availability

Zasób: Availability

Przedział dostępności usługi sprzedawcy, który wskazuje czas i liczbę miejsc.

Zapis JSON
{
  "startTime": string,
  "duration": string,
  "spotsTotal": string,
  "spotsOpen": string,
  "availabilityTag": string,
  "resources": {
    object (Resources)
  },
  "paymentOptionId": [
    string
  ],
  "recurrence": {
    object (Recurrence)
  },
  "scheduleException": [
    {
      object (ScheduleException)
    }
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
Pola
startTime

string (Timestamp format)

Godzina rozpoczęcia terminu spotkania.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Czas trwania terminu spotkania

Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „s”. Przykład: "3.5s".

spotsTotal

string (int64 format)

Łączna liczba miejsc i wolnych miejsc w przypadku tej dostępności. Przykłady:

  • Zajęcia jogi obejmujące 10 miejsc z 3 zarezerwowanymi: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Sesja masażu na krześle, która jest już w pełni zarezerwowana: availability {spotsTotal: 1, spotsOpen: 0 ...}

Uwaga: jeśli wysyłasz żądania przy użyciu zdefiniowanego poniżej formatu kompresji dostępności, te 2 pola zostaną wywnioskowane.

  • Powtarzanie obejmuje reguły spotsTotal=1 i spotsOpen=1.
  • Wyjątek ScheduleException zakłada, że chodzi o spotsTotal=1 i spotsOpen=0.
spotsOpen

string (int64 format)

Liczba wolnych miejsc

availabilityTag

string

Opcjonalny nieprzezroczysty ciąg znaków identyfikujący ten przedział dostępności. Jeśli jest ustawiona, będzie uwzględniana w prośbach dotyczących rezerwowania, aktualizowania lub anulowania spotkań.

resources

object (Resources)

Opcjonalne zasoby używane do odróżnienia tego przedziału dostępności od innych, gdy usługa obejmuje różnych pracowników lub sale.

Na przykład: te same zajęcia jogi z 2 instruktorami:

availability { resources { staffId: "1" staffName: "Amy" }
               spotsTotal: 10 spotsOpen: 7 }
availability { resources { staffId: "2" staffName: "John" }
               spotsTotal: 5 spotsOpen: 2 }
paymentOptionId[]

string

Lista identyfikatorów odwołujących się do opcji płatności, których można użyć do opłacenia tego przedziału. Rzeczywiste opcje płatności są zdefiniowane na poziomie sprzedawcy i mogą być udostępniane wielu sprzedawcom.

To pole zastępuje wszystkie identyfikatory payment_option_id określone w komunikacie dotyczącym usługi. Podobnie określone tutaj identyfikatory payment_option_ids NIE muszą występować w komunikacie dotyczącym usługi, ale muszą być zdefiniowane na poziomie sprzedawcy.

recurrence

object (Recurrence)

Informacje o powtórzeniu dostępności, które reprezentują więcej niż 1 czas rozpoczęcia. Cykliczność powinna zawierać spotkania zaplanowane na jeden dzień roboczy.

scheduleException[]

object (ScheduleException)

Godziny, w których nie można zaplanować tej usługi. Aby ograniczyć liczbę wiadomości zaplanowanych wyjątków, rozważ złączenie sąsiednich wyjątków.

deposit

object (Deposit)

Opcjonalna wpłata za tę dostępność. Zastępuje wpłatę za usługę, jeśli została określona.

noShowFee

object (NoShowFee)

Opcjonalna opłata za niestawienie się w przypadku tej dostępności. Zastępuje opłatę za niestawienie się, jeśli została określona.

requireCreditCard

enum (RequireCreditCard)

Wskazuje, czy użytkownik musi podać kartę kredytową, aby zarezerwować ten przedział dostępności. Jeśli wartość nie jest ustawiona, jest dziedziczona z poziomu usługi, o ile jest na nim ustawiona. (opcjonalnie)

ticketTypeId[]

string

Wskazuje listę obsługiwanych typów biletów w tym przedziale czasu. Jeśli zasada jest nieskonfigurowana, dla tego przedziału są dostępne wszystkie typy zgłoszeń w usłudze nadrzędnej. Pamiętaj, że wartości tego pola muszą być zdefiniowane w usłudze nadrzędnej. Przykłady:

  • Usługa z czterema typami biletów: TicketType {ticketTypeId: "adult_1" ShortDescription: "Dla dorosłych w dni powszednie"} TicketType {ticketTypeId: "adult_2" ShortDescription: "Weekendy dla dorosłych"} TicketType {ticketTypeId: "youth_1" ShortDescription: "Młodzież w dni robocze"} TicketType {ticketTypeId: "youth_2" ShortDescription: "Weekendy dla młodzieży"}

Aby reprezentować zasoby reklamowe w dniach roboczych: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Aby reprezentować asortyment w okresie świątecznym: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Usługa z 3 typami biletów: TicketType {ticketTypeId: "dla dorosłych" ShortDescription: "Adult"} TicketType {ticketTypeId: "youth" ShortDescription: "Youth"} TicketType {ticketTypeId: "senior" ShortDescription: "Senior"}

Aby wskazać, że dla tego przedziału czasu dostępne są wszystkie 3 typy biletów, użyj atrybutu availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} lub „dostępność {...}” (nie ustawiaj pola TicketTypeId w tym przedziale).

(opcjonalnie)

durationRequirement

enum (DurationRequirement)

Wymóg wyświetlania czasu trwania przedziałów lub czasu zakończenia. Jeśli przedział jest niedostępny, to pole jest ignorowane. Nieużywane w branży Atrakcje. (opcjonalnie)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Reguły harmonogramu dostępności. Jeśli pola będą wypełnione, zastąpią wszystkie odpowiadające im reguły harmonogramu w regułach harmonogramu na poziomie usługi.

confirmationMode

enum (ConfirmationMode)

Tryb potwierdzenia, który zostanie użyty podczas rezerwacji tej dostępności. Próby utworzenia rezerwacji na potrzeby dostępności z trybem potwierdzenia CONFIRMATION_MODE_SYNCHRONOUS muszą zostać natychmiast potwierdzone lub odrzucone. Próby utworzenia rezerwacji na potrzeby dostępności z trybem potwierdzenia CONFIRMATION_MODE_ASYNCHRONOUS muszą być natychmiast odrzucone lub utworzone ze stanem OCZEKUJĄCA.

Zasoby

Zasób służy do odróżniania terminów dostępności, gdy usługa obejmuje różnych pracowników lub sale. Współistnieje kilka przedziałów dla tej samej usługi i przedziału czasu, jeśli mają one różne zasoby.

Zapis JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
Pola
staffId

string

Opcjonalny identyfikator pracownika świadczącego usługę. To pole określa pracownika we wszystkich rekordach sprzedaży, usługach i dostępności. Musi też być stabilny z upływem czasu, aby umożliwić korelację z wcześniejszymi rezerwacjami. To pole musi być obecne, jeśli znajduje się element peopleName.

staffName

string

Opcjonalna nazwa pracownika świadczącego usługę. To pole będzie wyświetlane użytkownikom dokonującym rezerwacji i powinno być czytelne dla człowieka, a nie nieprzezroczyste. To pole musi być obecne, jeśli istnieje personId.

roomId

string

Opcjonalny identyfikator pokoju, w którym działa usługa. To pole identyfikuje salę we wszystkich sprzedawcach, usługach i rekordach dostępności. Musi też być stabilny z upływem czasu, aby umożliwić korelację z wcześniejszymi rezerwacjami. To pole musi być obecne, jeśli istnieje element roomName.

roomName

string

Opcjonalna nazwa pokoju, w którym działa obsługa. To pole będzie wyświetlane użytkownikom dokonującym rezerwacji i powinno być czytelne dla człowieka, a nie nieprzezroczyste. (opcjonalnie, ale wymagane, jeśli jest dostępny identyfikator pokoju) W miejscu, w którym znajduje się sala, nazwa sali powinna służyć tylko do określenia miejsca wypoczynkowego, takiego jak bar lub patio. Nie należy jej używać w przypadku menu ze stałą ceną, specjalnych czynności ani żadnych innych wartości niezwiązanych z pokojem (np. rezerwacji czy kolacji). Zdecydowanie zalecamy, aby domyślny kącik wypoczynkowy nie był powiązany z pomieszczeniem.

partySize

integer

Dotyczy tylko restauracji: liczba miejsc, w których można wziąć udział w tym czasie. Restauracja może być powiązana z wieloma salami jednocześnie i określać inny rozmiar grupy.

Powtarzanie

Komunikaty cykliczne są opcjonalne, ale umożliwiają bardziej zwartą reprezentację powtarzających się przedziałów dostępności. Zazwyczaj przedstawiają one harmonogram pracy na dany dzień. Komunikaty ScheduleException są następnie używane do reprezentowania zarezerwowanych/niedostępnych zakresów czasu w ciągu dnia roboczego.

Wymagania:

  1. Rozszerzenie przedziałów dostępności lub powtarzanie nie może tworzyć identycznych przedziałów. Jeśli identyfikatory, czas startowy, czas trwania i zasoby są zgodne, przedziały są uznawane za identyczne.
  2. NIE mieszaj standardowego formatu dostępności i powtarzania w przedziałach w ramach jednej usługi. Powtarzanie przynosi korzyści sprzedawcom/usługom, które oferują spotkania. Standardowy format jest przeznaczony dla sprzedawców/usług, które mają regularnie zaplanowane zajęcia.
  3. Powtarzania nie powinny trwać dłużej niż 24 godziny.
Zapis JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Pola
repeatUntil

string (Timestamp format)

Maksymalna sygnatura czasowa UTC obejmująca okres powtarzania dostępności.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Określa czas między kolejnymi przedziałami dostępności.

Przykład: dostępność z czasem trwania 20 minut, powtórz co 30 minut, data rozpoczęcia 9:00 i kolejno 9:00, powtarzają się między godzinami 9:00, 9:30–9:50, 10–10:20, 10:30–10:511, (wymagane)

Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „s”. Przykład: "3.5s".

ScheduleException

Komunikaty ScheduleException reprezentują zarezerwowane/niedostępne zakresy czasu w ciągu dnia roboczego, które są wyjątkami od opisanej powyżej powtarzania. W miarę rezerwowania przedziałów czasu należy aktualizować listę wyjątków, aby uwzględniała nowo niedostępne zakresy. Nie należy zmieniać samego powtarzania.

Zapis JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Pola
timeRange

object (TimeRange)

Zakres czasowy wyjątku. Wszystkie przedziały opisane przez powtarzanie, które nakładają się na ten zakres czasu zamkniętego i otwartego, są uważane za niedostępne.

Przykład: jeśli powtarzanie ma ustawiony czas trwania wynoszący 20 minut, powtórzenieCo 30 minut, czas rozpoczęcia 9:00 i powtarzanie do 11:00am, to zdarzenie ScheduleException z zakresem timeRange o wartości 9:45am-11:00am spowoduje, że przedziały czasu 9:30-9:50am, 09:30-9:50am, 10-1am, 10:00am, 10:00, 10:00 będą niedostępne.

Pamiętaj, że ponieważ przedział czasu jest zamknięty i otwarty, nie będzie to miało wpływu na przedział zaczynający się o 11:00.

DurationRequirement

Ta wartość enum wskazuje, jakie wymagania muszą spełnić użytkownik, aby potwierdzić lub wyświetlić żądane czasy trwania bądź czas zakończenia przedziałów.

Wartości w polu enum
DURATION_REQUIREMENT_UNSPECIFIED Sposób obsługi godziny zakończenia nie jest określony. Jest to ustawienie domyślne.
DO_NOT_SHOW_DURATION Godzina zakończenia nie jest widoczna dla użytkownika.
MUST_SHOW_DURATION Aby można było umówić się na spotkanie, użytkownik musi wyświetlić jego godzinę zakończenia.

SchedulingRuleOverrides

Reguły planowania na poziomie dostępności.

Zapis JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Pola
lastBookableSec

string (int64 format)

Ostatni czas (w sekundach), kiedy można zarezerwować ten przedział czasu. Ta sygnatura czasowa musi być wcześniejsza niż startSec przedziału, który ma być przestrzegany (jeśli użytkownicy powinni mieć możliwość dokonywania rezerwacji po czasie rozpoczęcia, użyj ustawienia SchedulingRules.min_booking_before_end_time) na poziomie usługi. Jeśli ta opcja jest dostępna, zastąpi wszystkie ustawienia określone w polu min_booking_buffer w regułach harmonogramu odpowiedniej usługi.

firstBookableSec

string (int64 format)

Pierwszy raz (w sekundach), kiedy można zarezerwować ten przedział. Ta sygnatura czasowa musi być wcześniejsza niż startSec przedziału lub lastBookableSec, jeśli została określona.

lastOnlineCancellableSec

string (int64 format)

Jeśli jest ustawiony, ostatni czas (w sekundach od początku epoki uniksowej), o którym można anulować dany termin spotkania przez Zarezerwuj z Google. To pole zastąpi wszystkie reguły anulowania na poziomie usługi. (opcjonalnie)

ConfirmationMode

Tryby potwierdzenia używane w przypadku dostępności rezerwacji.

Wartości w polu enum
CONFIRMATION_MODE_UNSPECIFIED Nie określono trybu potwierdzenia. Przyjmuje się potwierdzenie synchroniczne.
CONFIRMATION_MODE_SYNCHRONOUS Rezerwacje dotyczące tej dostępności będą potwierdzane synchronicznie.
CONFIRMATION_MODE_ASYNCHRONOUS Rezerwacje tej dostępności będą potwierdzane asynchronicznie.

Metody

replace

Zastępuje wartość Availability istniejącego Service sprzedawcy zarządzanego przez określonego pośrednika i zwraca tę wartość.