نظرة عامة
تتيح لك واجهة برمجة التطبيقات هذه تحديد طُرق لتطبيق الإجراءات ديناميكيًا على سعر عند استيفاء الشروط، مثل تعديل السعر أو تفعيل إمكانية استرداد الأموال. وعلى عكس واجهة برمجة التطبيقات 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 و_ (شرطة سفلية) و- (شرطة) و . (نقطة). |
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>