Cennik za długość pobytu

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

Punkt końcowy usługi 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 wartość „Identyfikator konta” podana na stronie Ustawienia konta w Hotel Center.

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

uwierzytelniania interfejsu API;

Interfejs API cen dla partnerów turystycznych korzysta z protokołu OAuth 2.0 do uwierzytelniania aplikacji, aby umożliwić Ci dostęp do interfejsów API.

Wykonaj konfigurację OAUTH 2.0 instrukcje, jak uzyskać autoryzację korzystania z interfejsu Travel Partner Prices API.

Podczas tworzenia nowego projektu pod kątem interfejsu Travel Partners Prices API musisz wykonać te czynności: włącz dostęp do nowego projektu konsoli Google Cloud, który jest podobny do instrukcji podanych w interfejsie Travel Partner API.

Aby włączyć projekt, zapoznaj się z instrukcjami dotyczącymi interfejsu Travel Partner API i zastąp wszystkie wystąpienia „Travel Partner API” wyrażeniem „Travel Partner Prices API”.

Zakres interfejsu Travel Partner Prices API: "https://travelpartnerprices.googleapis.com"

Ścieżka do przesyłania danych w ramach interfejsu API cen dla partnerów turystycznych:"/travel/lodging/uploads/accounts/<account_id>/property_data"

Żą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 i atrybuty

Wiadomość o cenach w zależności od 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 z użyciem requestTime w ciągu ostatnich 24 godzin są przetwarzane, a te, które nie zawierają tego parametru, są odrzucane.

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 podania pełnych dat i czasu w formacie YYYY-MM-DDThh:mm:ss.SSZ. Wymagana jest strefa czasowa, określona jako dodatnia lub ujemna hh:mm różnica w stosunku do UTC lub Z jako skrót od UTC.

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

propertyPrices 1 Object ceny obiektu, Wszystkie ceny w tym kraju: propertyPrices dotyczą tej samej usługi.

Ten element nie jest powtarzany. Aby wysłać ceny dla wielu usług, musisz wysłać wiele żądań HTTP (co najmniej jedno na usługę).

arrivalDayPrices[] 1..n Object ceny na dzień przyjazdu; Wszystkie ceny w tym kraju: arrivalDayPrices dotyczą konkretnego miejsca zakwaterowania, ale różnią się od dat przyjazdu.
startDate 1 Object productPrices jest stosowany do wszystkich dat przylotu 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. Wartość musi mieścić się w przedziale 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. Wartość musi mieścić się w przedziale od 1 do 31 i być prawidłowa dla danego roku i miesiąca.
endDate 0..1 Object ProduktPrices jest stosowany do wszystkich dat przylotu w okresie od startDate do endDate (włącznie).

Jeśli chcesz podać tylko jedną datę przyjazdu (a nie zakres dat), możesz pominąć parametr endDate.

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 produktów. 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, do którego odnosi się ta cena. Użyj tego identyfikatora, aby dopasować dane Room Bundle do danych wysłanych w roomdata. Więcej informacji: Metadane pakietu sal.
ratePlanId 0..1 string Unikalny identyfikator danych pakietu, do których odnosi się dana cena. Użyj tego identyfikatora, aby dopasować dane Room Bundle do danych wysłanych w 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: aby wysłać dane dotyczące liczby osób przekraczającej 4 dorosłych, skontaktuj się z zespołem pomocy.

prices[] 1..n Object ceny za długość pobytu, Wszystkie ceny w prices dotyczą konkretnej usługi, daty przyjazdu, produktu i kombinacji 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 „PLN” w przypadku złotego.
rates[] 30 float Składnik stawki podstawowej w cenach długości 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 30 wartości LoS naraz. 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,wszystkie ceny powyżej 30. stawek spadek o .

Niedostępne długości pobytu powinny być reprezentowane za pomocą wartości 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 cenie pobytu.

Wartość pod indeksem n odpowiada długości pobytu n+1.

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świetlone tablice fees pokazują, że za pobyt obowiązuje opłata za sprzątanie w wysokości 50 USD.

Jeśli w całości data zameldowania jest niedostępna (np. 3 września 2023 r.), musisz wyraźnie wysłać datę, pomijając rates, taxesproductPrices, aby wskazać, że w wybrany dzień nie ma wolnych pokoi.

{
  "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 postać:
accounts/{account}/properties/{property}.