نظرة عامة
تتيح لك واجهة برمجة التطبيقات هذه تحديد طرق لتطبيق الإجراءات ديناميكيًا على سعر معيّن عند استيفاء الشروط، مثل تعديل السعر أو تفعيل إمكانية ردّ الأموال. على عكس واجهة برمجة التطبيقات 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 | تعديل سعر واحد لموقع ملاحظة: من الصعب تصحيح الأخطاء في تعديلات الأسعار، وننصح باستخدامها بحرص. تواصَل مع المدير الفني لحسابك بشأن حالات الاستخدام التي تتطلّب تعديل أكثر من 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 | تحدّد خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزمة والأسعار ومدى التوفّر، كما هو محدّد في رسائل المعاملات (بيانات الفندق) وOTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ وكما هو محدّد من خلال PackageID. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | المعرّف الفريد لخطة الأسعار يتم ربط هذه القيمة بقيمة
PackageID في <PackageData>
في رسالة Transaction (Property Data)، وفي سمة
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> في رسالة Transaction (Property Data).
الحد الأقصى لعدد الأحرف المسموح به هو 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>
على
property من خلال تعديل واحد أو أكثر من تعديلات الأسعار الجديدة. عند تحديد
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 | العنصر الجذر الذي يشير إلى نجاح رسالة طلب تعديلات الأسعار أو المشاكل المتعلّقة بها |
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>