طلبات
البنية
تستخدم الرسالة 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
مع 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 | تحدّد هذه السمة رقم تعريف الغرفة لنوع الغرفة الذي يمكن دمجه مع خطة الأسعار هذه. يتم تحديد نوع الغرفة في عنصر <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>