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

Travel Partner Prices 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: ค่าสตริงนี้คือค่า "รหัสบัญชี" ที่แสดงอยู่ในหน้าการตั้งค่าบัญชีใน Hotel Center

property_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" ทั้งหมด ที่มีข้อความ "ราคาสำหรับพาร์ทเนอร์การท่องเที่ยว 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 ซึ่งแสดงเป็นสตริงรูปแบบ 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 วินาทีหลังจาก 01: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 นี้ใช้กับที่พักที่เฉพาะเจาะจง ชุดค่าผสมวันที่มาถึง แต่ใช้กับผลิตภัณฑ์ที่แตกต่างกัน
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 ช่วยให้คุณกำหนดราคาต่างๆ ได้ สำหรับอัตราการเข้าพักที่แตกต่างกัน ดังนั้นจึงไม่มีห้องว่างในวันที่ 09/04/23 rates

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

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

หากไม่มีวันที่เช็คอินทั้งหมด &dash;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}