Cennik za długość pobytu

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.

account_id: ta wartość ciągu znaków to parametr „Identyfikator konta” podana na stronie Ustawienia konta w sekcji Hotele. pomocy.

property_id: wartość tego elementu musi musi być ciągiem znaków pasującym do identyfikatora produktu w pliku danych z listą hoteli.

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ą requestTime w ciągu ostatnich 24 dni godzin, które nie zostały przetworzone, a te, które nie zostały odrzucone.

Wiadomości są przetwarzane w kolejności: requestTime, niezależnie od kolejności ich otrzymania. Na przykład plik aktualizacja ceny o requestTime 2019-05-03T14:09:00Z otrzymaną po wiadomość dla tych samych planów podróży z requestTime o wartości 2019-05-03T14:10:00Z zostały odrzucone na rzecz wiadomości z sygnaturami czasowymi.

RFC 3339 wymaga w pełni określonych dat i godzin jako YYYY-MM-DDThh:mm:ss.SSZ Strefa czasowa jest wymagana i określona jako dodatnią lub ujemną wartość przesunięcia hh:mm od czasu UTC lub Z to skrót UTC.

Ułamkowe sekundy są opcjonalne i mogą być wyrażone do precyzji nanosekundy. Na przykład: Funkcja 2017-01-15T01:30:15.01-08:00 koduje 15,01 sekundy po czasie 15 stycznia 2017 roku o 13:30 czasu PST

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, jak i endDate.

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 można pominąć.

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ść taxes, stawka ta jest nie zawiera podatku. Łączna cena to suma odpowiednich stawkę i podatek.

Wartość w indeksie n odpowiada n+1. o długości pobytu.

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 0

taxes[] 30 float Składnik podatku od cen za długość pobytu.

Wartość w indeksie n odpowiada n+1. o długości pobytu.

fees[] 30 float Składnik opłaty w przypadku cen za długość pobytu.

Wartość w indeksie n odpowiada n+1. o długości pobytu.

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}.