入住天數 (LoS) 價格

Travel Partner Prices API

Travel Partner Prices API 提供 RESTful 介面,可用於將房源價格傳送至 Google。

服務:travelpartnerprices.googleapis.com

如要呼叫這項服務,建議您使用 Google 提供的 用戶端 程式庫。如果您的 應用程式需要使用您自己的程式庫才能呼叫這項服務,請聯絡您的 客戶技術顧問 (TAM) 索取探索文件 使用此服務。

服務端點

服務 端點 指定 API 服務網路位址的基準網址。一項服務 可能有多個服務端點這項服務有以下服務端點,且下方列出的所有 URI 皆以此服務端點為基準:

https://travelpartnerprices.googleapis.com
方法
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

上傳指定房源的入住天數價格。

需要 JSON 編碼的 LoS 價格訊息 (請參閱下文) 做為 HTTP 訊息主體。

account_id:這個字串值是 Hotel Center 帳戶設定頁面中列出的「帳戶 ID」值。

property_id:這個元素的值必須 字串與飯店清單動態饋給中的房源 ID 相符。

API 驗證

Travel Partner Prices API 會使用 OAuth 2.0 驗證應用程式,讓您存取 API。

按照 OAUTH 2.0 設定操作 操作說明,取得 Travel Partner Prices API 授權。

為 Travel Partners Prices API 建立新專案時,您需要啟用新 Google Cloud 控制台專案的存取權,這與 Travel Partner API 中的操作說明類似。

請參閱 Travel Partner API 中的步驟,並將所有「Travel Partner API」取代為「Travel Partner Prices API」,啟用專案。

Travel Partner Prices API 的範圍如下: "https://travelpartnerprices.googleapis.com"

Travel Partner Prices API 的上傳路徑為: "/travel/lodging/uploads/accounts/<account_id>/property_data"

要求

語法

LoS Prices 訊息使用下列語法:

{
  "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,...]
          }]
        }]
      }]
    }]
  }
}

元素和屬性

住宿價格長度訊息包含下列元素和屬性:

元素 發生次數 類型 說明
requestTime 1 string

傳送 LoS Price 訊息的時間,以 RFC 3339 格式表示的字串。

系統會處理過去 24 小時內使用 requestTime 傳送的所有訊息,並捨棄未使用 requestTime 傳送的訊息。

訊息會依 requestTime 排序, 無論接收順序為何舉例來說 價格已更新,requestTime2019-05-03T14:09:00Z, 相同行程,且 requestTime 指定為 2019-05-03T14:10:00Z 被捨棄, 加上時間戳記後的訊息

RFC 3339 規定必須以 YYYY-MM-DDThh:mm:ss.SSZ 的格式完整指定日期時間。必須指定時區 視為與 UTC 的正或負 hh:mm 偏移,或 Z 做為 UTC 簡寫。

小數秒數為選填,可能會以 精確度可達奈秒舉例來說 2017-01-15T01:30:15.01-08:00 可以編碼 15.01 秒 2017 年 1 月 15 日太平洋標準時間午夜 1:30。

propertyPrices 1 Object 房源的價格。這個 propertyPrices 中的所有價格都適用於同一個資源。

此元素不會重複。如要傳送多個房源的價格, 您需要發出多個 HTTP 要求 (每項資源至少一個)。

arrivalDayPrices[] 1..n Object 抵達日期的價格。這個arrivalDayPrices涵蓋的所有價格 套用至特定房源,但抵達日期不同。
startDate 1 Object productPrices 會套用至 startDateendDate 之間 (含頭尾) 的所有到達日期。

如果只嘗試指定一個抵達日期 (而非範圍), 請在 startDateendDate 中輸入抵達日期。

startDate.year 1 integer startDate的年份。必須介於 1 到 9999 之間。
startDate.month 1 integer 一年中的月份。必須介於 1 到 12 之間。
startDate.day 1 integer 一個月中的第幾天。這個值必須介於 1 至 31,有效期限為年和月份。
endDate 0..1 Object 產品價格會套用至 startDateendDate (含頭尾)。

如果只想指定一個抵達日期 (而非範圍),可以省略 endDate

endDate.year 1 integer endDate 年。必須介於 1 到 9999 之間。
endDate.month 1 integer 一年中的月份。必須介於 1 到 12 之間。
endDate.day 1 integer 一個月中的第幾天。必須介於 1 到 31 之間,並屬於有效的年和月。
productPrices[] 1..n Object 產品的價格。這個productPrices涵蓋的所有價格 套用至特定屬性、抵達日期組合,但 很少直接解答該如何打造產品
roomTypeId 0..1 string 這個價格所參照的房間專屬 ID。使用這個 ID 比對 Room 套件資料與您在 roomdata 中傳送的資料。如需更多資訊,請參閱 會議室套裝組合中繼資料
ratePlanId 0..1 string 這個價格參照的套裝行程資料專屬 ID。使用 ,以便比對 Room Bundle 資料與您在 packagedata 中傳送的資料。 如需更多資訊,請參閱 會議室套裝組合中繼資料
occupancyPrices[] 1..n Object 房價。這個 occupancyPrices 中的所有價格都適用於特定房源、抵達日期、產品組合,但適用於不同的住宿人數。
adults 1 integer 每間會議室可預訂的房客人數上限,包括 成人與兒童這個值會套用至對應 occupancyPrices 欄位中的所有費率,且必須是介於 1 到 99 之間的正整數。

注意:如要傳送超過四位成人的入住人數,請與支援團隊聯絡。

prices[] 1..n Object 入住天數。prices中的所有價格適用於 特定房源、抵達日期、產品和可住人數的組合。
rateRuleId 0..1 string 關於條件式費率, 這個 ID 與費率規則定義檔案中的定義相符。 這個欄位的字元限制為 40 個半形字元。
currencyCode 1 string ratestaxes貨幣代碼 (三字母) 輸入的名稱例如 "USD" 代表美元。
rates[] 30 float 住宿天數價格的房價部分。

如果提供對應的 taxes 值,則此費率不含稅。「總價」是指 稅率與稅金

索引 n 的值對應 n+1 入住天數

您一次只能傳送 30 個價格的完整 LoS。如果傳送的價格低於 30,系統會以正常方式處理所有提供的 LoS 價格,且剩餘的費率無法達到 LoS 30。如果傳送的價格超過 30 個,系統會捨棄超過 30 個價格。

無法使用的入住天數應以 0

taxes[] 30 float 入住天數價格的稅金部分。

索引 n 的值對應至 n+1 停留時間。

fees[] 30 float 入住天數價格的費用部分。

索引 n 的值對應 n+1 入住天數

範例

依據入住天數計算的房價和稅金

以下範例說明如何將最短入住天數設為 2 為一個入住日期,並且設定另一個入住日期的空位。 如果從 2023 年 9 月 1 日設定 startDate,而沒有 endDate,則表示 您只指定單一日期的房價,因此可以省略 endDate

occupancyPrices 陣列設為 2,即可為不同可住人數設定不同的房價。因此,2023 年 9 月 4 日限制不會有度假 可用價格:rates

顯示的 taxes 陣列是以 10% 的費率計算。

如圖所示,fees 陣列會收取每晚 $50 美元的清潔費。

如果無法取得完整的入住日期 &dash;9/3/2023,請務必 明確傳送日期,並省略 ratestaxesproductPrices 以 表示所要求的日期沒有可預約的時段。

{
  "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
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

回應主體

如果成功,回應主體會含有以下結構的資料:

JSON 表示法
        {
          "name": "string"
        }
        
欄位
name 遭修改的 PropertyPrices 資源名稱。格式為:
accounts/{account}/properties/{property}