نظرة عامة
تتيح لك واجهة برمجة التطبيقات هذه تحديد طرق لتطبيق إجراءات بشكل ديناميكي على السعر كلما تم استيفاء الشروط، مثل تعديل السعر أو إتاحة إمكانية استرداد الأموال. على عكس Promotions API التي يمكنها فقط تطبيق العروض الترويجية المؤهَّلة التي تتضمّن أكبر الخصومات، تطبّق واجهة برمجة التطبيقات هذه أي إجراءات عند استيفاء شروط معيّنة، بما في ذلك تعديلات الأسعار التي قد تؤدي في النهاية إلى زيادة السعر النهائي.
الطلبات
البنية
تستخدم الرسالة RateModifications البنية التالية:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
id="message_ID"
timestamp="timestamp">
<HotelRateModifications hotel_id="HotelID" action="[overlay]">
<ItineraryRateModification id="ModificationID" action="[delete]">
<BookingDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</BookingDates>
<BookingWindow min="integer" max="integer"/>
<CheckinDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</CheckinDates>
<CheckoutDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</CheckoutDates>
<Devices>
<Device type="[desktop|tablet|mobile]"/>
</Devices>
<LengthOfStay min="integer" max="integer"/>
<MinimumAmount before_discount="integer"/>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<StayDates application="[all|any]">
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</StayDates>
<UserCountries type="[include|exclude]">
<Country code="country_code"/>
</UserCountries>
<ModificationActions>
<PriceAdjustment multiplier="float"/>
<RateRule id="RateRuleID"/>
<Refundable available="[false|true]"
refundable_until_days="number_of_days"
refundable_until_time="time"/>
<Availability status="[unavailable]"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
العناصر والسمات
تحتوي رسالة RateModifications على العناصر والسمات التالية:
| العنصر / @السمة | عدد مرات الظهور | النوع | الوصف |
|---|---|---|---|
| RateModifications | 1 | Complex element | العنصر الجذر لرسالة تعديلات الأسعار. |
| RateModifications / @partner | 1 | string | حساب الشريك لهذه الرسالة قيمة السلسلة هذه هي قيمة "مفتاح الشريك" المدرَجة في
صفحة إعدادات الحساب في Hotel Center.
ملاحظة: إذا كان لديك نظام خلفي يوفّر خلاصات لعدة حسابات، يجب أن تتطابق هذه القيمة مع قيمة السمة |
| RateModifications / @id | 1 | string | معرّف فريد لرسالة الطلب هذه. يتم عرض هذه القيمة في رسالة الردّ. الأحرف المسموح بها هي a-z وA-Z و0-9 و_ (شرطة سفلية) و- (شرطة). |
| RateModifications / @timestamp | 1 | DateTime | تاريخ إنشاء هذه الرسالة ووقته. |
| RateModifications / HotelRateModifications | 0..n | HotelRateModifications | تعديلات الأسعار لموقع ينطبق كل تعديل على السعر على مكان إقامة واحد. ملاحظة: إذا كان من الممكن تطبيق تعديلات متعدّدة على السعر نفسه، سيتم تطبيق جميع التعديلات. ولا نضمن ترتيبًا معيّنًا. |
| RateModifications / HotelRateModifications / @hotel_id | 1 | string | المعرّف الفريد للمكان المخصّص للاستئجار. يجب أن تتطابق هذه القيمة مع معرّف الفندق المحدّد باستخدام
<id> في العنصر <listing>
في خلاصة بيانات الفنادق. يظهر رقم تعريف الفندق أيضًا في Hotel Center. |
| RateModifications / HotelRateModifications / @action | 0..1 | enum | في حال عدم تحديد |
| RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | تعديل واحد للسعر في مكان مخصّص للاستئجار ملاحظة:يصعب تصحيح أخطاء تعديلات الأسعار، وننصحك باستخدامها باعتدال. يُرجى التواصل مع المدير الفني للحساب (TAM) لمعرفة حالات الاستخدام التي تتطلّب أكثر من 200 تعديل على السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / @id | 1 | string | تمثّل هذه السمة معرّفًا فريدًا لتعديل السعر. الحدّ الأقصى لعدد الأحرف المسموح به هو 40 حرفًا. الأحرف المسموح بها هي a-z وA-Z و0-9 و_ (شرطة سفلية) و- (شرطة) و . (نقطة). |
| RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | في حال عدم تحديد ذلك وعدم تخزين تعديل سعر يتضمّن في حال تحديدها، يجب أن تكون القيمة |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates | 0..1 | BookingDates | حاوية لنطاق واحد أو أكثر من التواريخ التي يجب أن يتم فيها الحجز حتى يتم تطبيق تعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange | 1..99 | DateRange | نطاق زمني يحدّد الفترة التي يجب أن يتم خلالها الحجز لتطبيق تعديل السعر |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start | 0..1 | Date | تمثّل هذه السمة تاريخ البدء (استنادًا إلى المنطقة الزمنية للموقع)، وهو تاريخ مشمول في النطاق الزمني. يجب أن يكون هذا التاريخ قبل تاريخ end أو مطابقًا له. في حال عدم تحديد start، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ البدء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end | 0..1 | Date | تاريخ الانتهاء (استنادًا إلى المنطقة الزمنية للموقع)، شاملة، للنطاق الزمني. يجب أن يكون هذا التاريخ هو تاريخ start أو تاريخًا لاحقًا. إذا لم يتم تحديد end، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ الانتهاء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | أيام الأسبوع المسموح بها في النطاق الزمني في حال عدم تحديدها، يُسمح بجميع الأيام في النطاق الزمني. يحدّد كل حرف في السلسلة يومًا. على سبيل المثال، تحدّد القيمة "MTWHF" أنّه يُسمح بأيام الأسبوع في النطاق الزمني. الأحرف الصالحة هي:
يمكن استخدام أي مجموعة من الأحرف. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | تحدّد هذه السمة الفترة الزمنية التي يجب أن يتم خلالها الحجز مقارنةً بتاريخ تسجيل الوصول (استنادًا إلى المنطقة الزمنية للمكان المخصّص للاستئجار). على سبيل المثال، يمكن ضبط فترة الحجز على 7 أيام على الأقل، ولكن ليس أكثر من 180 يومًا، قبل تسجيل الوصول. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min | 0..1 | integer | الحد الأدنى لعدد الأيام قبل تسجيل الوصول التي يجب أن يتم فيها الحجز لتطبيق تعديل السعر إذا لم يتم تحديد هذه السمة، لن يكون هناك حد أدنى. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max | 0..1 | integer | الحد الأقصى لعدد الأيام قبل تسجيل الوصول التي يجب أن يتم خلالها الحجز لتطبيق تعديل السعر إذا لم يتم تحديد هذه السمة، لن يكون هناك حد أقصى. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | حاوية لنطاق واحد أو أكثر من التواريخ التي تحدّد الوقت الذي يجب فيه تسجيل الوصول لتطبيق تعديل السعر |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | نطاق زمني يحدّد الوقت الذي يجب أن يتم فيه تسجيل الوصول لتطبيق تعديل السعر. هذا العنصر غير مطلوب إذا كنت تحذف تعديلاً واحدًا أو أكثر على الأسعار. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start | 0..1 | Date | تمثّل هذه السمة تاريخ البدء (استنادًا إلى المنطقة الزمنية للموقع)، وهو تاريخ مشمول في النطاق الزمني. يجب أن يكون هذا التاريخ قبل تاريخ end أو مطابقًا له. في حال عدم تحديد start، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ البدء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end | 0..1 | Date | تاريخ الانتهاء (استنادًا إلى المنطقة الزمنية للموقع)، شاملة، للنطاق الزمني. يجب أن يكون هذا التاريخ هو تاريخ start أو تاريخًا لاحقًا. إذا لم يتم تحديد end، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ الانتهاء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | أيام الأسبوع المسموح بها في النطاق الزمني في حال عدم تحديدها، يُسمح بجميع الأيام في النطاق الزمني. يحدّد كل حرف في السلسلة يومًا. على سبيل المثال، تحدّد القيمة "MTWHF" أنّه يُسمح بأيام الأسبوع في النطاق الزمني. الأحرف الصالحة هي:
يمكن استخدام أي مجموعة من الأحرف. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates | 0..1 | CheckoutDates | حاوية لنطاق واحد أو أكثر من التواريخ التي تحدّد الوقت الذي يجب أن يتم فيه تسجيل المغادرة لتطبيق تعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | نطاق زمني يحدّد الوقت الذي يجب فيه تسجيل المغادرة لتطبيق تعديل السعر هذا العنصر غير مطلوب إذا كنت تحذف تعديلاً واحدًا أو أكثر على الأسعار. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start | 0..1 | Date | تمثّل هذه السمة تاريخ البدء (استنادًا إلى المنطقة الزمنية للموقع)، وهو تاريخ مشمول في النطاق الزمني. يجب أن يكون هذا التاريخ قبل تاريخ end أو مطابقًا له. في حال عدم تحديد start، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ البدء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end | 0..1 | Date | تاريخ الانتهاء (استنادًا إلى المنطقة الزمنية للموقع)، شاملة، للنطاق الزمني. يجب أن يكون هذا التاريخ هو تاريخ start أو تاريخًا لاحقًا. إذا لم يتم تحديد end، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ الانتهاء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | أيام الأسبوع المسموح بها في النطاق الزمني في حال عدم تحديدها، يُسمح بجميع الأيام في النطاق الزمني. يحدّد كل حرف في السلسلة يومًا. على سبيل المثال، تحدّد القيمة "MTWHF" أنّه يُسمح بأيام الأسبوع في النطاق الزمني. الأحرف الصالحة هي:
يمكن استخدام أي مجموعة من الأحرف. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices | 0..1 | Devices | حاوية لعرض أجهزة المستخدمين المؤهَّلة لتعديل السعر. في حال تحديدها، لن يتم تطبيق تعديل المعدّل إلا إذا كان المستخدم يملك أحد الأجهزة المدرَجة. في حال عدم تحديد ذلك، لن يؤدي ذلك إلى تقييد تطبيق تعديل المعدّل. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | تحدّد هذه السمة أحد أنواع أجهزة المستخدمين المؤهّلة لتعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type | 1 | enum | نوع الجهاز يجب أن تكون القيمة desktop أو tablet أو mobile. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions | 1 | ModificationActions | الإجراءات التي يتم تطبيقها على السعر إذا تم استيفاء جميع الشروط المحدّدة |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | تعدّل هذه السمة المعدّل من خلال ضرب كل من AmountBeforeTax وAmountAfterTax في المضاعِف المحدّد |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | يتم ضرب كل من AmountBeforeTax وAmountAfterTax في هذه القيمة. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule | 0..1 | RateRule | تعدّل السعر من خلال تطبيق رقم تعريف قاعدة السعر المحدّد عليه. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | يتطابق هذا المعرّف مع تعريف في ملف تعريف قاعدة الأسعار.
ملاحظة:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | تستبدل هذه السمة إمكانية استرداد الأموال للمعدّل بالقيمة المحدّدة.
عند ضبط السمات، يُرجى مراعاة ما يلي:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / 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، بما في ذلك هذان الرقمان. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time | 0..1 | Time | (يُنصح به إذا كانت قيمة available هي true) يحدّد هذا الحقل آخر وقت من اليوم، بالتوقيت المحلي للفندق، يتم فيه قبول طلب ردّ الأموال بالكامل. يمكن دمج هذا الحقل مع refundable_until_days لتحديد، على سبيل المثال، أنّ "عمليات ردّ الأموال متاحة حتى الساعة 4:00 مساءً قبل يومَين من تسجيل الوصول". إذا لم يتم ضبط refundable_until_time، تكون القيمة التلقائية هي منتصف الليل. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability | 0..1 | Availability | تستبدل هذه السمة مدى توفّر السعر بالقيمة المحدّدة.
يمكن ضبط المعدّل على unavailable فقط. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status | 1 | enum | إذا كانت القيمة status="unavailable"، يتم التعامل مع السعر على أنّه غير متوفّر، بغض النظر عمّا إذا كان هناك سعر صالح. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | تحدّد هذه السمة حدود مدة الإقامة التي يمكن تطبيق تعديل السعر هذا ضمنها. لا يتم تطبيق تعديل السعر عندما تكون مدة الإقامة خارج الحد الأدنى والأقصى. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min | 0..1 | integer | الحد الأدنى لعدد الليالي المسموح بها في الإقامة حتى يتم تطبيق تعديل السعر إذا لم يتم تحديد هذه السمة، لن يكون هناك حد أدنى. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max | 0..1 | integer | تمثّل هذه السمة الحد الأقصى لعدد الليالي المسموح بها في الإقامة كي يتم تطبيق تعديل السعر. إذا لم يتم تحديد هذه السمة، لن يكون هناك حد أقصى. |
| RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount | 0..1 | MinimumAmount | تحدّد هذه السمة الحد الأدنى لمجموع أسعار الغرف اليومية (باستخدام القيمة الأكبر من AmountBeforeTax أو AmountAfterTax) التي يجب تجاوزها لتطبيق تعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount | 1 | integer | القيمة التي يجب تجاوزها لتطبيق تعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans | 0..1 | RatePlans | حاوية لقائمة خطط الأسعار التي ينطبق عليها تعديل السعر. في حال عدم تحديد <RatePlans>، سيتم تطبيق تعديل السعر على جميع خطط الأسعار. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan | 1..n | RatePlan | تحدّد هذه السمة خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزم والأسعار ومدى التوفّر، كما هو موضّح في الرسائل Transaction (Property Data) وOTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ، وكما هو محدّد بواسطة PackageID. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | المعرّف الفريد لخطة الأسعار. ترتبط هذه القيمة بقيمة PackageID في <PackageData> في رسالة المعاملة (بيانات المنشأة)، وفي السمة RatePlanCode في <StatusApplicationControl> في كل من الرسالتين <OTA_HotelRateAmountNotifRQ> و<OTA_HotelAvailNotifRQ>.
الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes | 0..1 | RoomTypes | حاوية لقائمة بأنواع الغرف التي ينطبق عليها تعديل السعر.
يتم تطبيق تعديل السعر على كل <RoomType>
محدّد. في حال عدم تحديد <RoomTypes>، ينطبق تعديل السعر على جميع الغرف. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType | 1..n | RoomType | تحدّد هذه السمة نوع الغرفة. يتم تحديد نوع الغرفة في العنصر <RoomData> ضمن الرسالة المعاملة (بيانات المنشأة)، ويتم الرجوع إليه باستخدام قيمة <RoomID>. (تتم أيضًا الإشارة إلى قيمة <RoomID> من خلال السمة InvTypeCode في رسائل OTA_HotelRateAmountNotifRQ.) |
| RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id | 1 | string | المعرّف الفريد للمستودع (نوع الغرفة). ترتبط هذه القيمة
بالقيمة <RoomID> في رسالة "معاملة" (بيانات الموقع).
الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates | 0..1 | StayDates | حاوية لنطاق زمني واحد أو أكثر تحدّد كيفية تطبيق تعديل السعر، مثلاً لاستيعاب الأسعار الموسمية. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application | 1 | enum | توضّح هذه السمة كيفية تطبيق تعديل السعر. القيم الصالحة هي:
يجب تحديد هذه السمة دائمًا. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange | 1..99 | DateRange | نطاق زمني يحدّد التواريخ التي سيتم فيها تطبيق تعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start | 0..1 | Date | تمثّل هذه السمة تاريخ البدء (استنادًا إلى المنطقة الزمنية للموقع)، وهو تاريخ مشمول في النطاق الزمني. يجب أن يكون هذا التاريخ قبل تاريخ end أو مطابقًا له. في حال عدم تحديد start، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ البدء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end | 0..1 | Date | تاريخ الانتهاء (استنادًا إلى المنطقة الزمنية للموقع)، شاملة، للنطاق الزمني. يجب أن يكون هذا التاريخ هو تاريخ start أو تاريخًا لاحقًا. إذا لم يتم تحديد end، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ الانتهاء. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | أيام الأسبوع المسموح بها في النطاق الزمني في حال عدم تحديدها، يُسمح بجميع الأيام في النطاق الزمني. يحدّد كل حرف في السلسلة يومًا. على سبيل المثال، تحدّد القيمة "MTWHF" أنّه يُسمح بأيام الأسبوع في النطاق الزمني. الأحرف الصالحة هي:
يمكن استخدام أي مجموعة من الأحرف. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | في حال تحديدها، لا يتم تطبيق تعديل السعر إلا إذا كان المستخدم مقيمًا في أحد البلدان المحدّدة. في حال عدم تحديدها، يتم تطبيق تعديل السعر بغض النظر عن الموقع الجغرافي للمستخدم. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | نوع مواصفات UserCountries.
القيم الصالحة هي إذا تم ضبط UserCountries إذا كانت قيمة UserCountries في حال عدم ضبط UserCountries |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country | 1..300 | Country | تحدّد هذه السمة بلدًا مسموحًا به للمستخدم لتعديل السعر. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code | 1 | string | رمز CLDR للبلد،
مثل DE أو FR يُرجى العِلم أنّ رمز CLDR للبلد لا يتطابق مع رمز ISO للبلد المكوّن من حرفَين في بعض البلدان. ولا تتوفّر أيضًا رموز مناطق CLDR. |
أمثلة
الرسالة الأساسية
يعرض المثال التالي رسالة RateModifications` أساسية:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
<DateRange start="2023-09-01" end="2023-09-30"/>
</BookingDates>
<BookingWindow min="7" max="330"/>
<CheckinDates>
<DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
</CheckoutDates>
<Devices>
<Device type="mobile"/>
<Device type="tablet"/>
</Devices>
<LengthOfStay min="2" max="14"/>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<UserCountries>
<Country code="US"/>
<Country code="GB"/>
</UserCountries>
<ModificationActions>
<PriceAdjustment multiplier="1.2"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
حذف تعديل واحد على السعر
يوضّح المثال التالي كيفية حذف تعديل واحد على السعر لأحد الأماكن المتاحة للاستئجار:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1" action="delete"/>
</HotelRateModifications>
</RateModifications>
حذف جميع تعديلات الأسعار
يوضّح المثال التالي كيفية حذف جميع تعديلات الأسعار الخاصة بمكان إقامة:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>
تراكب جميع تعديلات الأسعار
يوضّح المثال التالي كيفية إضافة <HotelRateModifications> إلى
عقار مع تعديل واحد أو أكثر على الأسعار. عندما تكون القيمة action="overlay"، يتم حذف جميع تعديلات الأسعار المخزّنة قبل تخزين تعديلات الأسعار المحدّدة في الرسالة الحالية:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1" action="overlay"/>
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-09-01" end="2023-09-30"/>
</BookingDates>
<ModificationActions>
<PriceAdjustment multiplier="1.2"/>
</ModificationActions>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
إجراءات تعديل متعدّدة
يوضّح المثال التالي كيفية تنفيذ إجراءات تعديل متعددة في وقت واحد:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-01-01" end="2023-02-28"/>
</BookingDates>
<ModificationActions>
<PriceAdjustment multiplier=".95"/>
<Refundable available="true"
refundable_until_days="1"
refundable_until_time="12:00:00"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
إيقاف خطة أسعار لبلدان المستخدمين
يوضّح المثال التالي كيفية حصر خطة أسعار على المستخدمين اليابانيين (JP) فقط:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<RatePlans>
<RatePlan id="jp_only"/>
</RatePlans>
<UserCountries type="exclude">
<Country code="JP"/>
</UserCountries>
<ModificationActions>
<Availability status="unavailable"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
الردود
البنية
تستخدم الرسالة RateModificationsResponse البنية التالية:
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
</Issues>
</RateModificationsResponse>
العناصر والسمات
تتضمّن رسالة RateModificationsResponse العناصر والسمات التالية:
| العنصر / @السمة | عدد مرات الظهور | النوع | الوصف |
|---|---|---|---|
| RateModifications | 1 | Complex element | العنصر الجذر الذي يشير إلى نجاح أو تعذُّر تلقّي رسالة طلب RateModifications. |
| RateModificationsResponse / @timestamp | 1 | DateTime | تاريخ إنشاء هذه الرسالة ووقته. |
| RateModificationsResponse / @id | 1 | string | المعرّف الفريد من رسالة RateModifications المرتبطة. |
| RateModificationsResponse / @partner | 1 | string | حساب الشريك لهذه الرسالة |
| RateModificationsResponse / Success | 0..1 | Success | تشير إلى أنّه تمت معالجة رسالة RateModifications بنجاح
بدون تحذيرات أو أخطاء أو حالات فشل.
يجب أن يتضمّن كل رسالة إما |
| RateModificationsResponse / Issues | 0..1 | Issues | حاوية لمشكلة واحدة أو أكثر حدثت أثناء معالجة رسالة RateModifications.
يجب أن يتضمّن كل رسالة إما |
| RateModificationsResponse / Issues / Issue | 1..n | Issue | وصف للتحذير أو الخطأ أو العطل الذي حدث أثناء معالجة رسالة RateModifications. يمكنك الاطّلاع على تفاصيل حول هذه المشاكل في رسائل الخطأ في حالة الخلاصة. |
| RateModificationsResponse / Issues / Issue / @code | 1 | integer | معرّف المشكلة. |
| RateModificationsResponse / Issues / Issue / @status | 1 | enum | نوع المشكلة التي واجهتها. القيم الصالحة هي |
أمثلة
تم الإجراء بنجاح
في ما يلي ردّ على رسالة RateModifications تمت معالجتها بنجاح.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</RateModificationsResponse>
المشاكل
في ما يلي ردّ على رسالة RateModifications لم تتم معالجتها بسبب أخطاء.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</RateModificationsResponse>