تعديلات المعدل

نظرة عامة

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

ملاحظة: إذا كانت لديك خلفية توفر خلاصات حسابات متعددة، يجب أن تتطابق هذه القيمة مع ID قيمة السمة المحددة في <RequestorID> العنصر في <OTA_HotelRateAmountNotifRQ> <OTA_HotelAvailNotifRQ> رسالة لنفس الحساب.

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

إذا لم يتم تحديد action، ستكون التعديلات. ضمن هذا العنصر أو تحديثها لهذا الفندق. في حال حذف تم تحديد action="overlay"، ثم تم تحديدها سابقًا يتم أولاً حذف التعديلات التي تم إجراؤها على هذا الفندق. بعد ذلك، طبّقت التعديلات المحددة هنا. في حال استخدام action="overlay" لم يتم تحديد أي تعديلات داخل هذا العنصر، فعندئذٍ يتم تحديد جميع تم حذف التعديلات التي تم إجراؤها على هذا الفندق.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

تعديل سعر واحد لأحد المواقع

ملاحظة:يصعُب تصحيح أخطاء تعديلات الأسعار، ولا يمكننا توصي باستخدامها باعتدال. يُرجى التواصل مع المدير التقني للحسابات (TAM) للتعرّف على حالات الاستخدام التي إذا كانت تتطلب أكثر من 200 تعديل للسعر

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string معرّف فريد لتعديل السعر الحد الأقصى لعدد الأحرف المسموح بها هي 40. الأحرف المسموح بها هي a-z وA-Z و0-9 و0-9. _ (شرطة سفلية) و- (شرطة) و . (نقطة).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

إذا لم يتم تحديده وتم تعديل السعر بنفس لم يتم تخزين id، ثم سيتم تخزين تعديل السعر هذا. أو إذا لم يتم تحديده وتم تعديل السعر بالمعدل نفسه تمّ تخزين id، وبالتالي فإنّ تعديل السعر الحالي هو تحديث.

وفي حال تحديدها، يجب أن تكون القيمة "delete". إذا تم تحديد "delete"، يتم حذف تعديل معدّل التخزين المُخزَّن مع id نفسه. عند استخدام "delete"، لا تضمِّن أي عناصر فرعية في <ItineraryRateModification> أيضًا، "delete" ليس يتم السماح بذلك مع <HotelRateModifications action="overlay"/>.

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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

الأحرف الصالحة هي:

  • M ليوم الاثنين
  • T يوم الثلاثاء
  • W يوم الأربعاء
  • H يوم الخميس
  • F يوم الجمعة
  • S ليوم السبت
  • U ليوم الأحد

أي تركيبة أحرف صالحة.

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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

الأحرف الصالحة هي:

  • M ليوم الاثنين
  • T يوم الثلاثاء
  • W يوم الأربعاء
  • H يوم الخميس
  • F يوم الجمعة
  • S ليوم السبت
  • U ليوم الأحد

أي تركيبة أحرف صالحة.

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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

الأحرف الصالحة هي:

  • M ليوم الاثنين
  • T يوم الثلاثاء
  • W يوم الأربعاء
  • H يوم الخميس
  • F يوم الجمعة
  • S ليوم السبت
  • U ليوم الأحد

أي تركيبة أحرف صالحة.

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 يطابق رقم التعريف هذا معدّلاً مع تعريف في تعريف قاعدة التقييم. ملاحظة:
  • عدد الأحرف المسموح به لهذا الحقل هو 40 حرفًا.
  • يمكن ربط كل سعر بقاعدة سعر واحدة فقط.
  • في حال تطبيق تعديلات متعددة على رقم تعريف قاعدة أسعار، سيتم يتم تعيين معرّف قاعدة السعر الأصغر من الناحية اللغوية إلى السعر.
  • إذا لم يتطابق هذا المعرّف مع قاعدة أسعار في تعريف قاعدة الأسعار فسيتم اعتباره غير مؤهَّل.
راجع هذه المقالة للحصول على معلومات حول واجهة المستخدم المختلفة للسعر الخاص. العلاجات.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable يؤدي هذا الإجراء إلى استبدال إمكانية استرداد الأموال بنسبة مئوية إلى القيمة المحدّدة.

عند ضبط السمات، يجب مراعاة ما يلي:

  • يؤدي إجراء التعديل هذا إلى إعادة كتابة المعدل المؤهَّل الذي يمكن استرداد قيمته الإعداد، وليس فقط الحقول المعبأة.
  • إذا كانت قيمة available أو refundable_until_days هي لم يتم تحديده، فلن يظهر السعر على أنه قابل للاسترداد.
  • إذا كانت قيمة available هي 0 أو false، ويتم تجاهل التصنيفات الأخرى. لا يظهر السعر على النحو التالي: حتى إذا تم تعيين إحدى السمتين الأخريين أو كلتيهما.
  • يُنصح بإعداد refundable_until_time. إذا لم يكن كذلك يتم استخدام أقرب وقت (منتصف الليل).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (مطلوب) تم ضبطه على 1 أو true للإشارة إلى ما إذا كان المعدل يسمح refund; والمضبوطة على 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 messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string المعرّف الفريد للمستودع (نوع الغرفة) تحدد هذه القيمة إلى <RoomID> في رسالة معاملة (بيانات الموقع). الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates حاوية نطاق زمني واحد أو أكثر تحدّد كيفية تحديد يتم تطبيق تعديل الأسعار، مثل استيعاب السعر الموسمي.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

تصف كيفية تطبيق تعديل الأسعار.

القيم الصالحة هي:

  • all: يطبّق تعديل السعر على كل ليلة في برنامج الرحلة في حال تداخل جميع التواريخ في برنامج الرحلة مع تواريخ الإقامة.
  • any: لتطبيق تعديل السعر على جميع الليالي في برنامج الرحلة إذا تداخل أي تاريخ في برنامج الرحلة مع تاريخ نطاق تواريخ الإقامة.

يجب تحديد هذه السمة دائمًا.

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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

الأحرف الصالحة هي:

  • M ليوم الاثنين
  • T يوم الثلاثاء
  • W يوم الأربعاء
  • H يوم الخميس
  • F يوم الجمعة
  • S ليوم السبت
  • U ليوم الأحد

أي تركيبة أحرف صالحة.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries في حال تحديد السعر، لن يتم تطبيق تعديل السعر إلا إذا كان المستخدم تقع في أحد البلدان المحددة. وإذا لم يتم تحديده، فسيتم تطبيق المعدل يتم تطبيق التعديل بغض النظر عن الموقع الجغرافي للمستخدم.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum تمثّل هذه السمة نوع مواصفات Userالبُلدان.

القيمتان الصالحتان هما include exclude

في حال ضبط سمة "بلدان المستخدم type" على include، يسري تعديل السعر على للمستخدمين من البلدان المدرَجة في القائمة

إذا كانت قيمة Userالبُلدان type هي exclude، أن يسري تعديل الأسعار على المستخدمين خارج البلدان المدرَجة في القائمة

وفي حال ترك سمة Userالبُلدان type بدون ضبط، سيتم التعامل معها على أنّها: include وتعديل السعر على المستخدمين من البلدان المذكورة

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 بنجاح. بدون تحذيرات أو أخطاء أو إخفاقات.

قيمة <Success> أو <Issues> هي موجود في كل رسالة.

RateModificationsResponse / Issues 0..1 Issues حدثت حاوية لمشكلة واحدة أو أكثر أثناء معالجة رسالة RateModifications.

قيمة <Success> أو <Issues> هي موجود في كل رسالة.

RateModificationsResponse / Issues / Issue 1..n Issue وصف للتحذير أو الخطأ أو الخطأ الذي حدث أثناء معالجة رسالة RateModifications. يمكن أن تكون التفاصيل حول هذه المشكلات في خطأ في حالة الخلاصة الرسائل
RateModificationsResponse / Issues / Issue / @code 1 integer معرِّف المشكلة.
RateModificationsResponse / Issues / Issue / @status 1 enum

نوع المشكلة التي حدثت.

القيمتان الصالحتان هما warning وerror. وfailure.

أمثلة

تم الإجراء بنجاح

في ما يلي الردّ على عملية 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>