Travel Partner Prices API
Travel Partner Prices API มีอินเทอร์เฟซ RESTful สำหรับส่ง ราคาที่พักไปยัง Google
บริการ: travelpartnerprices.googleapis.com
หากต้องการเรียกใช้บริการนี้ เราขอแนะนำให้คุณใช้ไลบรารีของไคลเอ็นต์ที่ Google จัดหาให้ หากแอปพลิเคชันของคุณต้องใช้ไลบรารีของคุณเองเพื่อเรียกใช้บริการนี้ โปรดติดต่อผู้จัดการลูกค้าด้านเทคนิค (TAM) เพื่อขอเอกสารการค้นพบ สำหรับบริการนี้
ปลายทางบริการ
ปลายทาง บริการคือ URL ฐานที่ระบุที่อยู่เครือข่ายของบริการ API บริการหนึ่งๆ อาจมีปลายทางบริการหลายรายการ บริการนี้มีปลายทางของบริการต่อไปนี้ และ URI ทั้งหมดที่แสดงจะเกี่ยวข้องกับปลายทางของบริการนี้
https://travelpartnerprices.googleapis.com
| เมธอด | |
|---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
อัปโหลดราคาตามระยะเวลาในการเข้าพักที่ระบุสำหรับที่พักที่ต้องการ ต้องมีข้อความราคา LoS ที่เข้ารหัส JSON (ดูด้านล่าง) เป็นเนื้อหาข้อความ HTTP
|
การตรวจสอบสิทธิ์ 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 ซึ่งแสดงเป็นสตริงที่จัดรูปแบบ RFC 3339 ระบบจะประมวลผลข้อความที่ส่งพร้อม ระบบจะประมวลผลข้อความตามลำดับของ RFC 3339 กำหนดให้ใช้รูปแบบวันที่และเวลาที่ระบุอย่างครบถ้วนเป็น
คุณจะใส่หรือไม่ใส่เศษวินาทีก็ได้ และอาจแสดงความแม่นยำได้สูงสุดถึง
ระดับนาโนวินาที ตัวอย่างเช่น
|
| propertyPrices | 1 | Object | ราคาสำหรับที่พัก ราคาทั้งหมดภายใน propertyPrices
ใช้กับพร็อพเพอร์ตี้เดียวกัน
องค์ประกอบนี้จะไม่ซ้ำกัน หากต้องการส่งราคาสำหรับที่พักหลายแห่ง คุณต้องส่งคำขอ HTTP หลายรายการ (อย่างน้อย 1 รายการต่อที่พัก) |
| arrivalDayPrices[] | 1..n | Object | ราคาสำหรับวันที่เดินทางมาถึง ราคาทั้งหมดภายในarrivalDayPrices
ใช้กับที่พักที่เฉพาะเจาะจง แต่มีวันที่เดินทางมาถึงต่างกัน |
| startDate | 1 | Object | productPrices จะมีผลกับวันที่เดินทางมาถึงทั้งหมด
ระหว่างวันที่ 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 | ระบบจะใช้ productPrices กับวันที่เดินทางมาถึงทั้งหมดระหว่างวันที่ startDate ถึง 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 | รหัสที่ไม่ซ้ำกันสำหรับห้องพักที่ราคานี้อ้างอิงถึง ใช้รหัสนี้เพื่อจับคู่ข้อมูลแพ็กเกจห้องพักกับข้อมูลที่ส่งใน roomdata ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเมตาของแพ็กเกจห้องพัก |
| ratePlanId | 0..1 | string | รหัสที่ไม่ซ้ำกันของข้อมูลแพ็กเกจที่ราคานี้อ้างอิงถึง ใช้รหัสนี้เพื่อจับคู่ข้อมูลแพ็กเกจห้องพักกับข้อมูลที่ส่งใน packagedata ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเมตาของแพ็กเกจห้องพัก |
| 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 | องค์ประกอบของราคาพื้นฐานของราคาตามระยะเวลาในการเข้าพัก
หากระบุ ค่าที่ดัชนี คุณต้องส่งชุด LoS ทั้งหมด 30 ราคาพร้อมกัน หากส่งน้อยกว่า 30 รายการ ระบบจะประมวลผลราคา LoS ทั้งหมดที่ระบุเป็นราคาปกติ และอัตราที่เหลือจะใช้ไม่ได้จนถึง LoS 30 หากคุณส่งมากกว่า 30 รายการ ระบบจะทิ้งราคาที่คุณส่งหลังจากราคาที่ 30 ระยะเวลาการเข้าพักที่ไม่พร้อมให้บริการควรแสดงด้วย
|
| taxes[] | 30 | float | องค์ประกอบภาษีของราคาตามระยะเวลาในการเข้าพัก
ค่าที่ดัชนี |
| fees[] | 30 | float | องค์ประกอบค่าธรรมเนียมของราคาตามระยะเวลาในการเข้าพัก
ค่าที่ดัชนี |
ตัวอย่าง
ราคาและภาษีตาม LOS
ตัวอย่างต่อไปนี้แสดงการกำหนดระยะเวลาในการเข้าพักขั้นต่ำเป็น 2 คืนสำหรับวันที่เช็คอิน 1 วัน และการกำหนดว่าไม่มีห้องว่างสำหรับวันที่เช็คอินอีกวัน
หากตั้งค่า startDate ตั้งแต่วันที่ 1/9/2023 โดยไม่มี endDate แสดงว่าคุณ
ระบุอัตราสำหรับวันที่เดียวและละเว้น endDate ได้
occupancyPrices อาร์เรย์ที่ตั้งค่าเป็น 2 ช่วยให้คุณตั้งราคาที่แตกต่างกัน
สำหรับอัตราการเข้าพักที่แตกต่างกันได้ ดังนั้นจึงไม่มีห้องว่างในวันที่ 09/04/23
rates
taxesอาร์เรย์ที่แสดงจะคำนวณเป็น 10% ของอัตรา
fees อาร์เรย์ที่แสดงจะใช้ค่าธรรมเนียมการทำความสะอาด $50 ต่อการเข้าพัก
หากวันที่เช็คอินทั้งหมดไม่ว่าง เช่น 9/3/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}
|