Mức giá của thời gian lưu trú (LoS)

API giá của đối tác du lịch

Travel Partner Price API cung cấp cho bạn giao diện RESTful để gửi giá của cơ sở lưu trú cho Google.

Dịch vụ: Travelpartnerprices.googleapis.com

Để gọi dịch vụ này, bạn nên sử dụng ứng dụng khách do Google cung cấp thư viện. Nếu ứng dụng cần sử dụng thư viện của riêng bạn để gọi dịch vụ này, hãy liên hệ với Người quản lý tài khoản kỹ thuật (TAM) nhận tài liệu Discovery cho dịch vụ này.

Điểm cuối dịch vụ

Dịch vụ điểm cuối là một URL cơ sở chỉ định địa chỉ mạng của dịch vụ API. Một dịch vụ có thể có nhiều điểm cuối dịch vụ. Dịch vụ này có các dịch vụ sau điểm cuối và tất cả URI được liệt kê đều liên quan đến điểm cuối dịch vụ này:

https://travelpartnerprices.googleapis.com
Phương thức
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

Tải giá cho thời gian lưu trú đã cung cấp lên cho một cơ sở lưu trú cụ thể.

Yêu cầu thông báo giá LoS được mã hoá JSON (xem bên dưới) dưới dạng HTTP nội dung thư.

account_id: Giá trị của chuỗi này là "Mã tài khoản" giá trị trên trang Cài đặt tài khoản trong Khách sạn ở giữa.

property_id: Giá trị của phần tử này phải là một chuỗi khớp với mã trang thông tin trong Nguồn cấp dữ liệu danh sách khách sạn.

Xác thực API

Travel Partner Price API sử dụng OAuth 2.0 để xác thực ứng dụng để bạn có thể truy cập các API.

Để biết hướng dẫn thiết lập từng bước, hãy xem Thiết lập OAuth 2.0. Đây là các bước thiết lập hướng dẫn về Travel Partner API. Xin lưu ý rằng Travel Partner API và Travel Partner Price API thì khác. Vì vậy, trong các hướng dẫn thiết lập này, bạn phải thay thế "Travel Partner Price API" (API Giá của đối tác đi lại) đặt tên ở bất cứ đâu "Travel Partner API" tham chiếu đến.

Yêu cầu

Cú pháp

Thông báo LoS Prices sử dụng cú pháp sau:

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

Phần tử và Thuộc tính

Thông báo về giá theo thời gian lưu trú có các thành phần và thuộc tính sau:

Phần tử Số lần xuất hiện Loại Mô tả
requestTime 1 string

Thời điểm gửi thông báo Giá LoS, thể hiện có định dạng RFC 3339 .

Mọi tin nhắn được gửi bằng requestTime trong vòng 24 ngày trước giờ được xử lý và những giờ không được loại bỏ.

Tin nhắn được xử lý theo thứ tự requestTime, bất kể thứ tự nhận được. Ví dụ: một thông tin cập nhật giá bằng requestTime2019-05-03T14:09:00Z nhận được sau một thông báo cho cùng một hành trình có requestTime2019-05-03T14:10:00Z bị loại bỏ để thay thế thông báo có dấu thời gian muộn hơn.

RFC 3339 yêu cầu ngày giờ được chỉ định đầy đủ dưới dạng YYYY-MM-DDThh:mm:ss.SSZ. Múi giờ là bắt buộc, được chỉ định dưới dạng chênh lệch dương hoặc âm hh:mm so với giờ UTC, hoặc Z là viết tắt của UTC.

Phân số giây là không bắt buộc và có thể được biểu thị đến độ chính xác nano giây. Ví dụ: 2017-01-15T01:30:15.01-08:00 mã hoá 15,01 giây qua 01:30 giờ PST ngày 15 tháng 1 năm 2017.

propertyPrices 1 Object Giá của một cơ sở lưu trú. Tất cả mức giá trong propertyPrices này áp dụng cho cùng một thuộc tính.

Phần tử này không được lặp lại. Cách gửi giá cho nhiều cơ sở lưu trú: bạn cần thực hiện nhiều yêu cầu HTTP (ít nhất một yêu cầu cho mỗi tài sản).

arrivalDayPrices[] 1..n Object Giá cho ngày đến. Tất cả mức giá trong arrivalDayPrices này áp dụng cho một cơ sở lưu trú cụ thể, nhưng ngày đến khác.
startDate 1 Object productPrices được áp dụng cho tất cả ngày đến giữa startDateendDate.

Nếu chỉ cố gắng chỉ định một ngày đến (chứ không phải một phạm vi), nhập ngày đến vào cả startDateendDate.

startDate.year 1 integer Năm startDate. Giá trị phải từ 1 đến 9999.
startDate.month 1 integer Tháng trong năm. Giá trị phải nằm trong khoảng từ 1 đến 12.
startDate.day 1 integer Ngày trong tháng. Giá trị phải từ 1 đến 31 và hợp lệ trong năm cũng như tháng.
endDate 0..1 Object Giá sản phẩm được áp dụng cho tất cả các ngày đến trong khoảng thời gian startDateendDate.

Nếu chỉ cố gắng chỉ định một ngày đến (chứ không phải một phạm vi), Bạn có thể bỏ qua endDate.

endDate.year 1 integer Năm endDate. Giá trị phải từ 1 đến 9999.
endDate.month 1 integer Tháng trong năm. Giá trị phải nằm trong khoảng từ 1 đến 12.
endDate.day 1 integer Ngày trong tháng. Giá trị phải từ 1 đến 31 và hợp lệ trong năm cũng như tháng.
productPrices[] 1..n Object Giá cho một sản phẩm. Tất cả mức giá trong productPrices này áp dụng cho một cơ sở lưu trú cụ thể, tổ hợp ngày đến, nhưng khác của Google dành cho doanh nghiệp.
roomTypeId 0..1 string Mã nhận dạng duy nhất của phòng mà giá này đang tham chiếu. Sử dụng mã này để so khớp dữ liệu Gói dịch vụ phòng với dữ liệu mà bạn đã gửi trong dữ liệu phòng. Để biết thêm thông tin, hãy tham khảo Siêu dữ liệu của Gói dịch vụ phòng.
ratePlanId 0..1 string Mã nhận dạng duy nhất của dữ liệu gói mà mức giá này đang tham chiếu. Sử dụng mã này để so khớp dữ liệu Gói dịch vụ phòng với dữ liệu mà bạn đã gửi trong dữ liệu gói. Để biết thêm thông tin, hãy tham khảo Siêu dữ liệu của Gói dịch vụ phòng.
occupancyPrices[] 1..n Object Giá cho một người lưu trú. Tất cả mức giá trong occupancyPrices này áp dụng cho một cơ sở lưu trú, ngày đến, kiểu kết hợp sản phẩm cụ thể, nhưng số người lưu trú khác nhau.
adults 1 integer Số lượng khách tối đa có thể đặt trước cho mỗi phòng, bao gồm người lớn và trẻ em. Giá trị này được đặt cho tất cả các mức giá trong trường occupancyPrices tương ứng và phải là số dương số nguyên từ 1 đến 99.

Lưu ý: Hãy liên hệ với nhóm hỗ trợ để gửi thông tin về số người lưu trú trên 4 người lớn.

prices[] 1..n Object Giá cho thời gian lưu trú. Tất cả mức giá trong phạm vi prices áp dụng cho một tổ hợp cơ sở lưu trú, ngày đến, sản phẩm và số người lưu trú cụ thể.
rateRuleId 0..1 string Đối với giá phòng có điều kiện, mã này khớp với mức giá với định nghĩa trong tệp Định nghĩa quy tắc giá. Trường này có giới hạn ký tự là 40 ký tự.
currencyCode 1 string Mã đơn vị tiền tệ gồm ba chữ cái mà ratestaxes được cung cấp trong phần này. Ví dụ: "USD" cho đô la Mỹ.
rates[] 30 float Thành phần giá cơ bản của giá theo thời gian lưu trú.

Nếu bạn cung cấp giá trị taxes tương ứng, tỷ lệ này là không bao gồm thuế. Tổng giá là tổng của các khoản thuế suất và thuế.

Giá trị tại chỉ mục n tương ứng với một n+1 thời gian lưu trú.

Bạn phải gửi toàn bộ 30 mức giá của LoS cùng một lúc. Nếu bạn gửi nhỏ hơn 30, thì tất cả giá LoS đã cung cấp sẽ được xử lý dưới dạng bình thường và các tỷ lệ còn lại không có sẵn lên đến LoS 30. Nếu bạn gửi hơn 30,thì mọi mức giá bạn gửi vượt quá tỷ lệ thứ 30 đều được đã giảm .

Thời gian lưu trú không hoạt động phải được thể hiện bằng 0.

taxes[] 30 float Thành phần thuế của giá theo thời gian lưu trú.

Giá trị tại chỉ mục n tương ứng với một n+1 thời gian lưu trú.

fees[] 30 float Thành phần phí của giá theo thời gian lưu trú.

Giá trị tại chỉ mục n tương ứng với một n+1 thời gian lưu trú.

Ví dụ:

Giá và thuế dựa trên thời gian lưu trú

Ví dụ sau đây cho thấy việc đặt thời gian lưu trú tối thiểu là 2 cho một ngày nhận phòng và cài đặt không có tình trạng phòng cho một ngày nhận phòng khác. Nếu bạn đặt startDate từ ngày 1/9/2023 mà không có endDate, điều đó có nghĩa là bạn chỉ định các mức giá cho một ngày và có thể bỏ qua endDate

Mảng occupancyPrices được đặt thành 2 cho phép bạn đặt các tỷ lệ khác nhau cho số người lưu trú khác nhau. Do đó, phòng trống trong ngày 04/09/2023 có sẵn rates.

Mảng taxes hiển thị được tính bằng 10% giá.

Mảng fees hiển thị sẽ áp dụng phí vệ sinh là 50 USD/lượt lưu trú.

Nếu không có sẵn toàn bộ ngày nhận phòng ‐3/9/2023, bạn phải gửi rõ ngày và bỏ qua rates, taxesproductPrices để biểu thị rằng không có phòng trống cho ngày được yêu cầu.

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

Nội dung phản hồi

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
        {
          "name": "string"
        }
        
Trường
name Tên tài nguyên của Giá bất động sản đã được sửa đổi. Có dạng:
accounts/{account}/properties/{property}.