ราคาสำหรับระยะเวลาเข้าพัก (LoS)

API ราคาของพาร์ทเนอร์การเดินทาง

Travel Partner Prices API มีอินเทอร์เฟซ RESTful สำหรับการส่ง ราคาที่พักใน Google

บริการ: travelpartnerprices.googleapis.com

หากต้องการเรียกใช้บริการนี้ เราขอแนะนำให้คุณใช้ไคลเอ็นต์ที่ Google จัดหาให้ ห้องสมุด หาก แอปพลิเคชันต้องใช้ไลบรารีของคุณเองเพื่อเรียกใช้บริการนี้ โปรดติดต่อ ผู้จัดการลูกค้าด้านเทคนิค (TAM) ให้ขอรับเอกสาร Discovery สำหรับบริการนี้

ปลายทางบริการ

บริการ อุปกรณ์ปลายทาง คือ URL พื้นฐานที่ระบุที่อยู่เครือข่ายของบริการ API บริการเดียว อาจมีปลายทางบริการหลายปลายทาง บริการนี้มีบริการต่อไปนี้ ปลายทางและ URI ทั้งหมดที่แสดงสัมพันธ์กับปลายทางของบริการนี้

https://travelpartnerprices.googleapis.com
เมธอด
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

อัปโหลดระยะเวลาเข้าพักที่ระบุไว้สำหรับที่พักที่ระบุ

ต้องใช้ข้อความราคา LoS ที่เข้ารหัส JSON (ดูด้านล่าง) เป็น HTTP เนื้อความ

account_id: ค่าสตริงนี้คือค่า "รหัสบัญชี" ค่าที่แสดงในหน้าการตั้งค่าบัญชีในโรงแรม ของเรา

property_id: ค่าขององค์ประกอบนี้ต้อง เป็นสตริงที่ตรงกับรหัสโรงแรมในฟีดข้อมูลโรงแรม

การตรวจสอบสิทธิ์ API

Travel Partner Prices API ใช้ OAuth 2.0 เพื่อ ตรวจสอบสิทธิ์แอปพลิเคชันเพื่อให้คุณสามารถเข้าถึง API

หากต้องการดูวิธีการตั้งค่าแบบทีละขั้นตอน โปรดดูการตั้งค่า OAuth 2.0 รายการเหล่านี้คือการตั้งค่า วิธีการสำหรับ Travel Partner API โปรดทราบว่า Travel Partner API และ Travel Partner Prices API จะแตกต่างออกไป ดังนั้นในวิธีการตั้งค่าเหล่านี้ คุณต้องแทนที่ "Travel Partner Prices API" ตั้งชื่อที่ใดก็ได้ "Travel Partner API" จะอ้างถึง

คำขอ

ไวยากรณ์

ข้อความ 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 สตริง

ข้อความที่ส่งด้วย requestTime ภายใน 24 วันก่อนหน้า ระบบจะประมวลผลชั่วโมง และชั่วโมงที่ไม่ได้ทิ้ง

ระบบจะประมวลผลข้อความตามลำดับ requestTime ไม่ว่าจะได้รับตามลำดับใดก็ตาม ตัวอย่างเช่น การอัปเดตราคาโดยมี requestTime เป็น 2019-05-03T14:09:00Z ที่ได้รับหลังจาก ข้อความสำหรับแผนการเดินทางเดียวกันที่มี requestTime เป็น ระบบจะทิ้ง 2019-05-03T14:10:00Z เพื่อให้ ข้อความที่มีการประทับเวลาในภายหลัง

RFC 3339 กำหนดให้ระบุวันที่และเวลาแบบเต็มเป็น YYYY-MM-DDThh:mm:ss.SSZ ต้องระบุเขตเวลา ระบุแล้ว เป็นการชดเชย hh:mm ในเชิงบวกหรือลบจาก UTC หรือ Z ย่อมาจาก UTC

เศษของวินาทีเป็นตัวเลือกที่ไม่บังคับ และอาจแสดงออกมาเป็น ความแม่นยําของระดับนาโนวินาที ตัวอย่างเช่น 2017-01-15T01:30:15.01-08:00 เข้ารหัสเมื่อผ่านไปแล้ว 15.01 วินาที 15.30 น. PST วันที่ 15 มกราคม 2017

propertyPrices 1 Object ราคาสำหรับที่พัก ราคาทั้งหมดภายในpropertyPricesนี้ ที่ใช้กับพร็อพเพอร์ตี้เดียวกัน

องค์ประกอบนี้ไม่ซ้ำ หากต้องการส่งราคาสำหรับที่พักหลายแห่ง คุณต้องสร้างคำขอ HTTP หลายรายการ (อย่างน้อย 1 รายการต่อพร็อพเพอร์ตี้)

arrivalDayPrices[] 1..n Object ราคาสำหรับวันที่เข้าพัก ราคาทั้งหมดภายในarrivalDayPricesนี้ มีผลกับที่พักบางแห่ง แต่วันที่มาถึงต่างกัน
startDate 1 Object วันที่เข้าพักทั้งหมดใช้productPricesแล้ว ระหว่าง startDate ถึง endDate เท่านั้น

หากเพียงแค่พยายามระบุวันที่มาถึงเพียงวันเดียว (ไม่ใช่ช่วง) ป้อนวันที่มาถึงทั้งใน startDate และ endDate

startDate.year 1 integer ปี startDate ต้องอยู่ระหว่าง 1 ถึง 9999
startDate.month 1 integer เดือนของปี ต้องมีค่าตั้งแต่ 1 ถึง 12
startDate.day 1 integer วันของเดือน ต้องมีค่าตั้งแต่ 1 ถึง 31 และใช้ได้สำหรับปีและเดือน
endDate 0..1 Object ราคาผลิตภัณฑ์จะมีผลกับวันที่เข้าพักทั้งหมดระหว่างวันที่ startDate และ endDate เท่านั้น

หากเพียงแค่พยายามระบุวันที่มาถึงเพียงวันเดียว (ไม่ใช่ช่วง) อาจละเว้น 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นี้ ใช้กับที่พักที่เฉพาะเจาะจง ชุดค่าผสมของวันที่มาถึง แต่แตกต่างกัน Google อีกด้วย
roomTypeId 0..1 string รหัสที่ไม่ซ้ำกันของห้องพักที่ใช้ราคานี้ ใช้ รหัสนี้เพื่อจับคู่ข้อมูลแพ็กเกจห้องพักกับข้อมูลที่ส่งในข้อมูลห้องพัก ดูข้อมูลเพิ่มเติมได้ที่ ข้อมูลเมตาของแพ็กเกจห้องพัก
ratePlanId 0..1 string รหัสที่ไม่ซ้ำกันสำหรับข้อมูลแพ็กเกจที่เกี่ยวข้องกับราคานี้ ใช้ รหัสนี้เพื่อจับคู่ข้อมูลแพ็กเกจห้องพักกับข้อมูลที่ส่งในแพ็กเกจข้อมูล ดูข้อมูลเพิ่มเติมได้ที่ ข้อมูลเมตาของแพ็กเกจห้องพัก
occupancyPrices[] 1..n Object ราคาสำหรับอัตราการเข้าพัก ราคาทั้งหมดภายในoccupancyPricesนี้ ใช้กับที่พักที่เฉพาะเจาะจง วันที่สินค้ามาถึง ชุดค่าผสมของผลิตภัณฑ์ อัตราการเข้าพักที่แตกต่างกัน
adults 1 integer จำนวนแขกสูงสุดที่จองได้ต่อห้อง รวมถึง ผู้ใหญ่และเด็ก ค่านี้จะกำหนดไว้สำหรับอัตราทั้งหมดภายใน ฟิลด์ occupancyPrices ที่ตรงกันและต้องเป็นค่าบวก จำนวนเต็มระหว่าง 1 ถึง 99

หมายเหตุ: โปรดติดต่อทีมสนับสนุนเพื่อส่งอัตราการเข้าพัก ผู้ใหญ่มากกว่า 4 คน

prices[] 1..n Object ราคาระยะเวลาในการเข้าพัก ราคาทั้งหมดภายใน prices จะใช้กับ ชุดค่าผสมของที่พัก วันที่เข้าพัก ผลิตภัณฑ์ และอัตราการเข้าพัก
rateRuleId 0..1 string สำหรับราคาสำหรับลูกค้าที่เข้าเกณฑ์ รหัสนี้จะจับคู่ราคากับคำจำกัดความในไฟล์คำจำกัดความกฎเกี่ยวกับอัตรา จำนวนอักขระสูงสุดสำหรับช่องนี้คือ 40 ตัว
currencyCode 1 string รหัสสกุลเงิน 3 ตัวอักษรซึ่ง rates และ taxes ที่มีให้ เช่น "USD" สําหรับดอลลาร์สหรัฐ
rates[] 30 float องค์ประกอบราคาฐานของราคาระยะเวลาในการเข้าพัก

หากระบุค่า taxes ที่เกี่ยวข้อง อัตรานี้จะเป็น แบบไม่รวมภาษี ราคารวมคือผลรวมของ อัตราและภาษี

ค่าที่ดัชนี n สอดคล้องกับ n+1 ระยะเวลาในการเข้าพัก

คุณต้องส่งราคา LoS ทั้งหมดครั้งละ 30 ชุด หากคุณส่ง น้อยกว่า 30 รายการ ราคา LoS ที่ระบุทั้งหมดจะได้รับการประมวลผลเป็น ปกติ และราคาที่เหลือไม่มีข้อมูลถึง LoS 30 หากคุณ ส่งมากกว่า 30 ราคาใดๆ ที่คุณส่งเกินอัตราที่ 30 จะเป็น ยกเลิก

ระยะเวลาในการเข้าพักที่ไม่พร้อมใช้งานควรแสดงด้วย 0

taxes[] 30 float องค์ประกอบด้านภาษีของราคาระยะเวลาในการเข้าพัก

ค่าที่ดัชนี n สอดคล้องกับ n+1 ระยะเวลาในการเข้าพัก

fees[] 30 float องค์ประกอบค่าธรรมเนียมของราคาระยะเวลาในการเข้าพัก

ค่าที่ดัชนี n สอดคล้องกับ n+1 ระยะเวลาในการเข้าพัก

ตัวอย่าง

ราคาและ ภาษีตาม LOS

ตัวอย่างต่อไปนี้แสดงการตั้งค่าระยะเวลาในการเข้าพักขั้นต่ำเป็น 2 สำหรับวันที่เช็คอินวันหนึ่ง และตั้งค่าห้องว่างสำหรับวันที่เช็คอินอื่น หากคุณตั้งค่า startDate ตั้งแต่ 1/9/2023 โดยไม่มี endDate หมายความว่า คุณจะระบุอัตราเพียงวันเดียว และคุณสามารถข้าม endDate

อาร์เรย์ occupancyPrices ที่ตั้งค่าเป็น 2 ช่วยให้คุณกำหนดราคาต่างๆ ได้ สำหรับอัตราการเข้าพักที่แตกต่างกัน ดังนั้นจึงไม่มีเวลาว่างในวันที่ 04/09/23 พร้อมจำหน่าย rates

อาร์เรย์ taxes ที่แสดงคำนวณได้เท่ากับ 10% ของอัตรา

อาร์เรย์ fees ที่แสดงมีค่าธรรมเนียมการทำความสะอาด $50 ต่อการเข้าพัก

หากไม่มีวันที่เช็คอินทั้งหมด ‐3/9/2023 คุณต้อง ส่งวันที่อย่างชัดเจน และละเว้น rates, taxes และ productPrices ไปยัง แสดงว่าไม่มีห้องว่างสำหรับวันที่ที่ขอ

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