คำขอ
ไวยากรณ์
ข้อความ Transaction (Property Data)
ใช้ไวยากรณ์ต่อไปนี้
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<OccupancySettings>
<MinOccupancy>min_number_of_occupants</MinOccupancy>
<MinAge>min_age_of_occupants</MinAge>
</OccupancySettings>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
</Caption>
<URL>photo_location</URL>
</PhotoURL>
<RoomFeatures>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_length"/>
</Bed>
<!-- Include with any additional beds. -->
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>[shared|private]</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>[smoking|non_smoking]</Smoking>
<BathAndToilet relation="[together|separate]">
<Bath bathtub="[false|true]" shower="[false|true]"/>
<Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<!-- (Optional) Defines the type of views from the room. -->
<!-- Example: <OceanView/> -->
</Views>
</RoomFeatures>
</RoomData>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
องค์ประกอบและแอตทริบิวต์
ข้อความ Transaction (Property Data) มีองค์ประกอบและแอตทริบิวต์ต่อไปนี้
องค์ประกอบ / @แอตทริบิวต์ | จำนวนข้อผิดพลาด | ประเภท | คำอธิบาย |
---|---|---|---|
Transaction | 1 | Complex element | ในการใช้งาน ARI นี่คือองค์ประกอบรูทสำหรับข้อความที่ระบุประเภทห้องและแพ็กเกจสำหรับที่พักแห่งเดียว |
Transaction / @timestamp | 1 | DateTime | วันที่และเวลาที่สร้างข้อความนี้ |
Transaction / @id | 1 | string | ตัวระบุที่ไม่ซ้ำกันสำหรับข้อความคำขอนี้ ค่านี้จะแสดงในข้อความตอบกลับ อักขระที่อนุญาตคือ a-z, A-Z, 0-9, _ (ขีดล่าง) และ - (ขีดกลาง) |
Transaction / @partner | 1 | string | บัญชีพาร์ทเนอร์สำหรับข้อความนี้ ค่าของสตริงนี้คือค่า "คีย์พาร์ทเนอร์" ซึ่งแสดงอยู่ที่
หน้าการตั้งค่าบัญชีใน Hotel Center
หมายเหตุ: หากมีแบ็กเอนด์ที่มีฟีดสำหรับหลายบัญชี ค่านี้จะต้องตรงกับค่าแอตทริบิวต์ |
Transaction / PropertyDataSet | 1.. | PropertyDataSet | คอนเทนเนอร์สำหรับกำหนดประเภทห้องและแพ็กเกจสำหรับที่พักแห่งเดียว |
Transaction / PropertyDataSet / @action | 0..1 | enum | ประเภทของการอัปเดตที่จะใช้กับการกำหนดราคาห้องพัก ค่าที่ใช้ได้มีดังนี้
แอตทริบิวต์นี้เป็นค่าที่ไม่บังคับและมีค่าเริ่มต้นเป็น |
Transaction / PropertyDataSet / Property | 1 | string | ตัวระบุที่ไม่ซ้ำกันของที่พัก ค่านี้ต้องตรงกับรหัสโรงแรมที่ระบุโดยใช้
<id> ในองค์ประกอบ <listing> ในฟีดข้อมูลโรงแรม นอกจากนี้ รหัสโรงแรมยังแสดงอยู่ใน Hotel Center ด้วย |
Transaction / PropertyDataSet / RoomData | 0..n | RoomData | อธิบายห้องพัก หมายเหตุ: ต้องมี |
Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | ตัวระบุที่ไม่ซ้ำกันสำหรับประเภทห้องพัก ค่านี้จะได้รับการอ้างอิงโดยใช้แอตทริบิวต์ InvTypeCode ในองค์ประกอบ <StatusApplicationControl> ในข้อความ <OTA_HotelAvailNotifRQ> , <OTA_HotelRateAmountNotifRQ> และ <OTA_HotelInvCountNotifRQ> |
Transaction / PropertyDataSet / RoomData / Name | 1 | Name | คอนเทนเนอร์สำหรับชื่อหมวดหมู่ห้องพักในภาษาเดียวหรือหลายภาษา |
Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | ระบุชื่อหมวดหมู่ห้องพักในภาษาเดียว |
Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | ชื่อหมวดหมู่ห้องพักในภาษาที่ระบุโดยแอตทริบิวต์ language |
Transaction / PropertyDataSet / RoomData / Description | 1 | Name | คอนเทนเนอร์สำหรับคำอธิบายหมวดหมู่ห้องพักในภาษาเดียวหรือหลายภาษา |
Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | ระบุคำอธิบายหมวดหมู่ห้องพักในภาษาเดียว |
Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | คำอธิบายหมวดหมู่ห้องพักในภาษาที่ระบุโดยแอตทริบิวต์ language |
Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | รหัสภาษา 2 ตัวอักษร |
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | คอนเทนเนอร์สำหรับองค์ประกอบ <AllowablePackageID>
หากระบุ หากไม่ได้ระบุ ใช้ |
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | ระบุ PackageID ของแพ็กเกจราคาที่ใช้ร่วมกับประเภทห้องพักนี้ได้ แพ็กเกจราคาจะคำนวณจากชุดค่าผสมของแพ็กเกจ ราคา และจำนวนห้องว่าง โดย PackageID มีความสอดคล้องกับ RatePlanCode ในข้อความ OTA_HotelRateAmountNotifRQ และ OTA_HotelAvailNotifRQ
|
Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | จำนวนผู้ใหญ่และเด็กสูงสุดที่ห้องพักรองรับได้ ซึ่งควรมากกว่าหรือเท่ากับค่า NumberOfGuests ที่คุณส่งพร้อมราคา
ค่าของ หมายเหตุ: หากไม่ได้ตั้งค่า |
Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | จำนวนผู้ใหญ่สูงสุดที่ห้องพักรองรับได้ ซึ่งควรมากกว่าหรือเท่ากับค่า NumberOfGuests ที่คุณส่งพร้อมราคา
ค่าของ |
Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | จำนวนเด็กสูงสุดที่ห้องพักรองรับได้
ค่าของ |
Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | การตั้งค่าที่สามารถจํากัดหรือแก้ไขข้อกําหนดด้านอัตราการเข้าพักของห้อง
องค์ประกอบ
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> โดยไม่จำเป็นต้องรวมองค์ประกอบย่อยทั้งหมด |
Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | URL และคำบรรยายภาพแบบไม่บังคับสำหรับรูปภาพห้องพักหรือแพ็กเกจห้องพัก คุณระบุ <PhotoURL> ได้มากกว่า 1 รายการสำหรับห้องพักหรือแพ็กเกจห้องพักหนึ่งๆ
องค์ประกอบนี้มีองค์ประกอบย่อยต่อไปนี้
<PhotoURL> <URL>http://www.example.com/image1.jpg</URL> <Caption> <Text text="A bright way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse pour profiter de votre tasse de thé." language="fr"/> </Caption> </PhotoURL> |
Transaction / PropertyDataSet / RoomData / RoomFeatures | 0..1 | <RoomFeatures> |
มีข้อมูลเกี่ยวกับสิ่งอํานวยความสะดวกในห้อง |
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | ระบุสไตล์ของห้องพักโรงแรมญี่ปุ่น ค่าที่ใช้ได้มีดังนี้
|
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | มี <Bed> เท่ากับจำนวนห้อง โปรดทราบว่าไม่ควรนับฟูกญี่ปุ่นที่นี่
<Bed> แต่ละรายการมีองค์ประกอบย่อยต่อไปนี้
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite | 0.. | enum | ระบุองค์ประกอบนี้เมื่อห้องนี้เป็นห้องสวีท |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | ระบุองค์ประกอบนี้เมื่อห้องนี้เป็นห้องแคปซูล |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | ระบุว่าห้องนี้แชร์กับผู้พักอาศัยคนอื่นๆ เช่น เจ้าของหรือแขกคนอื่นๆ หรือไม่ ค่าที่ใช้ได้คือ shared และ private |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | ระบุองค์ประกอบนี้เมื่อห้องนี้เป็นที่พักกลางแจ้งที่ไม่มีผนังแบบคงที่ ประปา และระบบปรับอากาศ ตัวอย่างเช่น ห้องพักของโรงแรมไม่ใช่ที่พักกลางแจ้ง แต่จุดตั้งแคมป์ที่แขกพักในเต็นท์และที่จอดรถบ้านที่แขกนำรถบ้านของตนเองมาจอดจะเรียกว่าที่พักกลางแจ้ง |
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | ระบุองค์ประกอบนี้เมื่อห้องนี้รองรับผู้พิการ |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | ระบุว่าห้องนี้เป็นห้องปลอดบุหรี่หรือห้องสูบบุหรี่ ค่าที่ใช้ได้คือ non_smoking และ smoking |
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | มีข้อมูลเกี่ยวกับห้องอาบน้ำและห้องสุขาในห้องพัก
แอตทริบิวต์ดังกล่าวมีดังนี้
องค์ประกอบนี้ใช้องค์ประกอบย่อยต่อไปนี้ได้
ตัวอย่าง <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | ระบุองค์ประกอบนี้เมื่อห้องพักนี้มีอ่างอาบน้ำกลางแจ้งแบบส่วนตัว |
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | ระบุองค์ประกอบนี้เมื่อห้องนี้มีเครื่องปรับอากาศ |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | ระบุองค์ประกอบนี้เมื่อห้องนี้มีระเบียงหรือเฉลียง |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | ตัวเลือกที่ใช้ได้มีดังนี้
|
Transaction / PropertyDataSet / PackageData | 0..n | PackageData | คอนเทนเนอร์สำหรับองค์ประกอบที่อธิบายเกี่ยวกับราคาห้องพักและข้อกำหนดที่ไม่ได้เป็นส่วนหนึ่งของคำอธิบายห้องพักจริง หมายเหตุ: ต้องมี |
Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | PackageID ในข้อความเหล่านี้มีความสอดคล้องกับ RatePlanCode ในข้อความ OTA_HotelRateAmountNotifRQ และ OTA_HotelAvailNotifRQ |
Transaction / PropertyDataSet / PackageData / Name | 1 | Name | คอนเทนเนอร์สำหรับชื่อแพ็กเกจในภาษาเดียวหรือหลายภาษา |
Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | ระบุชื่อแพ็กเกจในภาษาเดียว |
Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | ชื่อแพ็กเกจในภาษาที่ระบุโดยแอตทริบิวต์ language |
Transaction / PropertyDataSet / PackageData / Description | 1 | Description | คอนเทนเนอร์สำหรับคำอธิบายแพ็กเกจในภาษาเดียวหรือหลายภาษา |
Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | ระบุคำอธิบายแพ็กเกจในภาษาเดียว |
Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | คำอธิบายแพ็กเกจในภาษาที่ระบุโดยแอตทริบิวต์ language |
Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | รหัสภาษา 2 ตัวอักษร |
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | คอนเทนเนอร์สำหรับองค์ประกอบ <AllowableRoomID>
หากระบุ หากไม่ได้ระบุ ใช้ |
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | ระบุ RoomID ของประเภทห้องพักที่ใช้ร่วมกับแพ็กเกจราคานี้ได้ ประเภทห้องพักจะระบุอยู่ในองค์ประกอบ <RoomData>
|
Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | แสดงข้อมูลราคาห้องพักที่ขอเงินคืนได้เต็มจำนวนหรือยกเลิกได้ หากไม่ได้ระบุไว้ ระบบจะไม่แสดงข้อมูลเกี่ยวกับการคืนเงิน
หมายเหตุ: เราขอแนะนำให้ตั้งค่าแอตทริบิวต์ทั้งหมด ระบบจะสร้างข้อความเตือนสถานะฟีดเมื่อไม่ได้ตั้งค่าแอตทริบิวต์อย่างน้อย 1 รายการ หากคุณไม่ได้ตั้งค่าแอตทริบิวต์ใดๆ ระบบจะไม่แสดงราคาห้องพักเป็นขอเงินคืนได้ โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อตั้งค่าแอตทริบิวต์
|
Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (ต้องระบุ) ตั้งค่าเป็น 1 หรือ true เพื่อระบุว่าราคาห้องพักนี้ขอเงินคืนเต็มจำนวนได้หรือไม่ มิเช่นนั้นให้ตั้งค่าเป็น 0 หรือ false |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (ต้องระบุหาก available คือ true ) ระบุจำนวนวันก่อนเช็คอินที่จะขอเงินคืนเต็มจำนวนได้ ค่าของ refundable_until_days ต้องเป็นจำนวนเต็มตั้งแต่ 0 ถึง 330 |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (แนะนำอย่างยิ่งหาก available คือ true ) ระบุเวลาสุดท้ายของวันตามเวลาท้องถิ่นของโรงแรมที่ขอเงินคืนเต็มจำนวนได้ คุณใช้ค่านี้ร่วมกับ refundable_until_days ได้ เช่น เพื่อระบุว่า "ขอเงินคืนได้จนถึงเวลา 16:00 น. ก่อนเช็คอิน 2 วัน" หากไม่ได้ตั้งค่า refundable_until_time ไว้ ค่าเริ่มต้นจะเป็นเที่ยงคืน |
Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | ระบุว่าประเภทห้องพักนี้รวมอาหารเช้าหรือไม่
ค่าที่ใช้ได้คือ 0 (หรือ false ) และ 1 (หรือ true )
เราขอแนะนำให้ใช้ |
Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | เวลาเช็คอินที่เร็วที่สุดตามเวลาท้องถิ่นของโรงแรม เวลาต้องน้อยกว่า 24:00 |
Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | เวลาเช็คเอาต์ล่าสุดตามเวลาท้องถิ่นของโรงแรม |
Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | ระบุว่าห้องพักมีการเข้าถึงอินเทอร์เน็ตแบบไม่มีค่าใช้จ่าย ขณะที่ห้องพักอื่นๆ ไม่รวมสิ่งอำนวยความสะดวกนี้หรือไม่ อย่าตั้งค่าองค์ประกอบนี้ในโรงแรมที่ให้บริการอินเทอร์เน็ตฟรีสำหรับห้องพักทุกห้อง องค์ประกอบนี้ใช้ไม่ได้กับอินเทอร์เน็ตแบบใช้สายในห้องพักหรืออินเทอร์เน็ตแบบไร้สายที่ไม่ได้ให้บริการในห้องพักของแขก ค่าที่ใช้ได้คือ 0 (หรือ false ) และ 1 (หรือ true )
|
Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | มีข้อมูลเกี่ยวกับอาหารในแพ็กเกจนี้
องค์ประกอบ
ระบบจะใช้แอตทริบิวต์ที่ไม่บังคับก็ต่อเมื่อ หากต้องการให้ตัวกรองอาหาร ( |
Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | ระบุว่าห้องพักมีที่จอดรถฟรีหรือไม่ ซึ่งหากไม่เป็นเช่นนั้นก็จะหมายความว่าโรงแรมนี้มีการเรียกเก็บค่าที่จอดรถ อย่าระบุค่าขององค์ประกอบนี้สำหรับโรงแรมที่มีบริการที่จอดรถฟรี
ค่าที่ใช้ได้คือ 0 (หรือ false ) และ 1 (หรือ true ) ค่าเริ่มต้นคือ false
|
Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (เหมือนกับ <PhotoURL> ใน <RoomData> แต่สำหรับแพ็กเกจ (เช่น รูปภาพอาหาร))
|
ตัวอย่าง
ข้อมูลห้องพักและแพ็กเกจ
ตัวอย่างต่อไปนี้เป็นตัวอย่างพื้นฐานของวิธีการกำหนดข้อมูลห้องพักและแพ็กเกจของที่พักในข้อความ Transaction (Property Data) ระบบใช้แอตทริบิวต์ overlay
เพื่อให้มั่นใจว่าหากมีข้อมูลเดิมอยู่แล้วโดยไม่คาดคิด ระบบจะลบข้อมูลเดิมทั้งหมดที่มีอยู่และแทนที่ด้วยข้อมูลในข้อความนี้
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
เพิ่มประเภทห้อง
ตัวอย่างต่อไปนี้เป็นตัวอย่างของวิธีการเพิ่มประเภทห้องพักและแพ็กเกจไปยังข้อมูล <Transaction>
ที่มีอยู่
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="delta">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_3</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_3</PackageID>
<Name>
<Text text="Non-Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="false"/>
</PackageData>
</PropertyDataSet>
</Transaction>
นำประเภทห้องพักออก
ตัวอย่างต่อไปนี้เป็นตัวอย่างของวิธีการนำประเภทห้องพักและแพ็กเกจที่มีอยู่ออก ในกรณีนี้ หากมีการส่งข้อความใน "ข้อมูลห้องพักและแพ็กเกจ" และ "เพิ่มประเภทห้องพัก" ไปยัง Google ก่อนหน้านี้ ประเภทห้องพัก King
และ Double
จะไม่มีอยู่อีกต่อไปเมื่อ Google ได้รับข้อความที่แสดง โปรดทราบว่าการนำข้อมูลแพ็กเกจออกจะส่งผลต่อแพ็กเกจราคาโดยรวมตามที่ระบุไว้ในข้อความ Transaction (ข้อมูลที่พัก), OTA_HotelRateAmountNotifRQ และ OTA_HotelAvailNotifRQ
(โดยการอ้างอิงค่า PackageID
เดียวกัน) จึงอาจต้องมีการอัปเดตที่เกี่ยวข้องโดยใช้ข้อความประเภทอื่นๆ เพื่อแสดงให้เห็นว่าไม่มีการกำหนด PackageID_2
และ PackageID_3
ที่นี่อีกต่อไป
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a queen bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
จำกัดแพ็กเกจราคา
ตัวอย่างต่อไปนี้เป็นตัวอย่างวิธีการใช้องค์ประกอบ <AllowablePackageIDs>
เพื่อจำกัดแพ็กเกจราคาที่อนุญาตสำหรับประเภทห้องพัก ในตัวอย่างนี้ ประเภทห้องพัก Queen
(RoomID_2
) จะใช้ร่วมกับแพ็กเกจและแพ็กเกจราคาที่ระบุเป็น PackageID_1 ได้เท่านั้น
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<AllowablePackageIDs>
<AllowablePackageID>PackageID_1</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
จำกัดความจุของห้อง
ต่อไปนี้เป็นตัวอย่างวิธีใช้องค์ประกอบ <Capacity>
, <AdultCapacity>
และ <ChildCapacity>
เพื่อกำหนดข้อจำกัดเกี่ยวกับจำนวนห้อง
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<Capacity>4</Capacity>
<AdultCapacity>4</AdultCapacity>
<ChildCapacity>3</ChildCapacity>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
</PropertyDataSet>
</Transaction>
ห้องพักประเภทคู่ (RoomID_1) รองรับแขกได้สูงสุด 4 คน นอกจากนี้ ห้องพักยังรองรับผู้ใหญ่ได้สูงสุด 4 คนและเด็กได้สูงสุด 3 คน ห้องนี้ต้องเป็นไปตามข้อกำหนดด้านจำนวนห้องทั้ง 3 ข้อจึงจะจองได้ การกำหนดค่านี้แสดงถึงห้องพักทั่วไปที่มีเตียง 2 ตัว โดยแต่ละเตียงรองรับได้ 2 คน ความจุสำหรับเด็กจะน้อยกว่าความจุทั้งหมด 1 คนเนื่องจากต้องมีผู้ใหญ่อย่างน้อย 1 คนอยู่ในห้องพัก
ตัวอย่างแบบขยายที่มี <RoomFeatures>
และอาหาร
JapaneseHotelRoomStyle
ไม่มีค่าเริ่มต้น
การละเว้นค่าจะไม่ทำให้เกิดข้อผิดพลาด XML แต่ข้อมูลของคุณจะไม่แสดงในผลการค้นหาเมื่อผู้ใช้กรองตามสไตล์ห้องหรือเตียง
เตียงเดี่ยว 2 เตียง
ตัวอย่างต่อไปนี้แสดงวิธีใช้ <RoomFeatures>
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two single beds -->
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>private</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>non_smoking</Smoking>
<BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet electronic_bidet="1" mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<LakeView/>
<MarinaView/>
<BeachView/>
<ForestView/>
<MountainView/>
<NatureView/>
</Views>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
เตียงคู่ 2 หลัง
ต่อไปนี้เป็นตัวอย่างห้องพักสไตล์ western
ที่มีเตียง double
เตียง
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two double beds-->
<Bed size="double"></Bed>
<Bed size="double"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
สไตล์ญี่ปุ่นแบบไม่มีเตียง
ต่อไปนี้เป็นตัวอย่างของห้องพักสไตล์ญี่ปุ่นที่ไม่มีเตียง คุณไม่จำเป็นต้องระบุข้อมูลเตียงสำหรับห้องสไตล์ japanese
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
สไตล์ญี่ปุ่นตะวันตกพร้อมเตียง
ต่อไปนี้เป็นตัวอย่างห้องพักสไตล์ japanese_western
ที่มีเตียงขนาด king
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
<Beds>
<Bed size="king"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
หากพาร์ทเนอร์ไม่มีข้อมูลจำนวนเตียงในjapanese_western
ห้อง ให้ดูตัวอย่างต่อไปนี้
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
อาหาร
ตัวอย่างต่อไปนี้กำหนดข้อมูลเมตาของห้องพักและแพ็กเกจสำหรับอาหาร รูปภาพ และเวลาเช็คอินและเช็คเอาต์
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Meals Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<!-- Guests can choose to have breakfast in their room or in another
space to avoid contact with other guests. -->
<Breakfast included="1" in_room="1" in_private_space="1"/>
<Dinner included="1" buffet="1"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
มีเฉพาะอาหารเช้า
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<Breakfast included="true"/>
<!-- Dinner not included needs to be explicitly specified -->
<Dinner included="false"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
การตอบกลับ
ไวยากรณ์
ข้อความ TransactionResponse (Property Data)
ใช้ไวยากรณ์ต่อไปนี้
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</TransactionResponse>
องค์ประกอบและแอตทริบิวต์
ข้อความ TransactionResponse (Property Data)
มีองค์ประกอบและแอตทริบิวต์ต่อไปนี้
องค์ประกอบ / @แอตทริบิวต์ | จำนวนข้อผิดพลาด | ประเภท | คำอธิบาย |
---|---|---|---|
TransactionResponse | 1 | Complex element | องค์ประกอบรูทที่บ่งบอกความสำเร็จหรือปัญหาของข้อความคำขอ Transaction ที่ได้รับ |
TransactionResponse / @timestamp | 1 | DateTime | วันที่และเวลาที่สร้างข้อความนี้ |
TransactionResponse / @id | 1 | string | ตัวระบุที่ไม่ซ้ำกันจากข้อความ Transaction ที่เกี่ยวข้อง |
TransactionResponse / @partner | 1 | string | บัญชีพาร์ทเนอร์สำหรับข้อความนี้ |
TransactionResponse / Success | 0..1 | Success | บ่งบอกว่าข้อความ Transaction ได้รับการประมวลผลเรียบร้อยแล้วโดยไม่มีคำเตือน ข้อผิดพลาด หรือความล้มเหลว
แต่ละข้อความจะมี |
TransactionResponse / Issues | 0..1 | Issues | คอนเทนเนอร์สำหรับปัญหาอย่างน้อย 1 รายการที่พบขณะประมวลผลข้อความ Transaction
แต่ละข้อความจะมี |
TransactionResponse / Issues / Issue | 1..n | Issue | คำอธิบายของคำเตือน ข้อผิดพลาด หรือความล้มเหลวที่พบขณะประมวลผลข้อความ Transaction ดูรายละเอียดเกี่ยวกับปัญหาเหล่านี้ได้ในข้อความแสดงข้อผิดพลาดของสถานะฟีด |
TransactionResponse / Issues / Issue / @code | 1 | integer | ตัวระบุสำหรับปัญหา |
TransactionResponse / Issues / Issue / @status | 1 | enum | ประเภทของปัญหาที่พบ ค่าที่ใช้ได้คือ |
ตัวอย่าง
สำเร็จ
การตอบกลับข้อความ Transaction ที่ประมวลผลเรียบร้อยแล้วมีดังนี้
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
ปัญหา
การตอบกลับข้อความ Transaction ที่ยังไม่ได้ประมวลผลเนื่องจากพบข้อผิดพลาดมีดังนี้
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</TransactionResponse>