Interfejs Travel Partner Prices API
Interfejs Travel Partner Prices API zapewnia interfejs typu REST do wysyłania cen nieruchomości do Google.
Usługa: travelpartnerprices.googleapis.com
Do wywoływania tej usługi zalecamy użycie klienta udostępnionego przez Google . Jeśli Aplikacja musi używać Twoich własnych bibliotek, aby wywoływać tę usługę, skontaktuj się z Techniczny menedżer konta (TAM), który dostarczy dokument opisujący dotyczące tej usługi.
Punkt końcowy usługi
Usługa Endpoint to podstawowy adres URL, który określa adres sieciowy usługi interfejsu API. 1 usługa może mieć wiele punktów końcowych usługi. Ta usługa obejmuje następującą usługę i wszystkie wymienione identyfikatory URI odnoszą się do tego punktu końcowego usługi:
https://travelpartnerprices.googleapis.com
Metody | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Prześlij ceny za długość pobytu w określonym obiekcie. Wymaga zakodowanego w formacie JSON komunikatu z cenami w LoS (patrz poniżej) w postaci protokołu HTTP treść wiadomości.
|
Uwierzytelnianie API
Interfejs Travel Partner Prices API używa OAuth 2.0 do uwierzytelnienie aplikacji w celu uzyskania dostępu do interfejsów API.
Aby uzyskać szczegółowe instrukcje konfiguracji, zobacz Konfigurowanie protokołu OAuth 2,0. Oto konfiguracja za instrukcje interfejsu Travel Partner API. Pamiętaj, że interfejs Travel Partner API interfejsu Travel Partner Prices API są inne. W instrukcjach konfiguracji musisz zastąpić interfejs „Travel Partner Prices API” tę nazwę „Travel Partner API” .
Żądania
Składnia
Komunikat LoS Prices
ma taką składnię:
{
"requestTime": YYYY-MM-DDTHH:mm:ss.SSSZ,
"propertyPrices": {
"arrivalDatePrices": [{
"startDate": {
"year": int
"month": int
"day": int
}
"endDate": {
"year": int
"month": int
"day": int
}
"productPrices": [{
"roomTypeId": "string"
"ratePlanId": "string"
"occupancyPrices": [{
"adults": int
"prices": [{
"rateRuleId": "string"
"currencyCode": "string"
"rates": [night_1,night_2,...]
"taxes": [night_1,night_2,...]
"fees": [night_1,night_2,...]
}]
}]
}]
}]
}
}
Elementy Atrybuty
Komunikat dotyczący długości pobytu zawiera te elementy i atrybuty:
Element | Wystąpienia | Typ | Opis |
---|---|---|---|
requestTime | 1 | string | Moment wysłania wiadomości o cenie LoS, wyrażony w formacie RFC 3339 ciągu znaków. Wszystkie wiadomości wysłane za pomocą Wiadomości są przetwarzane w kolejności: RFC 3339 wymaga w pełni określonych dat i godzin jako
Ułamkowe sekundy są opcjonalne i mogą być wyrażone do
precyzji nanosekundy. Na przykład:
Funkcja |
propertyPrices | 1 | Object | Ceny za miejsce zakwaterowania. Wszystkie ceny w tym kraju: propertyPrices
dotyczą tej samej usługi.
Ten element się nie powtarza. Aby przesłać ceny dla wielu miejsc zakwaterowania, Trzeba wysłać wiele żądań HTTP (przynajmniej jedno na usługę). |
arrivalDayPrices[] | 1..n | Object | Ceny w terminie przyjazdu. Wszystkie ceny w tym kraju: arrivalDayPrices
dotyczą konkretnego miejsca zakwaterowania, ale różnią się od dat przyjazdu. |
startDate | 1 | Object | productPrices dotyczy wszystkich dat przyjazdu
między startDate a endDate włącznie.
Jeśli próbujesz podać tylko jedną datę przyjazdu (a nie zakres),
wpisz datę przyjazdu zarówno w |
startDate.year | 1 | integer | Rok startDate . Wymagana wartość z zakresu od 1 do 9999. |
startDate.month | 1 | integer | Miesiąc w roku. Wartość musi mieścić się w przedziale od 1 do 12. |
startDate.day | 1 | integer | Dzień miesiąca. Musi mieć wartość od 1 do 31 i być ważny dla roku i miesiąca. |
endDate | 0..1 | Object | Ceny produktów są stosowane do wszystkich dat przyjazdu pomiędzy
startDate i endDate włącznie.
Jeśli próbujesz podać tylko jedną datę przyjazdu (a nie zakres),
|
endDate.year | 1 | integer | Rok endDate . Wymagana wartość z zakresu od 1 do 9999. |
endDate.month | 1 | integer | Miesiąc w roku. Wartość musi mieścić się w przedziale od 1 do 12. |
endDate.day | 1 | integer | Dzień miesiąca. Musi mieć wartość od 1 do 31 i być ważny dla roku i miesiąca. |
productPrices[] | 1..n | Object | Ceny produktu. Wszystkie ceny w tym kraju: productPrices
dotyczą konkretnego miejsca zakwaterowania, kombinacji daty przyjazdu, ale różnią się
usług.
|
roomTypeId | 0..1 | string | Unikalny identyfikator pokoju, którego dotyczy ta cena. Używaj aby dopasować dane pakietu pokoi do danych przesłanych przez Ciebie w danych pokoi. Więcej informacji: Metadane pakietu sal. |
ratePlanId | 0..1 | string | Unikalny identyfikator danych pakietu, do których odnosi się dana cena. Używaj aby dopasować dane pakietu pokoi do danych przesłanych w pakiecie danych pakietu. Więcej informacji: Metadane pakietu sal. |
occupancyPrices[] | 1..n | Object | Ceny za liczbę osób. Wszystkie ceny w tym kraju: occupancyPrices
dotyczą konkretnego miejsca zakwaterowania, daty przyjazdu i kombinacji produktów, ale
różne obłożenie.
|
adults | 1 | integer | Maksymalna liczba gości, które można zarezerwować na pokój, w tym
dorosłych i dzieci. Ta wartość jest ustawiona dla wszystkich cen w
odpowiednie pole occupancyPrices musi być wartością dodatnią
jest liczbą całkowitą z zakresu od 1 do 99.
Uwaga: skontaktuj się z zespołem pomocy, aby wysłać informację o liczbie osób więcej niż 4 osoby dorosłe. |
prices[] | 1..n | Object | Ceny za długość pobytu. Wszystkie ceny w obrębie prices mają zastosowanie do:
określone połączenie właściwości, daty przyjazdu, usługi i liczby osób.
|
rateRuleId | 0..1 | string | W przypadku cen warunkowych: ten identyfikator dopasowuje stawkę do definicji w pliku definicji reguły dotyczącej stawek. Limit znaków w tym polu to 40 znaków. |
currencyCode | 1 | string | Trzyliterowy kod waluty, który wynosi rates i taxes
są podawane w różnych językach. Na przykład "USD" w przypadku złotego.
|
rates[] | 30 | float | Składnik stawki podstawowej ceny za długość pobytu.
Jeśli podasz odpowiednią wartość Wartość w indeksie Musisz przesłać pełny zestaw LoS obejmujący 30 cen jednocześnie. Jeśli wyślesz mniej niż 30, wszystkie podane ceny LoS są przetwarzane w taki sposób, standardowych, a pozostałe stawki są niedostępne do 30 LoS. Jeśli jeśli prześlesz więcej niż 30 stopni,ceny po 30 stopniu będą spadek o . Niedostępne długości pobytu powinny być oznaczone za pomocą atrybutu
|
taxes[] | 30 | float | Składnik podatku od cen za długość pobytu.
Wartość w indeksie |
fees[] | 30 | float | Składnik opłaty w przypadku cen za długość pobytu.
Wartość w indeksie |
Przykład
Stawki podatki na podstawie LOS
Przykład poniżej pokazuje, jak ustawić minimalną długość pobytu, która wynosi 2
dla jednej daty zameldowania i ustawiając brak dostępności na inną.
Jeśli w polu startDate
ustawisz wartość z 1 września 2023 r. bez elementu endDate
, oznacza to, że:
określasz stawki tylko dla jednego dnia i możesz pominąć
endDate
Tablica occupancyPrices
ustawiona na 2
umożliwia określenie różnych stawek
przy różnych obłożeniu. W związku z tym brak wolnych terminów w limitach 4 września 2023 r.
dostępny rates
.
Wyświetlana tablica taxes
jest obliczana jako 10% stawki.
Wyświetlona tablica fees
pobiera opłatę za sprzątanie w wysokości 50 USD za pobyt.
Jeśli nie możesz podać pełnej daty zameldowania, musisz
jednoznacznie wysłać datę i pominąć rates
, taxes
i productPrices
do
wskazują, że nie ma wolnych terminów w żądanym terminie.
{
"requestTime": "2023-08-10T12:15:222",
"propertyPrices": {
"arrivalDatePrices": [
{
"startDate": {
"year": 2023,
"month": 9,
"day": 1
},
"productPrices": [
{
"occupancyPrices": [
{
"adults": 2,
"prices": [
{
"currencyCode": "USD",
"rates": [
0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"taxes": [
0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"fees": [
0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
]
}
]
}
]
},
{
"startDate": {
"year": 2023,
"month": 9,
"day": 3
},
"productPrices": [
{
"occupancyPrices": [
{
"adults": 2,
"prices": [
{
"currencyCode": "USD",
"rates": [
0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"taxes": [
0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"fees": [
0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
]
}
]
}
]
}
]
}
}
Treść odpowiedzi
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON | |
---|---|
{ "name": "string" } |
Pola | |
---|---|
name |
Nazwa zasobu właściwości PropertyPrices, która została zmodyfikowana. Ma formę:
accounts/{account}/properties/{property} .
|