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

Zasób: Dostępność

Dostępny przedział czasu na usługę 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 formacie UTC „Zulu” zdefiniowanym w dokumencie RFC 3339, z dokładnością do nanosekund i maksymalnie 9 miejsc po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Czas trwania 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 ramach 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 oznacza spotsTotal=1 i spotsOpen=1.
  • Wyjątek harmonogramu implikuje spotsTotal=1 i spotsOpen=0.
spotsOpen

string (int64 format)

Liczba otwartych miejsc.

availabilityTag

string

Opcjonalny nieprzejrzysty ciąg znaków identyfikujący ten slot dostępności. Jeśli to ustawienie jest włączone, będzie uwzględniane w prośbach o zarezerwowanie, zaktualizowanie lub anulowanie 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.

Przykład: te same zajęcia z jogi prowadzone przez 2 instruktorów:

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ą definiowane 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 identyfikatory payment_option_ids podane tutaj NIE muszą być obecne w wiadomości usługi, ale muszą być zdefiniowane na poziomie sprzedawcy.

recurrence

object (Recurrence)

Informacje o powtarzalności dostępności, które wskazują więcej niż 1 czas rozpoczęcia. Powtarzające się wydarzenie powinno zawierać spotkania na jeden dzień roboczy.

scheduleException[]

object (ScheduleException)

Czasy, 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 depozyt na poczet usługi, jeśli został on określony;

noShowFee

object (NoShowFee)

Opcjonalna opłata za brak anulowania rezerwacji w przypadku tej dostępności. Zastępuje opłatę za niestawienie się na spotkaniu, 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ć dane karty kredytowej, aby zarezerwować ten przedział czasowy. Jeśli wartość nie zostanie ustawiona, zostanie odziedziczona z poziomu usługi, jeśli jest tam ustawiona. (opcjonalnie)

ticketTypeId[]

string

Wskazuje listę obsługiwanych typów biletów dla tego przedziału dostępności. Jeśli nie zostanie ustawiony, w tym miejscu dostępne są wszystkie typy biletów 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 4 typami biletów: TicketType {ticketTypeId: "adult_1" shortDescription: "Dorośli w dni powszednie"} TicketType {ticketTypeId: "adult_2" shortDescription: "Dorośli w weekendy"} TicketType {ticketTypeId: "youth_1" shortDescription: "Dzieci w dni powszednie"} TicketType {ticketTypeId: "youth_2" shortDescription: "Dzieci w weekendy"}

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: "adult" shortDescription: "Dorośli"} TicketType {ticketTypeId: "youth" shortDescription: "Młodzież"} TicketType {ticketTypeId: "senior" shortDescription: "Seniorzy"}

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)

Wymaganie wyświetlania czasu trwania lub czasu zakończenia slotu. To pole jest ignorowane, jeśli slot jest niedostępny. Nie jest używany w kategorii „Lista zadań”. (opcjonalnie)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Reguły planowania dostępności. Jeśli pola są wypełnione, zastąpią one wszystkie odpowiadające im reguły harmonogramowania w regułach harmonogramowania 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 dla dostępności z trybem potwierdzenia CONFIRMATION_MODE_ASYNCHRONOUS muszą być albo natychmiast odrzucone, albo utworzone ze stanem PENDING.

linkoutRequiredReason

enum (LinkoutRequiredReason)

Opcjonalnie: Wymóg linku wyjściowego w tym slocie. 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, który świadczy usługę. To pole identyfikuje pracownika we wszystkich rekordach sprzedawców, usług 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 imię i nazwisko pracownika są obecne.

staffName

string

Opcjonalnie nazwa pracownika świadczącego usługę. To pole będzie wyświetlane użytkownikom dokonującym rezerwacji i powinno być zrozumiałe dla człowieka, a nie zaciemnionym identyfikatorem. 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 pokój we wszystkich rekordach sprzedawców, usług i dostępności. Musi być też stabilny w czasie, aby można było go porównać z poprzednimi rezerwacjami. To pole musi występować, jeśli występuje 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 podano roomId) W przypadku restauracji nazwa pokoju powinna być używana tylko w przypadku miejsc siedzących, takich jak bar lub patio, i nie powinna być używana w przypadku menu z ryczałtowymi cenami, specjalnych zajęć lub innych wartości niezwiązanych z pokojem (takich jak rezerwacja czy kolacja). 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 przedziale czasowym. Restauracja może być powiązana z wieloma slotami na ten sam czas, z których każdy określa inną wielkość grupy, jeśli na przykład w rezerwacji mogą zarezerwować miejsce 2, 3 lub 4 osoby.

roomDescription

object (Text)

Opcjonalnie: zlokalizowany opis pokoju, Jeśli jest ustawiony, musisz podać wartość domyślną. Zaleca się również podanie języków używanych w regionie 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. Zwykle przedstawiają harmonogram pracy na dany dzień. Komunikaty dotyczące wyjątków w harmonogramie są następnie używane do reprezentowania zajętych lub niedostępnych przedziałów czasu w ciągu dnia roboczego.

Wymagania:

  1. Rozszerzenie slotów dostępności lub powtórzeń NIE może tworzyć identycznych slotów. Jeśli identyfikatory, czas rozpoczęcia, czas trwania i zasoby są takie same, sloty są uważane 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)

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

Sygnatura czasowa w formacie UTC „Zulu” zdefiniowanym w dokumencie RFC 3339, z dokładnością do nanosekund i maksymalnie 9 miejsc 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, powtarzająca się co 30 minut, z czasem rozpoczęcia 9:00 i powtarzająca się do 11:00 rano, będzie miała sloty o godzinach 9–9:20, 9:30–9:50, 10–10:20, 10:30–10:50 i 11–11:20. (wymagane)

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „s”. Przykład: "3.5s".

ScheduleException

Wiadomości dotyczące wyjątków w harmonogramie to zarezerwowane lub niedostępne zakresy czasu w ciągu dnia roboczego, które są wyjątkami od opisanej powyżej powtarzalności. Po zarezerwowaniu terminów należy zaktualizować listę wyjątków, aby uwzględnić nowe niedostępne przedziały czasu. Nie należy modyfikować samego powtarzania.

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

object (TimeRange)

Zakres czasowy wyjątku. Wszystkie terminy opisane przez powtarzalność, które pokrywają się z tym zakresem godzin, będą 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.

Ponieważ zakres czasowy jest zamknięty, nie wpłynie to 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

Pojemnik na szczegóły dotyczące cen.

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 unii price_options. Opcje cenowe umożliwiają określenie dokładnej ceny lub przedziału. price_options może być tylko jednym z tych elementów:
price

object (Price)

Cena usługi lub opłaty.

priceRange

object (PriceRange)

Górna lub dolna granica opłaty za usługę.

PriceRange

Opakowanie dla zakresu kwoty pieniężnej traktowanej jako nieograniczona, chyba że obie wartości są ustawione. Wymagane są co najmniej wartości 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 enumeracji wskazuje, jakie wymagania musi spełnić użytkownik, aby potwierdzić lub wyświetlić czas trwania żądanych slotów lub czas ich zakończenia.

Wartości w polu enum
DURATION_REQUIREMENT_UNSPECIFIED Nie określono sposobu obsługi czasu zakończenia. Jest to ustawienie domyślne.
DO_NOT_SHOW_DURATION Czas zakończenia nie jest widoczny dla użytkownika.
MUST_SHOW_DURATION Czas zakończenia musi być wyświetlany użytkownikowi, zanim będzie można umówić spotkanie.

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), w którym można zarezerwować ten slot. Ten sygnatura czasowa musi być krótsza 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 moment (w sekundach), w którym można zarezerwować ten przedział czasu. Ta sygnatura czasowa musi być wcześniejsza niż startSec boksu lub lastBookableSec, jeśli jest 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 podczas rezerwacji dostępności.

Wartości w polu enum
CONFIRMATION_MODE_UNSPECIFIED Nie określono trybu potwierdzenia. Zakłada się, że potwierdzenie jest 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, oznacza nieznane.
PAYMENT_REQUIRED Aby zarezerwować slot, musisz dokonać płatności na platformie partnera.

Metody

replace

Zastępuje Availability dotychczasowego Service sprzedawcy zarządzanego przez określonego pośrednika i zwraca go.