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

Zasób: Availability

Dostępny termin usługi sprzedawcy, z wskazaniem czasu i liczby 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)
  },
  "prepayment": {
    object (Prepayment)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode),
  "linkoutRequiredReason": enum (LinkoutRequiredReason)
}
Pola
startTime

string (Timestamp format)

Czas 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 w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „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 z jogi z 10 miejscami, z których zarezerwowano 3: 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 w formacie kompresji dostępności zdefiniowanym poniżej, te 2 pola zostaną wywnioskowane.

  • Powtarzanie zakłada spotsTotal=1 i spotsOpen=1.
  • Wyjątek harmonogramu implikuje 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 w ramach usługi występują różne osoby z personelu lub pokoje.

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żywać do opłacania tego slotu. 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_ids określone w wiadomości 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ę komunikatów o wyjątkach harmonogramu, rozważ połączenie sąsiadujących wyjątków.

deposit

object (Deposit)

Opcjonalny depozyt dla tej dostępności. Zastępuje wpłatę za usługę, jeśli została określona.

noShowFee

object (NoShowFee)

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

prepayment

object (Prepayment)

Opcjonalnie: Opcjonalne informacje o przedpłacie w przypadku tej dostępności.

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 ona dziedziczona z poziomu usługi, o ile jest na nim ustawiona. (opcjonalnie)

ticketTypeId[]

string

Wskazuje listę obsługiwanych typów biletów dla tego przedziału dostępności. 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 powszednie"} TicketType {ticketTypeId: "youth_2" ShortDescription: "Weekendy dla młodzieży"}

Aby reprezentować zasoby reklamowe w dni powszednie: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Aby reprezentować zasoby reklamowe 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 w tym przedziale czasowym dostępne są wszystkie 3 typy biletów, użyj wartości availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} lub „availability {...}” (nie ustawiaj w tym miejscu atrybutu ticketTypeId).

(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 planowania 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 będzie używany podczas rezerwacji tej dostępności. Próby utworzenia rezerwacji dla dostępnych terminów 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.

linkoutRequiredReason

enum (LinkoutRequiredReason)

Opcjonalnie: Powód, dla którego wymagany jest link do tego boksu. Jeśli jest ustawiony, zasób Merchant w tym miejscu musi zawierać prawidłowy LinkoutTemplate. (opcjonalnie)

Zasoby

Zasób służy do rozróżniania różnych slotów dostępności, gdy w ramach usługi występują różne osoby z personelu lub różne pomieszczenia. Wiele slotów dla tej samej usługi i tego samego przedziału czasowego może współistnieć, jeśli mają one różne zasoby.

Zapis JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer,
  "roomDescription": {
    object (Text)
  }
}
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 być też stabilny w czasie, aby można było go porównać z poprzednimi 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 jest obecne pole staffId.

roomId

string

Opcjonalny identyfikator pokoju, w którym znajduje się usługa. To pole identyfikuje salę we wszystkich sprzedawcach, usługach i rekordach dostępności. Musi też być stabilny w czasie, 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 znajduje się usługa. To pole będzie wyświetlane użytkownikom dokonującym rezerwacji i powinno być zrozumiałe dla człowieka, a nie zaciemnionym identyfikatorem. (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ślna strefa siedzenia nie była powiązana z pokojem.

partySize

integer

Dotyczy tylko restauracji: liczba osób, które mogą zjeść w danym czasie. Restauracja może być powiązana z wieloma salami w tym samym czasie i określać inny rozmiar grupy.

roomDescription

object (Text)

Opcjonalnie: Zlokalizowany opis pokoju. Jeśli jest ustawione, należy podać wartość domyślną. Zalecamy także podanie popularnych języków dla regionu sprzedawcy. (opcjonalnie)

Powtarzanie

Wiadomości o powtarzających się terminach są opcjonalne, ale umożliwiają bardziej zwartą reprezentację stale powtarzających się okresó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 powtarzalności w ramach slotów jednej usługi. Powtarzalność jest przydatna dla sprzedawców/usług, które oferują spotkania. Standardowy format jest przeznaczony dla sprzedawców/usługodawców z regularnie zaplanowanymi zajęciami.
  3. Powtarzanie nie powinno trwać dłużej niż 24 godziny.
Zapis JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Pola
repeatUntil

string (Timestamp format)

Sygnatura czasowa UTC, do której obowiązuje dostępność.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z""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 rekomendacja powtórzDo 11:00 powodują wyświetlenia przedziałów o godzinach 9:00, 9:30–9:50, 10–10:20, 10:30–10:511, 10:30–10:51. (wymagane)

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „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. Po zarezerwowaniu terminów należy zaktualizować listę wyjątków, aby uwzględnić nowe niedostępne przedziały czasu. 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 określa czas trwania 20 minut, powtarzanie co 30 minut, godzinę rozpoczęcia 9:00 i godzinę zakończenia 11:00, to wyjątek harmonogramu z zakresem czasowym 9:45–11:00 spowoduje, że niemożliwe do zrealizowania będą przedziały 9:30–9:50, 10:00–10:20 i 10:30–10:50.

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

Przedpłata

Płatność, która może zostać pobrana od użytkownika w ramach rezerwacji.

Zapis JSON
{
  "priceInfo": {
    object (PriceInfo)
  }
}
Pola
priceInfo

object (PriceInfo)

Pojemnik na szczegóły dotyczące cen.

PriceInfo

Kontener ze szczegółami ceny.

Zapis JSON
{
  "priceType": enum (PriceType),

  // Union field price_options can be only one of the following:
  "price": {
    object (Price)
  },
  "priceRange": {
    object (PriceRange)
  }
  // End of list of possible types for union field price_options.
}
Pola
priceType

enum (PriceType)

Określa sposób stosowania ceny lub przedziału cenowego (za osobę lub stała cena).

Pole sumy price_options. Opcje cenowe umożliwiają określenie dokładnej ceny lub przedziału. price_options może mieć tylko jedną z tych wartości:
price

object (Price)

Cena usługi lub opłaty.

priceRange

object (PriceRange)

Górna lub dolna granica usługi bądź opłaty.

PriceRange

Paczka z zakresem kwot pieniężnych traktowanych jako nieograniczony, chyba że obie wartości są ustawione. Wymagana jest co najmniej jedna wartość: minAmount i maxAmount.

Zapis JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
Pola
minPrice

object (Price)

Minimalna kwota.

maxPrice

object (Price)

Maksymalna kwota. Właściwa wartość to zawsze > minPrice.

DurationRequirement

Ten typ enum wskazuje, jakie wymagania musi spełnić użytkownik, aby potwierdzić lub wyświetlić czas trwania lub zakończenia żądanych slotó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 Czas zakończenia nie jest widoczny dla użytkownika.
MUST_SHOW_DURATION Aby można było umówić się na spotkanie, musi wyświetlić się użytkownikowi godzina zakończenia.

SchedulingRuleOverrides

Zasady harmonogramowania 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. Ten sygnatura czasowa musi być mniejsza niż startSec danego przedziału (jeśli użytkownicy mają mieć możliwość rezerwacji po godzinie rozpoczęcia, użyj parametru SchedulingRules.min_booking_before_end_time na poziomie usługi). Jeśli jest obecna, zastąpi wszystko określone w min_booking_buffer w regułach harmonogramowania odpowiedniej usługi.

firstBookableSec

string (int64 format)

Pierwszy czas (w sekundach), w jakim można zarezerwować ten slot. Musi ona być krótsza niż wartość startSec boksu lub lastBookableSec, jeśli została podana.

lastOnlineCancellableSec

string (int64 format)

Jeśli ustawiono wartość, jest to ostatni czas (w sekundach od epoki Unixa), do którego można anulować ten konkretny przedział czasowy rezerwacji za pomocą platformy 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 dotyczące tej dostępności będą potwierdzane asynchronicznie.

LinkoutRequiredReason

Powód, dla którego slot ma link wyjściowy.

Wartości w polu enum
LINKOUT_REQUIRED_REASON_UNSPECIFIED Wartość domyślna: nie używaj, równa się nieznana.
PAYMENT_REQUIRED Rezerwacja przedziału wymaga płatności na platformie partnera.

Metody

replace

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