العروض الترويجية

نظرة عامة

تتيح لك واجهة برمجة التطبيقات هذه تحديد الخصومات المحتملة. من بين العروض الترويجية المحدّدة تطبِّق Google العرض الترويجي المؤهَّل أو مجموعة العروض الترويجية التي تؤدي إلى أدنى سعر. إذا كنت تبحث عن واجهة برمجة تطبيقات تتيح السعر العشوائي التعديلات التي يمكن أن تؤدي إلى زيادة السعر أو خفضه عندما تكون الظروف رضا عالٍ، ففكر في Rate Modifications API: يُرجى العلم بأنّه في حال توفُّر كِلا واجهتَي برمجة التطبيقات، سيتم تطبيق تعديلات الأسعار قبل أو العروض الترويجية.

الطلبات

البنية

تستخدم الرسالة Promotions البنية التالية:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
      </BookingDates>
      <BookingWindow min="integer_or_duration" max="integer_or_duration"/>
      <Ceiling amount_per_night="float"/>
      <Floor amount_per_night="float"/>
      <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>
      <!-- Specify only one of percentage, fixed_amount, fixed_amount_per_night,
           fixed_price, or fixed_price_per_night; applied_nights is only used
           with percentage, fixed_amount_per_night, and fixed_price_per_night. -->
      <Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
                fixed_price="float" fixed_price_per_night="float"
                applied_nights="integer_1_to_99" rank="integer_1_to_99">
        <!-- FreeNights may not be used in conjunction with attributes on Discount -->
        <FreeNights stay_nights="integer" discount_nights="integer"
                    discount_percentage="float" night_selection="[cheapest|last]"
                    repeats="boolean"/>
      </Discount>
      <!-- Exactly one of Discount or BestDailyDiscount must be specified.
           Specify only one of percentage, fixed_amount, or fixed_price. -->
      <BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <LengthOfStay min="integer" max="integer"/>
      <MembershipRateRule id="RateRuleID"/>
      <MinimumAmount before_discount="integer"/>
      <Occupancy min="integer" max="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <Stacking type="[any|base|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <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>
    </Promotion>
  </HotelPromotions>
</Promotions>

العناصر والسمات

تحتوي رسالة العروض الترويجية على العناصر والسمات التالية:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
Promotions 1 Complex element تمثّل هذه السمة العنصر الجذر لرسالة ترويجية.
Promotions / @partner 1 string حساب الشريك لهذه الرسالة قيمة السلسلة هذه هي "مفتاح الشريك" القيمة مدرجة في صفحة "إعدادات الحساب" في Hotel Center.

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

Promotions / @id 1 string معرّف فريد لرسالة الطلب هذه يتم عرض هذه القيمة في رسالة الرد. الأحرف المسموح بها هي a-z وA-Z و0-9 و_. (شرطة سفلية)، و- (شرطة).
Promotions / @timestamp 1 DateTime تاريخ إنشاء هذه الرسالة ووقتها.
Promotions / HotelPromotions 0..n HotelPromotions

العروض الترويجية لأحد المواقع. ينطبق كل عرض ترويجي على عرض الموقع.

ما لم يتم استخدام <Stacking>، تُطبَّق على الحجز العرض الترويجي الحاصل على أكبر خصم تكون عدّة عروض ترويجية مؤهّلة.

Promotions / HotelPromotions / @hotel_id 1 string تشير هذه السمة إلى المعرّف الفريد الخاص بالمكان المخصّص للاستئجار. يجب أن تتطابق هذه القيمة مع تم تحديد رقم تعريف الفندق باستخدام <id> في العنصر <listing> في خلاصة قوائم الفنادق يكون رقم تعريف الفندق مُدرجًا أيضًا في Hotel Center.
Promotions / HotelPromotions / @action 0..1 enum

في حال تحديدها، يجب أن تكون القيمة "overlay" عندما تكون القيمة "overlay"، يتم يتم حذف العروض الترويجية المخزنة قبل تخزين العروض الترويجية المحددة في الرسالة الحالية.

إذا لم يتم تحديد قيمة، يتم تحديد كل عرض ترويجي في هي إما:

  • Added (إذا لم يتضمن أي من العروض الترويجية المخزنة نفس id)
  • Updated (إذا كان عرض ترويجي محفوظ يحتوي على النتيجة نفسها id)
  • Deleted (إذا كان عرض ترويجي محفوظ يحتوي على النتيجة نفسها id وقيمة السمة action بالنسبة إلى العرض الترويجي المحدَّد في الرسالة الحالية "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

عرض ترويجي واحد لفندق. لاحظ أنه إذا action="overlay" و<Promotion> هو لم يتم تحديده، سيتم حذف جميع الإعلانات الترويجية الخاصة بالموقع.

إذا كنت بحاجة إلى استخدام أكثر من 99 عرضًا ترويجيًا، يُرجى التواصل مع فريق الدعم. المدير التقني للحسابات (TAM).

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

وفي حال تحديدها، يجب أن تكون القيمة delete. إذا لم يكن كذلك محددة وa لا يتم تخزين العرض الترويجي الذي يستخدم id نفسه، وعندئذٍ تخزين الترويج. بخلاف ذلك، إذا لم يتم تحديد عرض ترويجي، يسري العرض عليه تم تخزين id نفسها، يصبح العرض الترويجي الحالي تحديث.

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

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates حاوية لنطاق واحد أو أكثر تحدّد وقت إجراء الحجز لكي يتم تطبيق العرض الترويجي.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange نطاق يحدّد وقت إجراء الحجز ليتم تطبيق العرض الترويجي المنهجية.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date أو DateTime

تاريخ البدء أو التاريخ (استنادًا إلى المنطقة الزمنية للموقع) وشاملة ضمن النطاق.

  • يجب أن يكون التاريخ أو التاريخ المحدَّد في start هو قبل (أو مماثلين) للتاريخ أو التاريخ والوقت المحددين end
  • إذا لم يتم تحديد start، يتم استخدام النطاق بفعالية. غير محدود من حيث وقت البدء.
  • إذا تمت تعبئة start كتاريخ "YYYY-MM-DD"، تم تفسيره على أنه تاريخ ووقت "YYYY-MM-DDT00:00:00".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date أو DateTime

تاريخ الانتهاء أو التاريخ والوقت (استنادًا إلى المنطقة الزمنية للموقع) وشاملة ضمن النطاق.

  • يجب أن يكون التاريخ أو الوقت المحدَّد في "end" لاحقًا. من (أو مماثلة) للتاريخ أو التاريخ والوقت المحددين start
  • إذا لم يتم تحديد end، يتم استخدام النطاق بفعالية. غير محدود من حيث وقت الانتهاء.
  • إذا تم تقديم السمة end كتاريخ "YYYY-MM-DD"، تكون تم تفسيره على أنه تاريخ ووقت "YYYY-MM-DDT23:59:59".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

أيام الأسبوع المسموح بها في النطاق الزمني. إذا لم يكن كذلك محدد، يُسمح بجميع الأيام في النطاق الزمني. على كل يحدد الحرف في السلسلة يومًا. على سبيل المثال، "MTWHF" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

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

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

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

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow تحدِّد هذه السياسة الفترة الزمنية التي يجب أن يحدث فيها الحجز نسبةً إلى تاريخ تسجيل الوصول (استنادًا إلى المنطقة الزمنية للموقع). على سبيل المثال، يمكن ضبط فترة الحجز على 7 أيام على الأقل، ولا تزيد عن 180 يومًا، قبل تسجيل الوصول.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration الحدّ الأدنى للمدة المحدّدة قبل تسجيل الوصول عند وجوب إجراء الحجز كي يتم تطبيق العرض الترويجي إذا لم يتم تحديد قيمة الحقل أو قيمة هذه السمة هي 0، ما مِن حد أدنى.

أنواع القيم الصالحة هي:

  • عدد صحيح: عدد الأيام قبل تسجيل الوصول التاريخ. على سبيل المثال، تشير القيمة 30 إلى لا يسري العرض الترويجي إلا على الحجوزات قبل 30 يومًا على الأقل من تاريخ تسجيل الوصول.
  • المدة وفقًا لمعيار ISO 8601 (الأيام والساعات والدقائق): عدد أيام (واختيارية ساعات/دقائق) قبل تاريخ تسجيل الوصول. بالنسبة على سبيل المثال، تشير القيمة P30D إلى العرض الترويجي فقط. على الحجوزات قبل 30 يومًا على الأقل من تاريخ تسجيل الوصول. حاسمة بقيمة P30DT6H، يجب الحجز في الساعة 6:00 مساءً أو قبلها اليوم الثلاثين قبل الوصول.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration الحدّ الأقصى لعدد الأيام قبل تسجيل الوصول الذي يجب فيه إجراء الحجز كي يتم تطبيق العرض الترويجي إذا لم يتم تحديد قيمة الحقل أو قيمة هذه السمة هي 0، ما مِن حد أقصى.

أنواع القيم الصالحة هي:

  • عدد صحيح: عدد الأيام قبل تسجيل الوصول التاريخ. على سبيل المثال، تشير القيمة 30 إلى لا يسري العرض الترويجي إلا على الحجوزات قبل 30 يومًا كحد أقصى من تاريخ تسجيل الوصول.
  • المدة وفقًا لمعيار ISO 8601 (الأيام والساعات والدقائق): عدد أيام (واختيارية ساعات/دقائق) قبل تاريخ تسجيل الوصول. بالنسبة على سبيل المثال، تشير القيمة P30D إلى العرض الترويجي فقط. على الحجوزات قبل 30 يومًا من تاريخ تسجيل الوصول بحد أقصى. حاسمة بقيمة P30DT6H تتطلب الحجز في الساعة 6:00 مساءً أو بعد هذا التاريخ اليوم الثلاثين قبل الوصول.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

تحدد القيود المفروضة على القيمة القصوى التي يمكن ضبط السعر عليها بعد تطبيق العروض الترويجية

يجب أن تحدد العروض الترويجية دائمًا <Discount> أو <BestDailyDiscount>، وذلك لإنشاء عرض ترويجي لا ينطبق سوى <Ceiling>، أحد الخيارات هو ضبط <Discount> مع percentage من 0

في حال ضبط هذه السياسة، يتم عرض عدة عروض ترويجية ويمكن أن تنطبق <Ceiling> على إقامة واحدة. كل عرض ترويجي تطبيق التخفيض، يليه سقفه مباشرة. تشير رسالة الأشكال البيانية المثال التالي كيف يساهم كل سقف في المرحلة التالية وحساب العرض الترويجي في الحزمة.

مثال:

تحديد أسعار إقامة لمدة ليلة واحدة في فندق AmountBeforeTax 100 ولدينا عرضان ترويجيان هما:

  1. عرض ترويجي بنوع التكديس base، a fixed_amount من 25 وسقفًا amount_per_night من 60
  2. عرض ترويجي بنوع التكديس second، fixed_amount من 25 وسقفًا amount_per_night من 90

فيما يلي ترتيب الحساب:

  1. يتم تطبيق العرض الترويجي base أولاً ويتم تطبيق الخصومات عليه. AmountBeforeTax إلى 75، ولكن بعد ذلك سينخفض السقف إلى 60.
  2. يخصم العرض الترويجي second AmountBeforeTax من 60 إلى 35. إنه تحت السقف 90 وبالتالي لا يتم تطبيق الحد الأقصى الثاني. السعر النهائي هو 35.

حقيقة أن 60 هو سقف إجمالي أكثر صرامة غير ذي صلة لأن صالحة فقط للترويج الخاص بها، ولا يجوز والذي يمتدّ إلى حزمة العروض الترويجية بالكامل

Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night 1 float

الحد الأقصى للمبلغ الذي يمكن ضبط سعر الإقامة في الليلة عليه بعد تطبيق الخصم.

إذا تم تحديد عنصر <Floor> أيضًا، سيتم يجب تعيينه على قيمة أكبر من أو تساوي سمة amount_per_night في <Floor>

تُطبَّق amount_per_night على الضرائب والرسوم عند يتم تضمينها في سعر الليلة باستخدام AmountAfterTax، ولكن غير تلك المحددة باستخدام معلومات الضرائب.

Promotions / HotelPromotions / Promotion / Floor 0..1 Floor

تحدد القيود المفروضة على الحد الأدنى للقيمة التي يمكن ضبط السعر عليها بعد تطبيق العروض الترويجية

يجب أن تحدد العروض الترويجية دائمًا <Discount> أو <BestDailyDiscount>، وذلك لإنشاء عرض ترويجي لا ينطبق سوى <Floor>، أحد الخيارات هو ضبط <Discount> مع percentage من 0

لا يزال منطق <Floor> ينطبق على خصومات <FreeNights>، حتى إذا كان لليلة المجانية سيتم تطبيق خصم بقيمة 100%.

في حال ضبط هذه السياسة، يتم عرض عدة عروض ترويجية ويمكن أن تنطبق <Floor> على إقامة واحدة. كل عرض ترويجي تطبيق الخصم، يليه الحد الأدنى مباشرةً. تشير رسالة الأشكال البيانية المثال التالي كيف يساهم كل طابق في المستوى التالي وحساب العرض الترويجي في الحزمة.

مثال:

تحديد أسعار إقامة لمدة ليلة واحدة في فندق AmountBeforeTax 100 ولدينا عرضان ترويجيان هما:

  1. عرض ترويجي بنوع التكديس base، a fixed_amount من 25، وطابق amount_per_night من 90
  2. عرض ترويجي بنوع التكديس second، fixed_amount من 25، وطابق amount_per_night من 60

فيما يلي ترتيب الحساب:

  1. يتم تطبيق العرض الترويجي base أولاً ويتم تطبيق الخصومات عليه. AmountBeforeTax إلى 75، ولكن الأرض يرفعها بما يصل إلى 90.
  2. يخصم العرض الترويجي second AmountBeforeTax من 90 إلى 65. هذا أعلى الطابق 60 وبالتالي لا يتم تطبيق الطابق الثاني. السعر النهائي هو 65.

حقيقة أن 90 هو حد إجمالي أكثر صرامة ليس له صلة بالموضوع صالحة فقط للترويج الخاص بها، ولا يجوز الحد الذي يمتد إلى حزمة العروض الترويجية بالكامل

Promotions / HotelPromotions / Promotion / Floor / @amount_per_night 1 float

الحد الأدنى للمبلغ الذي يمكن ضبط سعر الإقامة في الليلة عليه بعد تطبيق الخصم.

إذا تم تحديد عنصر <Ceiling> أيضًا، سيتم يجب تعيينه على قيمة أقل من أو تساوي سمة amount_per_night في <Ceiling>

تُطبَّق amount_per_night على الضرائب والرسوم عند يتم تضمينها في سعر الليلة باستخدام AmountAfterTax، ولكن غير تلك المحددة باستخدام معلومات الضرائب.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates حاوية لنطاق زمني واحد أو أكثر تحدّد وقت تسجيل الوصول كي يتم تطبيق العرض الترويجي
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

نطاق زمني يحدّد وقت تسجيل الوصول لكي يسري العرض الترويجي النهج التحليلي. هذا العنصر غير مطلوب إذا حذفت عنصرًا واحدًا أو أكثر. أو العروض الترويجية.

يمكنك أيضًا استخدام التنسيق YearlessDate.

  • إذا كان أي من start أو end غير سنوي تاريخ، يجب تعبئة كليهما كتواريخ غير سنوية.
  • يجب ألا تنتهي النطاقات الزمنية للسنة مع حلول العام الجديد. بدلاً من ذلك، لتمثيل النطاق كنطاقين زمنيين متجاورين. على سبيل المثال: يمكن تمثيل {"12-29", "01-05"} كـ {"12-29", "12-31"} {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate تاريخ البدء (بناءً على المنطقة الزمنية للموقع) شاملاً النطاق الزمني. ويجب أن يكون هذا التاريخ قبل أو مطابقًا لتاريخ التاريخ: end إذا لم يتم تحديد start، يتم تضمين التاريخ غير محدود فعليًا من حيث تاريخ البدء.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate تاريخ الانتهاء (بناءً على المنطقة الزمنية للموقع)، ويشمل ذلك تاريخ النطاق الزمني. يجب أن يتطابق هذا التاريخ مع تاريخ start أو بعده. التاريخ. إذا لم يتم تحديد end، يتم تضمين التاريخ غير محدود فعليًا من حيث تاريخ الانتهاء.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 string

أيام الأسبوع المسموح بها في النطاق الزمني. إذا لم يكن كذلك محدد، يُسمح بجميع الأيام في النطاق الزمني. على كل يحدد الحرف في السلسلة يومًا. على سبيل المثال، "MTWHF" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

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

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

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

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates حاوية لنطاق زمني واحد أو أكثر تحدّد وقت إتمام الدفع لكي يتم تطبيق العرض الترويجي.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

نطاق زمني يحدّد وقت إتمام الدفع لكي يسري العرض الترويجي النهج التحليلي. هذا العنصر غير مطلوب إذا كنت حذف واحد أو أكثر من العروض الترويجية

يمكنك أيضًا استخدام التنسيق YearlessDate.

  • إذا كان أي من start أو end غير سنوي تاريخ، يجب ملء كلاهما كتواريخ غير سنوية.
  • يجب ألا تنتهي النطاقات الزمنية للسنة مع حلول العام الجديد. بدلاً من ذلك، لتمثيل النطاق كنطاقين زمنيين متجاورين. على سبيل المثال: يمكن تمثيل {"12-29", "01-05"} كـ {"12-29", "12-31"} و {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate تاريخ البدء (بناءً على المنطقة الزمنية للموقع) شاملاً النطاق الزمني. ويجب أن يكون هذا التاريخ قبل أو مطابقًا لتاريخ التاريخ: end إذا لم يتم تحديد start، يتم تضمين التاريخ غير محدود فعليًا من حيث تاريخ البدء.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate تاريخ الانتهاء (بناءً على المنطقة الزمنية للموقع)، ويشمل ذلك تاريخ النطاق الزمني. يجب أن يتطابق هذا التاريخ مع تاريخ start أو بعده. التاريخ. إذا لم يتم تحديد end، يتم تضمين التاريخ غير محدود فعليًا من حيث تاريخ الانتهاء.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 string

أيام الأسبوع المسموح بها في النطاق الزمني. إذا لم يكن كذلك محدد، يُسمح بجميع الأيام في النطاق الزمني. على كل يحدد الحرف في السلسلة يومًا. على سبيل المثال، "MTWHF" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

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

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

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

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices حاوية تتضمّن أجهزة المستخدمين المؤهَّلة الترويج. المستخدمون المؤهَّلون على الأجهزة المُدرَجة فقط، في حال تحديده السعر المخفض. إذا لم يتم تحديده، فسينضم المستخدمون المؤهلون في أي الجهاز بسعر مخفض.
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device تحدّد هذه السمة نوعًا واحدًا من أجهزة المستخدمين مؤهَّلاً للاستفادة من العرض الترويجي.
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum نوع الجهاز يجب أن تكون القيمة desktop. tablet أو mobile.
Promotions / HotelPromotions / Promotion / Discount 1 Discount

واحد بالضبط من Discount أو يجب تحديد BestDailyDiscount.

تحدّد هذه السمة الخصم الذي سيتم تطبيقه على هذا العرض الترويجي.

Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 float

واحد بالضبط من percentage، fixed_amount، fixed_amount_per_night، fixed_price أو fixed_price_per_night هو مطلوبة.

قيمة عشرية من 0 إلى 100 تحدّد النسبة المئوية للخصم يتم تطبيقه على AmountAfterTax (أو AmountBeforeTax إذا لم يكن AmountAfterTax محددة).

أمثلة:

  • إذا كانت قيمة AmountAfterTax هي 100 وpercentage هو 20، ثم

    معدّل الترويج = AmountAfterTax * (1 - نسبة مئوية) تخفيض)

    80.00 = 100 * (1 - 0.2)

  • إذا كانت قيمة AmountBeforeTax هي 100، القيمة percentage هي 20 وتحدد TaxFeeInfo ضريبة بقيمة 10، ثم

    معدّل الترويج = AmountBeforeTax * (1 - نسبة مئوية) الخصم) + الضريبة

    90.00 = 100 * (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

واحد بالضبط من percentage، fixed_amount، fixed_amount_per_night، fixed_price أو fixed_price_per_night هو مطلوبة.

مبلغ ثابت يتم طرحه من حاصل طرح AmountAfterTax أسعار في الليلة (أو مجموع AmountBeforeTax أسعار في الليلة إذا ولم يتم تحديد الحقل "AmountAfterTax"). يُفترض أن يكون بالعملة نفسها المستخدمة في أسعار الليلة. وإذا كان هذا أكبر من مجموع أسعار الليلة، تكون القيمة الناتجة صفر.

أمثلة:

  • إذا كنا تسعيرنا إقامة لمدة ليلة واحدة حيث AmountBeforeTax - 90 عامًا، AmountAfterTax: 100 وfixed_amount هو 20، ثم

    معدّل الترويج = AmountAfterTax - ثابت خصم

    80.00 = 100 - 20

  • إذا كنا تسعيرنا إقامة لمدة ليلة واحدة حيث AmountBeforeTax هي 100، fixed_amount تساوي 20، وتحدد TaxFeeInfo ضريبة تبلغ 8%، ثم

    معدّل الترويج = (AmountBeforeTax - ثابت) الخصم) * (1 + النسبة المئوية للضرائب)

    86.40 = (100 - 20) * 1.08

  • إذا كنا تسعيرنا إقامة لمدة ليلة واحدة حيث AmountBeforeTax هي 50 عامًا، وfixed_amount هي 60، وتحدد TaxFeeInfo ضريبة بقيمة 10،

    معدّل الترويج = (AmountBeforeTax - ثابت) الخصم) * الضريبة

    10.00 = 0 + 10

  • إذا كنا بصدد تسعير إقامة لمدة 3 ليالٍ، حيث قيم AmountAfterTax هي 100 و110 و120؛ أو fixed_amount يساوي 150، ثم

    معدّل الترويج = sum(AmountAfterTax) - (ثابتة) تخفيض)

    180.00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 float

واحد بالضبط من percentage، fixed_amount، fixed_amount_per_night، fixed_price أو fixed_price_per_night هو مطلوبة.

خصم ثابت مطبَّق على كل من AmountAfterTax. أسعار الإقامة في الليلة (أو أرخص N إذا تم تحديد applied_nights). في حال حذف لم يتم تحديد الحقل AmountAfterTax، بل سيتم تطبيقه على AmountBeforeTax يُفترض أن يكون بالعملة نفسها المستخدمة في أسعار الليلة. في حال حذف fixed_amount_per_night أكبر من في الليلة، يتم خفض سعر الليلة إلى صفر لا يمكن أن يؤدي الخصم إلى أن يصبح سعر الليلة سالبًا.

أمثلة:

  • إذا كنا بصدد تسعير إقامة لمدة 3 ليالٍ، حيث قيم AmountAfterTax هي 100 و110 و120؛ و fixed_amount_per_night هي 10، ثم

    معدّل الترويج = المبلغ(AmountBeforeTax - مبلغ ثابت) تخفيض)

    300.00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • إذا كنا بصدد تسعير إقامة لمدة 3 ليالٍ، حيث قيم AmountAfterTax هي 10 و50 و100؛ و قيمة fixed_amount_per_night هي 20، ثم

    معدّل الترويج = المبلغ(AmountAfterTax - مبلغ ثابت) تخفيض)

    110.00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @fixed_price 0..1 float

واحد بالضبط من percentage، fixed_amount، fixed_amount_per_night، fixed_price أو fixed_price_per_night هو مطلوبة.

إذا تم تحديد أسعار الإقامة في الليلة بـ AmountAfterTax، ستكون هذه القيمة تحديد سعر الإقامة، بما في ذلك الضرائب والرسوم، المحددة. إذا تم تحديد AmountBeforeTax، سواء تم تحديد AmountAfterTax أم لا، يؤدي ذلك إلى تعيين السعر بدون احتساب الضريبة للإقامة على القيمة المحدّدة يُفترض أن يكون بالعملة نفسها المستخدمة في أسعار الليلة.

إذا كان AmountAfterTax يهدف إلى إظهار بالنسبة المئوية للضريبة، ثم تحديد سعر ثابت يمكن أن تؤدي القيمة AmountBeforeTax إلى ضرائب ورسوم غير دقيقة. وعمومًا، ننصح بشدة باستخدام السمة TaxFeeInfo لتحديد الضرائب والرسوم في الفندق.

أمثلة:

  • إذا كنا تسعيرنا إقامة لمدة ليلة واحدة حيث AmountBeforeTax - 90 عامًا، AmountAfterTax: 100 وfixed_price على 80، ثم يكون معدّل الترويج 80.
  • إذا كنا تسعيرنا إقامة لمدة ليلة واحدة حيث AmountBeforeTax هي 100، fixed_amount 80، وتحدد TaxFeeInfo ضريبة بقيمة 8%، ثم

    معدّل الترويج = سعر ثابت * (1 + نسبة الضريبة)

    86.40 = 80 * 1.08

  • إذا كنا بصدد تسعير إقامة لمدة 3 ليالٍ، حيث قيم AmountAfterTax هي 100 و110 و120؛ أو fixed_amount يساوي 300، ثم

    معدّل الترويج = 300

Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night 0..1 float

واحد بالضبط من percentage، fixed_amount، fixed_amount_per_night، fixed_price أو fixed_price_per_night هو مطلوبة.

إذا تم تحديد أسعار الإقامة في الليلة بـ AmountAfterTax، ستكون هذه القيمة تحدد سعر كل ليلة إقامة شاملةً الضرائب والرسوم المحددة. إذا تم تحديد AmountBeforeTax، سواء تم تحديد AmountAfterTax أم لا، يؤدي ذلك إلى تعيين السعر قبل احتساب الضريبة لكل ليلة إقامة وفقًا للقيمة المحدّدة. من المهم من المفترض أن تكون بالعملة نفسها مثل أسعار الليلة.

إذا كان AmountAfterTax يهدف إلى إظهار بالنسبة المئوية للضريبة، ثم تحديد سعر ثابت يمكن أن تؤدي القيمة AmountBeforeTax إلى ضرائب ورسوم غير دقيقة. وعمومًا، ننصح بشدة باستخدام السمة TaxFeeInfo لتحديد الضرائب والرسوم في الفندق.

إذا تم تحديد applied_nights، سيبلغ السعر الجديد على أرخص N من الليالي.

أمثلة:

  • إذا كنا كنا تسعير إقامة لمدة ليلتين حيث قيم AmountBeforeTax هي 90 و90، قيم AmountAfterTax هي 100 و100، أو قيمة fixed_price هي 80، ثم يكون معدّل العرض الترويجي 80 + 80 = 160.
  • إذا كنا كنا تسعير إقامة لمدة ليلتين حيث AmountBeforeTax: 100، 100؛ fixed_amount 80، وتحدد TaxFeeInfo ضريبة تبلغ %8، ثم يحدد معدّل العرض الترويجي هو (80 + 80) * 1.08 = 172.8.
  • إذا كنا بصدد تسعير إقامة لمدة 3 ليالٍ، حيث قيم AmountAfterTax هي 100 و110 و120؛ أو قيمة fixed_amount هي 110، ثم يكون معدّل العرض الترويجي 110 × 3 = 330.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

لا يجب استخدام هذه السمة إلا مع percentage أو fixed_amount_per_night

عدد الليالي التي يتم تطبيق الخصم عليها، بدءًا من الأقل تكلفة. يجب أن تكون القيمة عددًا صحيحًا من 1 إلى 99. إذا لم يتم تحديده، يسري الخصم على جميع الليالي.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights تحدّد هذه السمة خصمًا على ليالي معيّنة من الإقامة عند الحدّ الأدنى للإقامة. بالطول. السمات في العنصر الرئيسي Discount غير مسموح بها في حال استخدام هذا العنصر.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

عدد الليالي المطلوبة لكي يتم تطبيق الخصم. على كل ينطبق الخصم على جزء منفصل من ليالي الإقامة.

على سبيل المثال، لمدة 10 ليالٍ يتم فيها تحديد stay_nights 4 (وتكون repeats صحيحة)، تكون هناك ليلتان للإقامة. المقاطع: من الليالي الأولى إلى الرابعة ومن الليالي الخامسة إلى الثامنة؛ الـ ولا تشكّل الليالي التاسعة والعاشرة جزءًا من فترة الإقامة الليلية.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer عدد ليالي الإقامة بسعر مخفَّض ضمن كل قسم من ليالي الإقامة
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float الخصم الذي يسري على ليالي الخصم. إذا كانت هذه القيمة هو 50، ثم يتم خصم% 50 في كل ليلة يتم اختيارها.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string يجب أن تكون إما cheapest أو last. في حال حذف last، ثم عدد الليالي في نهاية فترة الإقامة ليالي مخفضة. إذا كانت cheapest، تكون الأرخص ويتم خصم قيمة عدد الليالي خلال فترة الإقامة خلال مدة الإقامة.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

ما إذا كان يمكن تطبيق الخصم على عدة ليالٍ إقامة الأقسام. إذا كانت القيمة false، سيتم عندها فقط جزء من مدة الإقامة لعدد الليالي في الساعة. يتم خصم بداية برنامج الرحلة. إذا كانت القيمة true، وسيتم خصم قيمة أي فترة من ليالي الإقامة.

على سبيل المثال، إذا كان stay_nights هو 4 وبرنامج الرحلة 10 ليلة، إذا كانت قيمة repeats هي true، تكون قيمة الحقل 2. الأسعار مخفّضة (الليلة من يوم واحد إلى 4 ليالٍ ومن 5 إلى 8 ليالٍ) ولكن إذا قيمة "repeats" هي "false"، وبالتالي يتم عرض شريحة واحدة فقط سعر مخفّض (ليلة من 1 إلى 4 ليالٍ).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer يعيّن هذا العرض الترويجي ترتيبًا ويفعّله في اختيار الترتيب، حيث يتم فقط اختيار العرض الترويجي الأدنى ترتيب ليتم تطبيقه. القيم يجب أن تتراوح القيمة بين 1 و99 (ضمنًا). في حال مشاركة عروض ترويجية متعدّدة معًا ترتيب، يتم تحديد واحد وتطبيقه بشكل عشوائي.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

واحد بالضبط من Discount أو يجب تحديد BestDailyDiscount.

تحدّد هذه السمة خصمًا يوميًا قد يتم تطبيقه على الليلة الواحدة. البقاء. يتناقض ذلك مع السمة Discount التي تنطبق. وخصومات للإقامات الكاملة.

قد يحتوي كل موقع على مجموعة واحدة من العروض الترويجية التي تكون تُعد "الأفضل يوميًا". وهذا يعني أنه لكل ليلة من ليالي الإقامة، أغنية فردية "أفضل يوميًا" العرض الترويجي المؤهَّل الذي يحقّق يتم تطبيق خصم على تلك الليلة وقد يتم تطبيقه.

قد لا يتم تحديد Stacking مع BestDailyDiscount "أفضل الصور يوميًا" خصومات تُنتج يتم الجمع بين أعمق خصم لكل ليلة ويتم التعامل معه كخصم فردي. خصم على الإقامة (أي Discount) مع ضبط نوع التكديس على base تتم مقارنة هذا الخصم المجمّع به، ويمكن أن مع <خصومات> أخرى مؤهّلة العروض الترويجية للعثور على واحدة أو مجموعة توفر الخصم الأكثر عمقًا إما مجموعة من BestDailyDiscount أو واحدة يتم اختيار Discount، أيهما يعرض السعر الأقل، تم تطبيقه على نوع تكديس base.

يمكن تحديد StayDates مع هذا النوع من الخصم، ولكن يجب ضبط application على overlap.

.
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

واحد بالضبط من percentage، يجب توفير الحقل fixed_amount أو fixed_price.

قيمة عشرية من 0 إلى 100 تحدّد النسبة المئوية للخصم يتم تطبيقه على AmountAfterTax (أو AmountBeforeTax إذا لم يكن AmountAfterTax محددة).

أمثلة:

  • إذا كان سعر AmountAfterTax لليلة الإقامة هو 100 قيمة percentage هي 20، ثم

    معدّل الترويج = AmountAfterTax * (1 - نسبة مئوية) تخفيض)

    80.00 = 100 * (1 - 0.2)

  • وإذا كانت قيمة AmountBeforeTax لمدة ثمانية إقامة هي 100، القيمة percentage هي 20 وتحدد TaxFeeInfo ضريبة بقيمة 10، ثم

    معدّل الترويج = AmountBeforeTax * (1 - نسبة مئوية) الخصم) + الضريبة

    90.00 = 100 * (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount 0..1 float

واحد بالضبط من percentage، يجب توفير الحقل fixed_amount أو fixed_price.

مبلغ ثابت يتم طرحه من مبلغ واحد سعر الإقامة في الليلة: AmountAfterTax (أو AmountBeforeTax سعر الإقامة في الليلة إذا ولم يتم تحديد الحقل "AmountAfterTax"). يُفترض أن يكون بالعملة نفسها المستخدمة في أسعار الليلة. وإذا كان هذا أكبر من مجموع أسعار الليلة، تكون القيمة الناتجة صفر.

أمثلة:

  • إذا كان AmountBeforeTax لليلة الواحدة هو 90، AmountAfterTax: 100 وfixed_amount هو 20، ثم

    معدّل الترويج = AmountAfterTax - ثابت خصم

    80.00 = 100 - 20

  • إذا كانت قيمة AmountBeforeTax لليلة واحدة هي 100، تبلغ قيمة fixed_amount 20، وتحدد TaxFeeInfo ضريبة بقيمة 8%، ثم

    معدّل الترويج = (AmountBeforeTax - ثابت) الخصم) * (1 + النسبة المئوية للضرائب)

    86.40 = (100 - 20) * 1.08

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price 0..1 float

واحد بالضبط من percentage، يجب توفير الحقل fixed_amount أو fixed_price.

إذا تم تحديد أسعار الإقامة في الليلة بـ AmountAfterTax، ستكون هذه القيمة تحدد سعر ليلة الإقامة، شاملةً الضرائب والرسوم، على المحددة. إذا تم تحديد AmountBeforeTax، سواء تم تحديد AmountAfterTax أم لا، يؤدي ذلك إلى تعيين السعر بدون احتساب الضريبة للإقامة على القيمة المحدّدة يُفترض أن يكون بالعملة نفسها المستخدمة في أسعار الليلة.

أمثلة:

  • إذا كان AmountBeforeTax لليلة الواحدة هو 90، AmountAfterTax: 100 وfixed_price على 80، ثم يكون معدّل الترويج 80.
  • إذا كانت قيمة AmountBeforeTax لليلة واحدة هي 100، تبلغ قيمة fixed_amount 80، وتحدد TaxFeeInfo ضريبة بقيمة 8%، ثم

    معدّل الترويج = سعر ثابت * (1 + نسبة الضريبة)

    86.40 = 80 * 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount تحدد القيود المفروضة على عدد الغرف التي يجب أن تكون متاحة في لكي يتم تطبيق هذا العرض الترويجي. يتم تطبيق الخصم على الليالي التي تفي بالقيد. غير مسموح به مع خصم بقيمة fixed_amount. لاحظ أن عدد الغرف محددة إما OTA_HotelInvCountNotifRQ (InvCount) أو OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer الحدّ الأدنى لعدد الغرف التي يجب أن تكون متاحة للعرض الترويجي الذي سيتم تطبيقه على سعر الإقامة في الليلة إذا لم يتم تحديد ذلك، فلا يوجد الحد الأدنى.
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer الحدّ الأقصى لعدد الغرف التي يجب أن تكون متاحة للعرض الترويجي الذي سيتم تطبيقه على سعر الإقامة في الليلة إذا لم يتم تحديد ذلك، فلا يوجد الحد الأقصى.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay تحدِّد هذه السياسة حدود مدة الإقامة التي يمكن تطبيق هذا العرض الترويجي ضمنها. المنهجية. لا يسري العرض الترويجي عندما تكون مدة الإقامة خارج نطاق الحدود الدنيا والحد الأقصى.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer الحد الأدنى لعدد ليالي الإقامة المسموح بها خلال فترة الإقامة لكي يتم تطبيق العرض الترويجي المنهجية. وإذا لم يتم تحديد قيمة الحقل، فلا يوجد حد أدنى.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer الحد الأقصى لعدد ليالي الإقامة خلال فترة الإقامة لكي يتم تطبيق العرض الترويجي المنهجية. وإذا لم يتم تحديد قيمة السمة، لن يكون هناك حدّ أقصى.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

حاوية لقاعدة سعر عضوية تؤدي إلى تشغيل واجهة مستخدم معيّنة معالجة للخصم المرتبط بها.

يجب عدم تحديد هذا العنصر إلا تم أيضًا تحديد <Discount>.

Promotions / HotelPromotions / Promotion / MembershipRateRule / @id 1 string

رقم تعريف قاعدة السعر المرتبطة ببرنامج عضوية

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount تُحدد الحد الأدنى من مجموع أسعار الإقامة في الغرف اليومية (باستخدام القيمة الأكبر من AmountBeforeTax أو AmountAfterTax) التي يجب يمكن تجاوزها ليتم تطبيق العرض الترويجي.
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer القيمة التي يجب تجاوزها لتطبيق العرض الترويجي
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy تحدد القيود المفروضة على عدد النزلاء في الأماكن التي ينطبق عليها هذا العرض الترويجي. المنهجية. لا يسري العرض الترويجي عندما يكون عدد النزلاء في خارج نطاق الحدود الدنيا والحد الأقصى.
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer يجب ألا تقلّ مدة الإشغال التي يحددها المستخدم عن هذه القيمة من أجل التخفيض الذي سيتم تطبيقه.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer يجب ألا تزيد مدة الإشغال الذي يحدده المستخدم عن هذه القيمة من أجل التخفيض الذي سيتم تطبيقه.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans حاوية لقائمة خطط الأسعار التي ينطبق عليها العرض الترويجي إذا لم يتم تحديد <RatePlans>، يسري العرض الترويجي. على جميع خطط الأسعار
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan تحدّد خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزمة والأسعار والتوفّر، كما هو محدّد في المعاملة (بيانات الموقع) وOTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ والرسائل كما هو محدد في PackageID.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string المعرّف الفريد لخطة الأسعار يتم تعيين هذه القيمة إلى قيمة PackageID في <PackageData> في رسالة المعاملة (بيانات الموقع)، وفي سمة RatePlanCode في <StatusApplicationControl> في كليهما <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> رسالة الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes حاوية لقائمة بأنواع الغرف التي ينطبق عليها العرض الترويجي يتم تطبيق العرض الترويجي على كل <RoomType>. المحددة. إذا لم يتم تحديد السمة <RoomTypes>، سيتم يسري العرض الترويجي على جميع الغرف.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType تحدِّد هذه السياسة نوع الغرفة. يتم تحديد نوع الغرفة في عنصر <RoomData> في رسالة المعاملة (بيانات الموقع) المشار إليها باستخدام قيمتها <RoomID>. ( تتم الإشارة إلى قيمة <RoomID> أيضًا من خلال السمة السمة InvTypeCode في OTA_HotelRateAmountNotifRQ messages.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string المعرّف الفريد للمستودع (نوع الغرفة) تحدد هذه القيمة إلى <RoomID> في رسالة معاملة (بيانات الموقع). الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking تحدّد هذه السمة طريقة دمج العروض الترويجية. إذا لم يتم تحديده، فسيتم يُفترض أن يكون base.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

يمكن تطبيق عروض ترويجية متعددة على سعر واحد استنادًا إلى هذا الإعداد:

  • any: يمكن جمعه مع أي عرض ترويجي آخر (باستثناء none)، ولكن الترتيب الذي يجب أن تظهر به العروض الترويجية تطبيقها غير مضمونة.
  • base: أفضل عرض ترويجي مؤهَّل من base هو يتم اختيارها وتطبيقها أولاً، قبل العروض الترويجية الأخرى. كان هذا بالاسم base_only سابقًا
  • second: أفضل عرض ترويجي مؤهَّل من second تم اختيار وتطبيقه بعد عرض ترويجي بقيمة base. (إذا كان ذلك منطبقًا) وقبل any عرض ترويجي.
  • none: لا يمكن الجمع بينه وبين غير ذلك أو العروض الترويجية.

من بين التركيبات المسموح بها، تمثّل مجموعة العروض الترويجية التي تُنتج سيتم تطبيق الخصم الأكبر على السعر.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates حاوية نطاق زمني واحد أو أكثر تحدّد كيفية تحديد التي يسري عليها العرض الترويجي، مثلاً من أجل استيعاب خصومات موسمية.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

تصف هذه السمة طريقة تطبيق العرض الترويجي.

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

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

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

  • إذا كانت السمة <Discount> تحدّد percentage وapplication مضبوطة على all أو any، يتم تطبيق الخصم كنسبة مئوية من إقامة كاملة.
  • إذا كانت السمة <Discount> تحدّد percentage وapplication على overlap، يطبّق الخصم كنسبة مئوية من أسعار الإقامة في الليلة الواحدة على العروض المتداخلة ليالي
  • <Discount> مع تحديد fixed_amount وapplication المضبوطة على overlap هي الدمج غير صالح.
  • يتوافق تطبيق <FreeNights> مع كل الأجهزة application من القيم. يُرجى العِلم أنّه بالنسبة إلى overlap سيتم احتساب ليالي الإقامة المتداخلة فقط ضمن الخصم. متطلبات المشروع.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

نطاق زمني يحدّد تواريخ تطبيق العرض الترويجي

يمكنك أيضًا استخدام التنسيق YearlessDate.

  • إذا كان أي من start أو end غير سنوي تاريخ، يجب ملء كلاهما كتواريخ غير سنوية.
  • يجب ألا تنتهي النطاقات الزمنية للسنة مع حلول العام الجديد. بدلاً من ذلك، لتمثيل النطاق كنطاقين زمنيين متجاورين. على سبيل المثال: يمكن تمثيل {"12-29", "01-05"} كـ {"12-29", "12-31"} و {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate تاريخ البدء (بناءً على المنطقة الزمنية للموقع) شاملاً النطاق الزمني. ويجب أن يكون هذا التاريخ قبل أو مطابقًا لتاريخ التاريخ: end إذا لم يتم تحديد start، يتم تضمين التاريخ غير محدود فعليًا من حيث تاريخ البدء.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate تاريخ الانتهاء (بناءً على المنطقة الزمنية للموقع)، ويشمل ذلك تاريخ النطاق الزمني. يجب أن يتطابق هذا التاريخ مع تاريخ start أو بعده. التاريخ. إذا لم يتم تحديد end، يتم تضمين التاريخ غير محدود فعليًا من حيث تاريخ الانتهاء.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

أيام الأسبوع المسموح بها في النطاق الزمني. إذا لم يكن كذلك محدد، يُسمح بجميع الأيام في النطاق الزمني. على كل يحدد الحرف في السلسلة يومًا. على سبيل المثال، "MTWHF" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني.

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

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

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

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries حاوية لإدراج المواقع الجغرافية للمستخدمين (البلدان) المؤهَّلة للترويج. في حال تحديده، لن يتم تضمين سوى المستخدمين المؤهَّلين في القائمة أن توفر السعر المخفض. إذا لم يتم تحديده، سيكون مؤهلاً أن يتوفّر للمستخدمين في أي بلد السعر المُخفَّض.
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum تمثّل هذه السمة نوع مواصفات Userالبُلدان.

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

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

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

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

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country تحدّد هذه السمة بلدًا واحدًا يكون فيه المستخدمون مؤهلين للاستفادة من العرض الترويجي.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string بلد CLDR الرمز، مثل DE أو FR. لاحظ أنه بالنسبة لبعض فإن رمز CLDR للبلدان ليس هو نفسه رمز ISO المكون من حرفين رمز البلد. بالإضافة إلى ذلك، لا يمكن استخدام رموز CLDR للمناطق.

أمثلة

هناك حدّ أقصى يبلغ 500 عرض ترويجي لكل موقع. راجع "حذف ملف الترويج" على سبيل المثال لإزالة العروض الترويجية من الموقع.

الرسالة الأساسية

يعرض المثال التالي رسالة Promotions أساسية:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <Discount percentage="20" applied_nights="2"/>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <Stacking type="base"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>


حالة المستودع

يوضّح المثال التالي كيفية إنشاء خصم إذا كان زائدًا. مخزون من تاريخ الوصول:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow max="7"/>
      <Discount percentage="10"/>
      <InventoryCount min="3"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


حذف عرض ترويجي واحد

يوضّح المثال التالي كيفية حذف عرض ترويجي واحد لأحد المواقع:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1" action="delete"/>
  </HotelPromotions>
</Promotions>

حذف جميع الإعلانات الترويجية

يوضّح المثال التالي كيفية حذف جميع العروض الترويجية لأحد المواقع:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>



عرض كل العروض الترويجية

يوضّح المثال التالي كيفية إضافة <HotelPromotions> إلى أحد المواقع. يعرض إعلانًا ترويجيًا جديدًا أو أكثر عند action="overlay"، يتم تخزين كل العناصر. يتم حذف العروض الترويجية قبل تخزين العروض الترويجية المحددة في الرسالة الحالية:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <Discount percentage="10"/>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <Stacking type="base"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

3 أنواع مختلفة للتكديس

يوضّح المثال التالي حالة تكون فيها ثلاثة عروض ترويجية مختلفة تم تطبيقها (base، second، any). يُرجى العِلم أنّ العرض الترويجي "none" لأنّ العروض الترويجية الأخرى تقدّم خصمًا أفضل. إذا كانت النتيجة الأصلية السعر 100 دولار أمريكي، وسيكون السعر المخفّض 72.90 دولار أمريكي.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="second"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="4">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


بدون نوع تكديس

يوضّح المثال التالي حالة يتم فيها استخدام العرض الترويجي none للأسباب التالية: مع مجموعة من العروض الترويجية الأخرى، ستحصل على خصم أقل. إذا كانت السعر الأصلي 100 دولار أمريكي، وسيكون السعر المخفّض 75 دولار أمريكي.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



حدود مدة الحجز

يوضّح المثال التالي حالة تُستخدم فيها السمة BookingWindow يُستخدم مع تحديد حدود البداية والنهاية لـ ISO 8601 Duration الكتابة. تتطلّب فترة الحجز هذه الحجز بحلول الساعة 6:00 مساءً أو قبلها. في اليوم السابق للوصول، وفي الساعة 12:00 أو بعد ذلك في اليوم الثاني قبل الوصول الوصول.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow min="P1DT6H" max="P2DT12H"/>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


تواريخ الحجز وتواريخ أو وقت

يوضّح المثال التالي حالة تُستخدم فيها السمة BookingDates العنصر مع السمتين start وend أنواع DateTime. يجب إقامة الحجز عند فرض قيود على تاريخ الحجز. بين الساعة 6:30 في 2020-07-01 والساعة 18:45 في تاريخ 2020-07-2020.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


النطاقات الزمنية السنوية

يوضّح المثال التالي حالة تُستخدم فيها السمة CheckInDates عنصر واحد يحتوي على DateRanges التي تحتوي على start end حقلاً بدون سنوات في هذا المثال، ينطبق العرض الترويجي. إلى تواريخ تسجيل الوصول بين 29/12 و2/1، بغض النظر عن السنة. بدون عام النطاقات الزمنية التي تعبر حدود السنة الجديدة غير صالحة، وبالتالي يمكن أن يكون النطاق الزمني ويتم التعبير عنها في نطاقين زمنيين متجاورين.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <CheckInDates>
         <DateRange start="12-29" end="12-31"/>
         <DateRange start="01-01" end="01-02"/>
      </CheckInDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



خصم على FreeNights

يقدم المثال التالي تخفيضًا على ليلتين بنسبة 50٪ لكل أربع ليالٍ تم إقامة إقامة لمدة ليلتين النطاق المحدد لتواريخ الحجز. بالنسبة لمسار رحلة مدته عشر ليالٍ، يكون إجمالي ثم تخفيض السعر بنسبة 50٪ لأربع ليالٍ.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
        <DateRange start="2022-01-01" end="2022-05-31"/>
      </BookingDates>
      <Discount>
        <FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>

يقدم المثال التالي خصومات لليلة واحدة بنسبة 50٪ لكل ثلاث ليالٍ طوال مدة النطاقات المحددة لتواريخ الإقامة. يتم احتساب ليالي الإقامة المتداخلة فقط. نحو التأهل للحصول على الخصم. لبرنامج الرحلة التالي مع تسجيل الوصول في 1 كانون الثاني (يناير) 2022 وتسجيل المغادرة في 7 تموز (يوليو) 2022، وتحديد ليالي الإقامة المؤهلة تطبيق الخصومات على النحو التالي.

  • 2022-01-01 (إقامة)
  • 2022-01-02 (إقامة)
  • 2022-01-03
  • 2022-01-04 (سعر مخفَّض)
  • 2022-01-05 (إقامة)
  • 2022-01-06 (إقامة)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <StayDates application="overlap">
        <DateRange start="2022-01-01" end="2022-01-02"/>
        <DateRange start="2022-01-04" end="2022-01-06"/>
      </StayDates>
      <Discount>
        <FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>


الاختيار المُرتب

يقدّم المثال التالي خصمَين، أحدهما بنسبة خصم 20% والآخر للحصول على خصم بنسبة% 15. أثناء التقييم، يتم تطبيق الخصم بنسبة 15% فقط. لأن رتبتها أقل.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="15" rank="25"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="20" rank="50"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

BestDailyDiscount

يقدّم المثال التالي خصمًا على إقامة لمدة ليلتين من خلال تقديم طلب. تم تجميع BestDailyDiscount مع Discount.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
 <HotelPromotions hotel_id="HotelID" action="overlay">
   <Promotion id="general">
     <BestDailyDiscount fixed_amount="20"/>
   </Promotion>
   <Promotion id="may">
     <BestDailyDiscount fixed_amount="50"/>
     <StayDates application="overlap">
        <DateRange start="2023-05-01" end="2023-05-31"/>
     </StayDates>
   </Promotion>
   <Promotion id="fiesta">
     <Discount fixed_amount_per_night="5"/>
     <Stacking type="any"/>
   </Promotion>
 </HotelPromotions>
</Promotions>

ننصحك بإقامة لمدة ليلتين من 30 أبريل 2023 إلى 2 مايو 2023 بالنسبة إلى العملية الحسابية، يتم الجمع بين أفضل الخصومات اليومية التي ينتج عنها سيتم العثور على الخصم الأكثر عمقًا أولاً.

في الليلة الأولى، يعرض "عام" هو المبلغ المؤهَّل الوحيد بخصم ثابت قدره 20.

وفي الليلة الثانية، قد يتم عرض عرض ترويجي أفضل من "عام" خصم. لذلك، عندما "قد" تم اختيار الخصم الثابت هو 50.

ثم بالنسبة للإقامة، "المهرجان" خصومات العروض الترويجية إلى 5 في الليلة الواحدة 10 إجمالاً يمكن الجمع بين أفضل الخصومات اليومية. لأنّ "مهرجان" تم ضبط نوع التكديس على any. إذا تم ضبطها إلى base، ثم مجموعة أفضل الخصومات اليومية أو "المهرجان" تطبيق الخصم. اطّلع على وصف يمكنك Stacking للحصول على مزيد من المعلومات.

"بشكل عام، يحصل سعر الإقامة على 20 + 50 + 10 = 80 مبلغًا ثابتًا. خصم.

الردود

البنية

تستخدم الرسالة PromotionsResponse البنية التالية:

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues are populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code"
           status="issue_type">
      issue_description
    </Issue>
  </Issues>
</PromotionsResponse>

العناصر والسمات

تحتوي الرسالة PromotionsResponse على العناصر والسمات التالية:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
PromotionsResponse 1 Complex element يشير هذا المصطلح إلى العنصر الجذر الذي يشير إلى نجاح أو مشاكل في عملية استلام. رسالة طلب العروض الترويجية
PromotionsResponse / @timestamp 1 DateTime تاريخ إنشاء هذه الرسالة ووقتها.
PromotionsResponse / @id 1 string المعرّف الفريد من رسالة العروض الترويجية المرتبطة
PromotionsResponse / @partner 1 string حساب الشريك لهذه الرسالة
PromotionsResponse / Success 0..1 Success يشير إلى أنّه تمّت معالجة رسالة "العروض الترويجية" بنجاح بدون تحذيرات أو أخطاء أو إخفاقات.

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

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

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

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

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

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

أمثلة

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

في ما يلي ردّ على رسالة عروض ترويجية تمت معالجتها بنجاح.

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</PromotionsResponse>

المشاكل

في ما يلي ردّ على رسالة ترويجية لم تتم معالجتها بسبب الأخطاء.

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</PromotionsResponse>