نظرة عامة
تتيح لك واجهة برمجة التطبيقات هذه تحديد الخصومات المحتملة. من بين العروض الترويجية المحدّدة تطبِّق 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.
إذا كانت لديك واجهة خلفية توفر خلاصات
حسابات متعددة، يجب أن تتطابق هذه القيمة مع |
Promotions / @id | 1 | string | معرّف فريد لرسالة الطلب هذه يتم عرض هذه القيمة في رسالة الرد. الأحرف المسموح بها هي a-z وA-Z و0-9 و_. (شرطة سفلية)، و- (شرطة). |
Promotions / @timestamp | 1 | DateTime | تاريخ إنشاء هذه الرسالة ووقتها. |
Promotions / HotelPromotions | 0..n | HotelPromotions | العروض الترويجية لأحد المواقع. ينطبق كل عرض ترويجي على عرض الموقع. ما لم يتم استخدام |
Promotions / HotelPromotions / @hotel_id | 1 | string | تشير هذه السمة إلى المعرّف الفريد الخاص بالمكان المخصّص للاستئجار. يجب أن تتطابق هذه القيمة مع
تم تحديد رقم تعريف الفندق باستخدام
<id> في العنصر <listing>
في خلاصة قوائم الفنادق مُدرَج أيضًا رقم تعريف الفندق في مركز إدارة معلومات الفنادق. |
Promotions / HotelPromotions / @action | 0..1 | enum | في حال تحديدها، يجب أن تكون القيمة
إذا لم يتم تحديد قيمة، يتم تحديد كل عرض ترويجي في هي إما:
|
Promotions / HotelPromotions / Promotion | 0..99 | 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 | وفي حال تحديدها، يجب أن تكون القيمة إذا تم تحديد |
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 | تاريخ البدء أو التاريخ (استنادًا إلى المنطقة الزمنية للموقع) وشاملة ضمن النطاق.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date أو DateTime | تاريخ الانتهاء أو التاريخ والوقت (استنادًا إلى المنطقة الزمنية للموقع) وشاملة ضمن النطاق.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week | 0..1 | string | أيام الأسبوع المسموح بها في النطاق الزمني. إذا لم يكن كذلك محدد، يُسمح بجميع الأيام في النطاق الزمني. على كل يحدد الحرف في السلسلة يومًا. على سبيل المثال، "MTWHF" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني. الأحرف الصالحة هي:
أي تركيبة أحرف صالحة. |
Promotions / HotelPromotions / Promotion / BookingWindow | 0..1 | BookingWindow | تحدِّد هذه السياسة الفترة الزمنية التي يجب أن يحدث فيها الحجز نسبةً إلى تاريخ تسجيل الوصول (استنادًا إلى المنطقة الزمنية للموقع). على سبيل المثال، يمكن ضبط فترة الحجز على 7 أيام على الأقل، ولا تزيد عن 180 يومًا، قبل تسجيل الوصول. |
Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | الحدّ الأدنى للمدة المحدّدة قبل تسجيل الوصول عند وجوب إجراء الحجز
كي يتم تطبيق العرض الترويجي إذا لم يتم تحديد قيمة الحقل أو قيمة هذه السمة
هي 0 ، ما مِن حد أدنى.
أنواع القيم الصالحة هي:
|
Promotions / HotelPromotions / Promotion / BookingWindow / @max | 0..1 | integer or duration | الحدّ الأقصى لعدد الأيام قبل تسجيل الوصول الذي يجب فيه إجراء الحجز
كي يتم تطبيق العرض الترويجي إذا لم يتم تحديد قيمة الحقل أو قيمة هذه السمة
هي 0 ، ما مِن حد أقصى.
أنواع القيم الصالحة هي:
|
Promotions / HotelPromotions / Promotion / Ceiling | 0..1 | Ceiling |
تحدد القيود المفروضة على القيمة القصوى التي يمكن ضبط السعر عليها بعد تطبيق العروض الترويجية يجب أن تحدد العروض الترويجية دائمًا في حال ضبط هذه السياسة، يتم عرض عدة عروض ترويجية
ويمكن أن تنطبق مثال: تحديد أسعار إقامة لمدة ليلة واحدة في فندق
فيما يلي ترتيب الحساب:
حقيقة أن 60 هو سقف إجمالي أكثر صرامة غير ذي صلة لأن صالحة فقط للترويج الخاص بها، ولا يجوز والذي يمتدّ إلى حزمة العروض الترويجية بالكامل |
Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float |
الحد الأقصى للمبلغ الذي يمكن ضبط سعر الإقامة في الليلة عليه بعد تطبيق الخصم. إذا تم تحديد عنصر تُطبَّق |
Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor |
تحدد القيود المفروضة على الحد الأدنى للقيمة التي يمكن ضبط السعر عليها بعد تطبيق العروض الترويجية يجب أن تحدد العروض الترويجية دائمًا لا يزال منطق في حال ضبط هذه السياسة، يتم عرض عدة عروض ترويجية
ويمكن أن تنطبق مثال: تحديد أسعار إقامة لمدة ليلة واحدة في فندق
فيما يلي ترتيب الحساب:
حقيقة أن 90 هو حد إجمالي أكثر صرامة ليس له صلة بالموضوع صالحة فقط للترويج الخاص بها، ولا يجوز الحد الذي يمتد إلى حزمة العروض الترويجية بالكامل |
Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float |
الحد الأدنى للمبلغ الذي يمكن ضبط سعر الإقامة في الليلة عليه بعد تطبيق الخصم. إذا تم تحديد عنصر تُطبَّق |
Promotions / HotelPromotions / Promotion / CheckinDates | 0..1 | CheckinDates | حاوية لنطاق زمني واحد أو أكثر تحدّد وقت تسجيل الوصول كي يتم تطبيق العرض الترويجي |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange | 1..20 | DateRange | نطاق زمني يحدّد وقت تسجيل الوصول لكي يسري العرض الترويجي النهج التحليلي. هذا العنصر غير مطلوب إذا حذفت عنصرًا واحدًا أو أكثر. أو العروض الترويجية. يمكنك أيضًا استخدام التنسيق YearlessDate.
|
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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني. الأحرف الصالحة هي:
أي تركيبة أحرف صالحة. |
Promotions / HotelPromotions / Promotion / CheckoutDates | 0..1 | CheckoutDates | حاوية لنطاق زمني واحد أو أكثر تحدّد وقت إتمام الدفع لكي يتم تطبيق العرض الترويجي. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange | 1..20 | DateRange | نطاق زمني يحدّد وقت إتمام الدفع لكي يسري العرض الترويجي النهج التحليلي. هذا العنصر غير مطلوب إذا كنت حذف واحد أو أكثر من العروض الترويجية يمكنك أيضًا استخدام التنسيق YearlessDate.
|
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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني. الأحرف الصالحة هي:
أي تركيبة أحرف صالحة. |
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 | واحد بالضبط من تحدّد هذه السمة الخصم الذي سيتم تطبيقه على هذا العرض الترويجي. |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float | واحد بالضبط من قيمة عشرية من 0 إلى 100 تحدّد النسبة المئوية للخصم
يتم تطبيقه على أمثلة:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float | واحد بالضبط من مبلغ ثابت يتم طرحه من حاصل طرح
أمثلة:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float | واحد بالضبط من خصم ثابت مطبَّق على كل من أمثلة:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float | واحد بالضبط من إذا تم تحديد أسعار الإقامة في الليلة بـ إذا كان أمثلة:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float | واحد بالضبط من إذا تم تحديد أسعار الإقامة في الليلة بـ إذا كان إذا تم تحديد أمثلة:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | لا يجب استخدام هذه السمة إلا مع
عدد الليالي التي يتم تطبيق الخصم عليها، بدءًا من الأقل تكلفة. يجب أن تكون القيمة عددًا صحيحًا من 1 إلى 99. إذا لم يتم تحديده، يسري الخصم على جميع الليالي. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights | 0..1 | FreeNights | تحدّد هذه السمة خصمًا على ليالي معيّنة من الإقامة عند الحدّ الأدنى للإقامة.
بالطول. السمات في العنصر الرئيسي Discount
غير مسموح بها في حال استخدام هذا العنصر. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights | 1 | integer | عدد الليالي المطلوبة لكي يتم تطبيق الخصم. على كل ينطبق الخصم على جزء منفصل من ليالي الإقامة. على سبيل المثال، لمدة 10 ليالٍ يتم فيها تحديد |
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 | ما إذا كان يمكن تطبيق الخصم على عدة ليالٍ إقامة
الأقسام. إذا كانت القيمة على سبيل المثال، إذا كان |
Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | يعيّن هذا العرض الترويجي ترتيبًا ويفعّله في اختيار الترتيب، حيث يتم فقط اختيار العرض الترويجي الأدنى ترتيب ليتم تطبيقه. القيم يجب أن تتراوح القيمة بين 1 و99 (ضمنًا). في حال مشاركة عروض ترويجية متعدّدة معًا ترتيب، يتم تحديد واحد وتطبيقه بشكل عشوائي. |
Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount | واحد بالضبط من تحدّد هذه السمة خصمًا يوميًا قد يتم تطبيقه على الليلة الواحدة.
البقاء. يتناقض ذلك مع السمة قد يحتوي كل موقع على مجموعة واحدة من العروض الترويجية التي تكون تُعد "الأفضل يوميًا". وهذا يعني أنه لكل ليلة من ليالي الإقامة، أغنية فردية "أفضل يوميًا" العرض الترويجي المؤهَّل الذي يحقّق يتم تطبيق خصم على تلك الليلة وقد يتم تطبيقه. قد لا يتم تحديد يمكن تحديد |
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float | واحد بالضبط من قيمة عشرية من 0 إلى 100 تحدّد النسبة المئوية للخصم
يتم تطبيقه على أمثلة:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float | واحد بالضبط من مبلغ ثابت يتم طرحه من مبلغ واحد
سعر الإقامة في الليلة: أمثلة:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float | واحد بالضبط من إذا تم تحديد أسعار الإقامة في الليلة بـ أمثلة:
|
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 |
حاوية لقاعدة سعر عضوية تؤدي إلى تشغيل واجهة مستخدم معيّنة معالجة للخصم المرتبط بها. يجب عدم تحديد هذا العنصر إلا
تم أيضًا تحديد |
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 | يمكن تطبيق عروض ترويجية متعددة على سعر واحد استنادًا إلى هذا الإعداد:
من بين التركيبات المسموح بها، تمثّل مجموعة العروض الترويجية التي تُنتج سيتم تطبيق الخصم الأكبر على السعر. |
Promotions / HotelPromotions / Promotion / StayDates | 0..1 | StayDates | حاوية نطاق زمني واحد أو أكثر تحدّد كيفية تحديد التي يسري عليها العرض الترويجي، مثلاً من أجل استيعاب خصومات موسمية. |
Promotions / HotelPromotions / Promotion / StayDates / @application | 1 | enum | تصف هذه السمة طريقة تطبيق العرض الترويجي. القيم الصالحة هي:
يجب تحديد هذه السمة دائمًا.
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange | 1..99 | DateRange | نطاق زمني يحدّد تواريخ تطبيق العرض الترويجي يمكنك أيضًا استخدام التنسيق YearlessDate.
|
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" يحدد أن أيام الأسبوع مسموح بها في النطاق الزمني. الأحرف الصالحة هي:
أي تركيبة أحرف صالحة. |
Promotions / HotelPromotions / Promotion / UserCountries | 0..1 | UserCountries | حاوية لإدراج المواقع الجغرافية للمستخدمين (البلدان) المؤهَّلة للترويج. في حال تحديده، لن يتم تضمين سوى المستخدمين المؤهَّلين في القائمة أن توفر السعر المخفض. إذا لم يتم تحديده، سيكون مؤهلاً أن يتوفّر للمستخدمين في أي بلد السعر المُخفَّض. |
Promotions / HotelPromotions / Promotion / UserCountries / @type | 0..1 | enum | تمثّل هذه السمة نوع مواصفات Userالبُلدان.
القيمتان الصالحتان هما في حال ضبط سمة "بلدان المستخدم إذا كانت قيمة Userالبُلدان وفي حال ترك سمة Userالبُلدان |
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 | يشير إلى أنّه تمّت معالجة رسالة "العروض الترويجية" بنجاح
بدون تحذيرات أو أخطاء أو إخفاقات.
قيمة |
PromotionsResponse / Issues | 0..1 | Issues | حدثت حاوية لمشكلة واحدة أو أكثر أثناء معالجة
رسالة ترويجية.
قيمة |
PromotionsResponse / Issues / Issue | 1..n | Issue | وصف للتحذير أو الخطأ أو الخطأ الذي حدث أثناء جارٍ معالجة رسالة العروض الترويجية يمكنك الاطّلاع على تفاصيل حول هذه المشاكل. بوصة رسائل خطأ حالة الخلاصة: |
PromotionsResponse / Issues / Issue / @code | 1 | integer | معرِّف المشكلة. |
PromotionsResponse / Issues / Issue / @status | 1 | enum | نوع المشكلة التي حدثت. القيمتان الصالحتان هما |
أمثلة
تم الإجراء بنجاح
في ما يلي ردّ على رسالة عروض ترويجية تمت معالجتها بنجاح.
<?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>