نظرة عامة
تتيح لك واجهة برمجة التطبيقات هذه تحديد طرق لتطبيق الإجراءات ديناميكيًا على معدّل معيّن كلما تم استيفاء الشروط، مثل تعديل السعر أو تفعيل إمكانية استرداد الأموال. وعلى عكس 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
على العناصر
والسمات التالية:
العنصر / @Attribute | عدد مرات الظهور | النوع | الوصف |
---|---|---|---|
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>
في خلاصة قائمة الفنادق. يكون رقم تعريف الفندق مُدرَجًا أيضًا في مركز إدارة معلومات الفنادق. |
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 و_ (شرطة سفلية) و- (dash) و . (نقطة). |
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>
في رسالة المعاملة (بيانات الموقع)، وبسمة
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 | تمثّل هذه السمة نوع مواصفات Userالبُلدان.
القيمتان الصالحتان هما أمّا في حال ضبط سمة "بلدان المستخدمين" وإذا كانت قيمة السمة وفي حال ترك سمة "بلدان المستخدمين" |
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
على العناصر والسمات التالية:
العنصر / @Attribute | عدد مرات الظهور | النوع | الوصف |
---|---|---|---|
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>