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

Zasób: Availability

Dostępny termin usługi sprzedawcy, wskazujący godzinę 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)
  },
  "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.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

duration

string (Duration format)

Czas trwania terminu spotkania

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „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 3 są zarezerwowane: 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=1spotsOpen=1.
  • ScheduleException oznacza 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 to ustawienie jest włączone, będzie ono uwzględniane w żądaniach dotyczących rezerwowania, aktualizowania i anulowania wizyt.

resources

object (Resources)

Opcjonalne zasoby używane do odróżnienia tego przedziału czasowego od innych, gdy usługa obejmuje różnych pracowników lub pokoje.

np. 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 zapłaty za ten przedział czasu. Rzeczywiste opcje płatności są zdefiniowane na poziomie sprzedawcy i mogą być też 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 określone tutaj NIE muszą być obecne w wiadomości o usłudze, ale muszą być zdefiniowane na poziomie sprzedawcy.

recurrence

object (Recurrence)

Informacje o powtarzaniu dostępności, które reprezentują więcej niż 1 godzinę rozpoczęcia. Cykliczne spotkanie powinno zawierać spotkania na 1 dzień roboczy.

scheduleException[]

object (ScheduleException)

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

deposit

object (Deposit)

Opcjonalna zaliczka w przypadku tej dostępności. Zastępuje kaucję za usługę, jeśli została określona.

noShowFee

object (NoShowFee)

Opcjonalna opłata za niepojawienie się w przypadku tej dostępności. Zastępuje opłatę za niestawienie się w przypadku usługi, 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ł czasu. Jeśli wartość nie jest ustawiona, jest dziedziczona z poziomu usługi, jeśli jest tam ustawiona. (opcjonalnie)

ticketTypeId[]

string

Wskazuje listę obsługiwanych typów biletów w przypadku tego przedziału czasowego dostępności. Jeśli nie zostanie ustawiony, wszystkie typy biletów w usłudze nadrzędnej będą dostępne w tym przedziale. Wartości tego pola muszą być zdefiniowane w usłudze nadrzędnej. Przykłady:

  • Usługa z 4 rodzajami biletów: TicketType {ticketTypeId: "adult_1" shortDescription: "Dni powszednie dla dorosłych"} TicketType {ticketTypeId: "adult_2" shortDescription: "Weekendy dla dorosłych"} TicketType {ticketTypeId: "youth_1" shortDescription: "Dni powszednie dla młodzieży"} 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 rodzajami biletów: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

Aby wskazać, że w tym przedziale czasowym dostępne są wszystkie 3 rodzaje biletów, użyj wartości availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} lub `availability {...}' (nie ustawiaj w tym przedziale wartości ticketTypeId).

(opcjonalnie)

durationRequirement

enum (DurationRequirement)

Wymóg wyświetlania czasu trwania lub godziny zakończenia przedziałów. To pole będzie ignorowane, jeśli przedział jest niedostępny. Nie jest używany w przypadku kategorii „Atrakcje”. (opcjonalnie)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Reguły planowania dostępności. Jeśli pola są wypełnione, zastąpią one odpowiednie reguły harmonogramu w polu SchedulingRules na poziomie usługi.

confirmationMode

enum (ConfirmationMode)

Tryb potwierdzenia, który będzie używany podczas rezerwowania tej dostępności. Próby utworzenia rezerwacji dla dostępności z trybem potwierdzenia CONFIRMATION_MODE_SYNCHRONOUS muszą być natychmiast potwierdzone lub odrzucone. Próby utworzenia rezerwacji dla dostępności z trybem potwierdzenia CONFIRMATION_MODE_ASYNCHRONOUS muszą być natychmiast odrzucane lub tworzone ze stanem PENDING.

linkoutRequiredReason

enum (LinkoutRequiredReason)

Opcjonalnie. Przyczyna, dla której w tym miejscu wymagany jest link do zewnętrznej strony. Jeśli ten atrybut jest ustawiony, zasób sprzedawcy dla tego miejsca musi mieć prawidłowy atrybut LinkoutTemplate. (opcjonalnie)

Zasoby

Zasób służy do rozróżniania przedziałów czasowych, gdy usługa obejmuje różnych pracowników lub pomieszczenia. Wiele miejsc na tę samą usługę i przedział czasowy może istnieć równocześnie, jeśli mają 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 identyfikuje pracownika we wszystkich rekordach sprzedawców, usług i dostępności. Musi też być stabilny w czasie, aby można było go powiązać z rezerwacjami z przeszłości. To pole musi być obecne, jeśli pole staffName jest obecne.

staffName

string

Opcjonalna 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 nieprzejrzyste. To pole musi być obecne, jeśli pole staffId jest obecne.

roomId

string

Opcjonalny identyfikator pokoju, w którym znajduje się usługa. To pole identyfikuje pokój u wszystkich sprzedawców, usług i rekordów dostępności. Musi też być stabilny w czasie, aby można było go powiązać z rezerwacjami z przeszłości. To pole musi być obecne, jeśli pole roomName jest obecne.

roomName

string

Opcjonalna nazwa pomieszczenia, 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 nieprzejrzyste. (opcjonalnie, ale wymagane, jeśli występuje identyfikator pokoju) 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 o stałej cenie, specjalnych aktywności ani żadnych innych wartości niezwiązanych z pokojem (takich jak rezerwacja lub kolacja). Zdecydowanie zalecamy, aby domyślna strefa wypoczynkowa nie była powiązana z żadnym pomieszczeniem.

partySize

integer

Dotyczy tylko restauracji: liczba osób, które można przyjąć w tym przedziale czasowym. Restauracja może być powiązana z wieloma przedziałami czasowymi w tym samym czasie, z których każdy określa inną liczbę osób, np. 2, 3 lub 4, które można posadzić przy stoliku po dokonaniu rezerwacji.

roomDescription

object (Text)

Opcjonalnie. Zlokalizowany opis pokoju. Jeśli jest ustawiona, należy podać wartość domyślną. Warto też podać popularne języki w regionie sprzedawcy. (opcjonalnie)

Powtarzanie

Wiadomości o powtarzaniu są opcjonalne, ale umożliwiają bardziej zwięzłe przedstawienie powtarzających się przedziałów dostępności. Zwykle reprezentują one harmonogram pracy w danym dniu. Wiadomości ScheduleException są następnie używane do reprezentowania zarezerwowanych lub niedostępnych przedziałów czasu w ciągu dnia pracy.

Wymagania:

  1. Rozszerzenie dostępnych przedziałów czasowych lub powtórzeń NIE może tworzyć identycznych przedziałów. Jeśli identyfikatory, startTime, duration i resources są zgodne, przedziały czasowe są uznawane za identyczne.
  2. W przypadku gniazd pojedynczej usługi NIE mieszaj standardowego formatu dostępności i cykliczności. Powtarzanie jest korzystne dla sprzedawców/usługodawców, którzy oferują rezerwacje. Standardowy format jest przeznaczony dla sprzedawców/usługodawców, którzy regularnie prowadzą zajęcia.
  3. Powtórzenia nie powinny trwać dłużej niż 24 godziny.
Zapis JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Pola
repeatUntil

string (Timestamp format)

Maksymalna sygnatura czasowa UTC (włącznie), do której powtarza się dostępność.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

repeatEvery

string (Duration format)

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

Przykład: dostępność z czasem trwania 20 min, powtarzaniem co 30 min, czasem rozpoczęcia 9:00 i czasem zakończenia 11:00 spowoduje utworzenie przedziałów czasowych 9:00–9:20, 9:30–9:50, 10:00–10:20, 10:30–10:50 i 11:00–11:20. (wymagane)

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

ScheduleException

Wiadomości ScheduleException reprezentują zarezerwowane lub niedostępne przedziały czasu w ciągu dnia pracy, które są wyjątkami od opisanego powyżej cyklu. W miarę rezerwowania terminów lista wyjątków powinna być aktualizowana, aby odzwierciedlać nowo niedostępne przedziały czasowe. Nie należy modyfikować samego cyklu.

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

object (TimeRange)

Zakres czasu wyjątku. Wszystkie terminy opisane przez powtarzanie, które pokrywają się z tym przedziałem czasu, będą uznawane za niedostępne.

Przykład: jeśli powtarzanie określa czas trwania 20 minut, powtarzanie co 30 minut, czas rozpoczęcia 9:00 i czas zakończenia 11:00, to ScheduleException z zakresem czasu 9:45–11:00 spowoduje niedostępność przedziałów czasowych 9:30–9:50, 10:00–10:20 i 10:30–10:50.

Pamiętaj, że ponieważ zakres czasu jest zamknięto-otwarty, nie ma to wpływu na przedział czasu rozpoczynający się o 11:00.

Przedpłata

Płatność, którą użytkownik może uiścić w ramach rezerwacji.

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

object (PriceInfo)

Kontener ze szczegółami ceny.

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, jak stosowana jest cena lub przedział cenowy (za osobę lub stała cena)

Pole zbiorcze price_options. Opcje cenowe mogą określać dokładną cenę lub przedział cenowy. price_options może mieć tylko jedną z tych wartości:
price

object (Price)

Cena usługi lub opłata.

priceRange

object (PriceRange)

Górna lub dolna granica usługi lub opłaty.

PriceRange

Obiekt opakowujący zakres kwot pieniężnych traktowany jako nieograniczony, chyba że obie wartości są ustawione. Wymagana jest co najmniej jedna z wartości minAmount i maxAmount.

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

object (Price)

Minimalna kwota.

maxPrice

object (Price)

Maksymalna kwota. Wartość powinna być zawsze większa niż minPrice.

DurationRequirement

Ten wyliczenie wskazuje, jakie wymagania musi spełnić użytkownik, aby potwierdzić lub wyświetlić czas trwania/godzinę zakończenia żądanych przedziałów czasowych.

Wartości w polu enum
DURATION_REQUIREMENT_UNSPECIFIED Obsługa czasu zakończenia nie jest określona. Jest to ustawienie domyślne.
DO_NOT_SHOW_DURATION Czas zakończenia nie jest widoczny dla użytkownika.
MUST_SHOW_DURATION Zanim użytkownik będzie mógł umówić spotkanie, musi zobaczyć godzinę zakończenia.

SchedulingRuleOverrides

Reguły harmonogramu poziomu dostępności.

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

string (int64 format)

Ostatni moment (w sekundach), w którym można zarezerwować ten przedział czasowy. Aby ten sygnatura czasowa była uwzględniana, musi być wcześniejsza niż startSec przedziału (jeśli użytkownicy mają mieć możliwość rezerwacji po godzinie rozpoczęcia, użyj SchedulingRules.min_booking_before_end_time na poziomie usługi). Jeśli jest obecny, zastąpi wszystko, co zostało określone w min_booking_buffer w SchedulingRules 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 w przypadku przedziału czasu lub lastBookableSec, jeśli jest określona.

lastOnlineCancellableSec

string (int64 format)

Jeśli jest ustawiona, ostatni czas (w sekundach od początku epoki systemu Unix), w którym można anulować konkretny przedział czasowy rezerwacji za pomocą funkcji Zarezerwuj z Google. To pole zastąpi wszystkie reguły anulowania na poziomie usługi. (opcjonalnie)

ConfirmationMode

Tryby potwierdzenia używane podczas rezerwowania dostępności.

Wartości w polu enum
CONFIRMATION_MODE_UNSPECIFIED Nie określono trybu potwierdzenia. Zakładamy potwierdzenie synchroniczne.
CONFIRMATION_MODE_SYNCHRONOUS Rezerwacje w ramach tej dostępności będą potwierdzane synchronicznie.
CONFIRMATION_MODE_ASYNCHRONOUS Rezerwacje w ramach tej dostępności będą potwierdzane asynchronicznie.

LinkoutRequiredReason

Przyczyna, dla której w miejscu docelowym występuje link prowadzący do zewnętrznej strony.

Wartości w polu enum
LINKOUT_REQUIRED_REASON_UNSPECIFIED Wartość domyślna: nie używaj, oznacza nieznane.
PAYMENT_REQUIRED Aby zarezerwować termin, musisz dokonać płatności na platformie partnera.

Metody

replace

Zastępuje Availability istniejącego Service sprzedawcy zarządzanego przez określonego agregatora i zwraca go.