طلبات
البنية
تستخدم الرسالة 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>
العناصر والسمات
تحتوي رسالة المعاملة (بيانات الموقع) على العناصر والسمات التالية:
العنصر / @Attribute | عدد مرات الظهور | النوع | الوصف |
---|---|---|---|
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>
في خلاصة قائمة الفنادق. يكون رقم تعريف الفندق مُدرَجًا أيضًا في مركز إدارة معلومات الفنادق. |
Transaction / PropertyDataSet / RoomData | 0..n | RoomData | وصف غرفة. ملاحظة: يجب توفير سمة واحدة على الأقل من |
Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | معرّف فريد لنوع من الغرف تتم الإشارة إلى هذه القيمة باستخدام السمة InvTypeCode في العنصر <StatusApplicationControl> في رسائل <OTA_HotelAvailNotifRQ> و<OTA_HotelRateAmountNotifRQ> . |
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 | رمز لغة مكوّن من حرفَين |
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> واحدة للغرفة أو لحزمة غرف.
يأخذ هذا العنصر العناصر الفرعية التالية:
<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 | رمز لغة مكوّن من حرفَين |
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 | تتيح هذه السياسة إدراج سعر يمكن استرداده بالكامل أو إلغائه. وفي حال عدم توفيرها، لا يتم عرض أي معلومات عن عملية ردّ الأموال.
ملاحظة: ننصح بإعداد جميع السمات. ويتم إنشاء رسالة تحذيرية بشأن حالة الخلاصة عندما لا يتم ضبط سمة واحدة أو أكثر. في حال عدم ضبط أي سمات، لن يتم عرض السعر بأنّه قابل للاسترداد. عند تحديد السمات، يجب التنبّه لما يلي:
|
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 للإشارة، على سبيل المثال، إلى أنّ "عمليات ردّ الأموال متاحة حتى الساعة 4:00 بعد الظهر قبل يومَين من تسجيل الوصول". إذا لم يتم ضبط السمة 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> ، ولكن للحزمة (مثل صور الوجبات).
|
أمثلة
بيانات الغرف والحزمة
فيما يلي مثال أساسي على كيفية تحديد بيانات غرفة وحزمة موقع في رسالة المعاملة (بيانات الموقع). تُستخدَم السمة 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 الرسالة
المعروضة. يُرجى العِلم أنّ إزالة بيانات الحزمة تؤثّر في خطة السعر الإجمالي
على النحو المحدّد في رسائل "المعاملات (بيانات الموقع)" و"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 أطفال. يجب استيفاء جميع متطلبات السعة الثلاثة حتى تكون هذه الغرفة قابلة للحجز. ويمثل هذا التكوين غرفة عادية تضم سريرين يتناسب كل منهما مع شخصين. تُعد سعة الأطفال أقل بمقدار واحد من السعة الإجمالية لأنه يجب أن يكون هناك شخص بالغ واحد على الأقل في الغرفة.
أمثلة موسّعة تتضمّن <RoomFeatures>
ووجبات
لا تحتوي السمة JapaneseHotelRoomStyle
على قيمة تلقائية.
ولا يؤدي حذف قيمة إلى حدوث خطأ في XML، ولكن لن تظهر بياناتك
في نتائج البحث عندما يُجري المستخدم فلترًا حسب نمط الغرفة أو الأسرّة.
سريران مفردان
يوضّح المثال التالي كيفية استخدام <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>
سريران مزدوجان
في ما يلي مثال على غرفة بطراز 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)
على العناصر والسمات التالية:
العنصر / @Attribute | عدد مرات الظهور | النوع | الوصف |
---|---|---|---|
TransactionResponse | 1 | Complex element | العنصر الجذر الذي يشير إلى نجاح أو مشاكل رسالة تم استلامها لطلب المعاملة. |
TransactionResponse / @timestamp | 1 | DateTime | تاريخ ووقت إنشاء هذه الرسالة |
TransactionResponse / @id | 1 | string | المعرّف الفريد لرسالة "المعاملة" المرتبطة. |
TransactionResponse / @partner | 1 | string | حساب الشريك لهذه الرسالة |
TransactionResponse / Success | 0..1 | Success | يشير هذا الرمز إلى أنّه تمّت معالجة رسالة "المعاملة" بنجاح بدون تحذيرات أو أخطاء أو تعذُّر.
تحتوي كل رسالة على |
TransactionResponse / Issues | 0..1 | Issues | حاوية تتضمّن مشكلة واحدة أو أكثر حدثت أثناء معالجة رسالة "المعاملة":
تحتوي كل رسالة على |
TransactionResponse / Issues / Issue | 1..n | Issue | وصف تحذير أو خطأ أو تعذُّر ظهر أثناء معالجة رسالة "المعاملة". يمكن العثور على تفاصيل حول هذه المشاكل في رسائل الخطأ في حالة الخلاصة. |
TransactionResponse / Issues / Issue / @code | 1 | integer | معرّف المشكلة |
TransactionResponse / Issues / Issue / @status | 1 | enum | نوع المشكلة التي حدثت القيم الصالحة هي |
أمثلة
تم الإجراء بنجاح
نسرد في ما يلي ردًا على رسالة "معاملة تمت معالجتها" بنجاح.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
المشاكل
إليك استجابة لرسالة "معاملة" لم تتم معالجتها بسبب حدوث أخطاء.
<?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>