موارد ارتقا یافته

نمای کلی

این میانای برنامه‌سازی کاربردی به شما امکان می‌دهد تخفیف‌های احتمالی را مشخص کنید. از بین تبلیغات مشخص‌شده، Google تبلیغ یا مجموعه تبلیغات واجدشرایطی را اعمال می‌کند که منجر به پایین‌ترین قیمت شود. اگر به‌دنبال میانای برنامه‌سازی کاربردی‌ای هستید که از اصلاحات دلخواه نرخ پشتیبانی کند و بتواند درصورت برآورده شدن شرایط، قیمت را افزایش یا کاهش دهد، میانای برنامه‌سازی کاربردی اصلاحات نرخ ما را درنظر بگیرید. توجه داشته باشید که اگر هر دو 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, percentage_of_base, 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" percentage_of_base="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>

عناصر و مشخصه‌ها

پیام «تبلیغات» دارای عناصر و مشخصه‌های زیر است:

عنصر / @مشخصه رویدادها نوع شرح
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> در «فید فهرست هتل» مطابقت داشته باشد. «شناسه هتل» در مرکز هتل نیز فهرست شده است.
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> مشخص نشده باشد، همه تبلیغات برای دارایی حذف می‌شود.

اگر لازم است از بیش‌از ۹۹ تبلیغ استفاده کنید، با «مدیر فنی حساب» (TAM) تماس بگیرید.

Promotions / HotelPromotions / Promotion / @id 1 string شناسه یکتای عرضه ترویجی. حداکثر تعداد نویسه‌های مجاز ۴۰ است. نویسه‌های مجاز عبارتند از a-z،‏ A-Z،‏ 0-9، _ (زیرخط)، - (خط تیره)، و . (نقطه) را فشار دهید.
Promotions /HotelPromotions / Promotion / @action 0..1 enum

درصورت مشخص کردن، مقدار باید delete باشد. اگر مشخص نشده باشد و تبلیغی با همان 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 دوره زمانی‌ای را مشخص می‌کند که رزرو باید نسبت‌به تاریخ ورود (براساس منطقه زمانی ملک) انجام شود. برای مثال، بازه زمانی رزرو را می‌توان حداقل ۷ روز، اما نه بیشتر از ۱۸۰ روز، قبل‌از ورود به هتل تنظیم کرد.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration حداقل مدت‌زمان قبل‌از ورود که رزرو باید انجام شود تا تبلیغ اعمال شود. اگر این مقدار مشخص نشده باشد یا مقدار آن 0 باشد، حداقل وجود ندارد.

انواع مقدار معتبر عبارت‌اند از:

  • عدد صحیح: تعداد روزهای قبل‌از تاریخ ورود. برای مثال، مقدار 30 نشان می‌دهد که تبلیغ فقط برای رزروهایی اعمال می‌شود که حداقل ۳۰ روز قبل‌از تاریخ ورود انجام شده باشند.
  • مدت ISO 8601 (روز، ساعت، و دقیقه): تعداد روزها (و به‌صورت اختیاری ساعت/دقیقه) قبل‌از تاریخ ورود. برای مثال، مقدار P30D نشان می‌دهد که تبلیغ فقط برای رزروهایی اعمال می‌شود که حداقل ۳۰ روز قبل‌از تاریخ ورود انجام شده باشند. مقدار P30DT6H مستلزم رزرو در روز سی‌ام قبل‌از ورود یا قبل‌از ساعت ۱۸:۰۰ در آن روز است.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration حداکثر تعداد روزهای قبل‌از ورود که رزرو باید انجام شود تا عرضه ترویجی اعمال شود. اگر این مورد مشخص نشده باشد یا مقدار آن 0 باشد، حداکثری وجود ندارد.

انواع مقدار معتبر عبارت‌اند از:

  • عدد صحیح: تعداد روزهای قبل‌از تاریخ ورود. برای مثال، مقدار 30 نشان می‌دهد که تبلیغ فقط برای رزروهایی اعمال می‌شود که حداکثر ۳۰ روز قبل‌از تاریخ ورود انجام شده باشند.
  • مدت ISO 8601 (روز، ساعت، و دقیقه): تعداد روزها (و به‌صورت اختیاری ساعت/دقیقه) قبل‌از تاریخ ورود. برای مثال، مقدار P30D نشان می‌دهد که تبلیغ فقط برای رزروهایی اعمال می‌شود که حداکثر ۳۰ روز قبل‌از تاریخ ورود انجام شده باشند. مقدار P30DT6H مستلزم رزرو در ساعت ۱۸:۰۰ یا بعداز آن در سی‌امین روز قبل‌از ورود است.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

محدودیت‌های حداکثر مقداری را که می‌توان برای نرخ تعیین کرد پس‌از اعمال تبلیغات تعریف می‌کند.

عرضه‌های ترویجی همیشه باید <Discount> یا <BestDailyDiscount> را مشخص کنند، بنابراین برای ایجاد عرضه ترویجی‌ای که فقط <Ceiling> را اعمال می‌کند، یک گزینه این است که <Discount> را با percentage 0 تنظیم کنید.

اگر انباشتگی پیکربندی شده باشد، چندین تبلیغ با <Ceiling> می‌تواند برای یک اقامت اعمال شود. هر تبلیغ تخفیف خود را اعمال می‌کند و بلافاصله سقف آن اعمال می‌شود. مثال زیر نشان می‌دهد که چگونه هر سقف در محاسبه تبلیغ ویژه بعدی در پشته مشارکت می‌کند.

مثال:

قیمت‌گذاری اقامت ۱ شبه که در آن AmountBeforeTax ۱۰۰ است و دو تبلیغ روی هم قرار گرفته‌اند:

  1. تبلیغ با نوع پشته‌سازی base، fixed_amount ۲۵، و سقف amount_per_night ۶۰
  2. تبلیغ با نوع انباشتگی second، fixed_amount از ۲۵، و سقف amount_per_night از ۹۰

ترتیب محاسبه به این صورت است:

  1. ابتدا تبلیغ base اعمال می‌شود و AmountBeforeTax را به ۷۵ کاهش می‌دهد، اما سپس سقف آن را به ۶۰ کاهش می‌دهد.
  2. تبلیغ second، AmountBeforeTax را از ۶۰ به ۳۵ تخفیف می‌دهد. این مقدار کمتر از سقف ۹۰ است، بنابراین سقف دوم اعمال نمی‌شود. نرخ نهایی ۳۵ است.

این واقعیت که ۶۰ سقف کلی سخت‌گیرانه‌تری است بی‌ربط است زیرا فقط برای عرضه ترویجی خودش معتبر است، و هیچ سقف واحدی وجود ندارد که کل پشته عرضه ترویجی را دربرگیرد.

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

حداکثر مبلغی که نرخ شبانه می‌تواند پس‌از اعمال تخفیف روی آن تنظیم شود.

اگر عنصر <Floor> نیز مشخص شده باشد، این مقدار باید روی مقداری بزرگ‌تر یا مساوی با مشخصه amount_per_night در <Floor> تنظیم شود.

amount_per_night برای مالیات و کارمزد اعمال می‌شود وقتی که بااستفاده از AmountAfterTax در نرخ شبانه گنجانده شده باشند، اما نه برای مواردی که بااستفاده از TaxFeeInfo مشخص شده‌اند.

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

محدودیت‌های مربوط به حداقل مقداری را که می‌توان برای نرخ تعیین کرد پس‌از اعمال تبلیغات تعریف می‌کند.

عرضه‌های ترویجی همیشه باید <Discount> یا <BestDailyDiscount> را مشخص کنند، بنابراین برای ایجاد عرضه ترویجی‌ای که فقط <Floor> را اعمال می‌کند، یک گزینه این است که <Discount> را با percentage 0 تنظیم کنید.

منطق <Floor> همچنان برای تخفیف‌های <FreeNights> اعمال می‌شود، حتی اگر تخفیف 100% برای شب رایگان اعمال شده باشد.

اگر انباشتگی پیکربندی شده باشد، چندین تبلیغ با <Floor> می‌تواند برای یک اقامت اعمال شود. هر تبلیغ تخفیف خود را اعمال می‌کند و بلافاصله پس‌از آن حداقل قیمت آن اعمال می‌شود. مثال زیر نشان می‌دهد که چگونه هر کف قیمت در محاسبه تبلیغ ویژه بعدی در پشته مشارکت می‌کند.

مثال:

قیمت‌گذاری اقامت ۱ شبه که در آن AmountBeforeTax ۱۰۰ است و دو تبلیغ روی هم قرار گرفته‌اند:

  1. تبلیغ با نوع پشته‌سازی base، fixed_amount ۲۵، و کف amount_per_night ۹۰
  2. تبلیغ با نوع پشته‌سازی second، fixed_amount از ۲۵، و کف amount_per_night از ۶۰

ترتیب محاسبه به این صورت است:

  1. ابتدا تبلیغ base اعمال می‌شود و AmountBeforeTax را به ۷۵ کاهش می‌دهد، اما سپس کف قیمت آن را به ۹۰ افزایش می‌دهد.
  2. تبلیغ second، AmountBeforeTax را از ۹۰ به ۶۵ کاهش می‌دهد. این مقدار بالاتر از کف ۶۰ است، بنابراین کف دوم اعمال نمی‌شود. نرخ نهایی ۶۵ است.

این واقعیت که ۹۰ کف سخت‌گیرانه‌تری است بی‌ربط است زیرا فقط برای عرضه ترویجی خودش معتبر است و هیچ کف واحدی وجود ندارد که کل پشته عرضه ترویجی را دربرگیرد.

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

حداقل مبلغی که نرخ شبانه می‌تواند پس‌از اعمال تخفیف روی آن تنظیم شود.

اگر عنصر <Ceiling> نیز مشخص شده باشد، این مقدار باید کمتر یا مساوی با مشخصه amount_per_night در <Ceiling> تنظیم شود.

amount_per_night برای مالیات و کارمزد اعمال می‌شود وقتی که بااستفاده از AmountAfterTax در نرخ شبانه گنجانده شده باشند، اما نه برای مواردی که بااستفاده از TaxFeeInfo مشخص شده‌اند.

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، percentage_of_base، fixed_amount، fixed_amount_per_night، fixed_price، یا fixed_price_per_night لازم است.

مقدار اعشاری از ۰ تا ۱۰۰ که درصد تخفیف را مشخص می‌کند. این ویژگی برای AmountAfterTax (یا AmountBeforeTax اگر AmountAfterTax مشخص نشده باشد) اعمال می‌شود.

مثال‌ها:

  • اگر AmountAfterTax برابر با ۱۰۰ و percentage برابر با ۲۰ باشد، آنگاه

    نرخ تبلیغاتی = AmountAfterTax * (۱ - درصد تخفیف)

    ‫۸۰٫۰۰ = ۱۰۰ × (۱ - ۰٫۲)

  • اگر AmountBeforeTax برابر با ۱۰۰ باشد، percentage برابر با ۲۰ باشد و TaxFeeInfo مالیات را ۱۰ مشخص کند، دراین‌صورت

    نرخ تبلیغاتی = AmountBeforeTax * (۱ - درصد تخفیف) + مالیات

    ۹۰٫۰۰ = ۱۰۰ * (۱ - ۰٫۲) + ۱۰

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

دقیقاً یکی از percentage، percentage_of_base، fixed_amount، fixed_amount_per_night، fixed_price، یا fixed_price_per_night لازم است.

مقدار اعشاری از ۰ تا ۱۰۰ که درصد تخفیف پایه را مشخص می‌کند. مشابه percentage، بر AmountAfterTax (یا AmountBeforeTax اگر AmountAfterTax مشخص نشده باشد) اعمال می‌شود.

برخلاف percentage، این تخفیف همیشه به‌عنوان درصدی از نرخ‌های پایه محاسبه می‌شود، صرف‌نظر از تبلیغات قبلی که به‌ترتیب اعمال شده‌اند.

مثال:

  • فرض کنید دو تبلیغ داریم که به‌ترتیب برای یک شب اقامت با قیمت ۱۰۰ اعمال می‌شوند. اولی تخفیف درصدی معمولی ۱۰٪ است و دومی تخفیف درصدی پایه ۱۰٪ است. در این صورت، نرخ تخفیف‌دار ۸۰ خواهد بود زیرا هر دو تبلیغ ۱۰٪ تخفیف می‌دهند. توجه داشته باشید که اگر تبلیغ دوم نیز تخفیف درصدی معمولی باشد، نرخ تخفیف‌دار ۸۱ خواهد بود زیرا تبلیغ دوم ۱۰٪ از ۹۰ را تخفیف می‌دهد.
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

دقیقاً یکی از percentage، percentage_of_base، fixed_amount، fixed_amount_per_night، fixed_price، یا fixed_price_per_night لازم است.

مبلغ ثابتی که باید از مجموع AmountAfterTax نرخ شبانه (یا مجموع AmountBeforeTax نرخ شبانه اگر AmountAfterTax مشخص نشده باشد) کسر شود. فرض می‌شود که این هزینه با همان واحد پول نرخ‌های شبانه باشد. اگر این مقدار از مجموع نرخ‌های شبانه بیشتر باشد، مقدار حاصل صفر خواهد بود.

مثال‌ها:

  • اگر قیمت‌گذاری ما برای ۱ شب اقامت باشد که در آن AmountBeforeTax برابر با ۹۰، AmountAfterTax برابر با ۱۰۰، و fixed_amount برابر با ۲۰ باشد، دراین‌صورت

    نرخ تبلیغ = AmountAfterTax - تخفیف ثابت

    ‫۸۰.۰۰ = ۱۰۰ - ۲۰

  • اگر قیمت اقامت ۱ شبه را تعیین کنیم که در آن AmountBeforeTax برابر با ۱۰۰، fixed_amount برابر با ۲۰، و TaxFeeInfo مالیات را ۸٪ تعیین کرده باشد، دراین‌صورت

    نرخ تبلیغ = (AmountBeforeTax - تخفیف ثابت) * (1 + درصد مالیات)

    ‫۸۶٫۴۰ =‏ (۱۰۰ -‏ ۲۰) * ‏ ۱٫۰۸

  • اگر قیمت‌گذاری ما برای اقامت ۱ شبه باشد که AmountBeforeTax برابر با ۵۰، fixed_amount برابر با ۶۰، و TaxFeeInfo مالیات را ۱۰ مشخص کرده باشد، دراین‌صورت

    نرخ تبلیغ = (AmountBeforeTax - تخفیف ثابت) * مالیات

    ۱۰٫۰۰ = ۰ + ۱۰

  • اگر قیمت اقامت ۳ شبه را تعیین کنیم که در آن مقادیر AmountAfterTax برابر با ۱۰۰، ۱۱۰، و ۱۲۰ باشد؛ و fixed_amount برابر با ۱۵۰ باشد، دراین‌صورت

    نرخ تبلیغ = مجموع(AmountAfterTax) - (تخفیف ثابت)

    ‫۱۸۰٫۰۰ =‏ (۱۰۰ +‏ ۱۱۰ +‏ ۱۲۰) -‏ ۱۵۰

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

دقیقاً یکی از percentage، percentage_of_base، fixed_amount، fixed_amount_per_night، fixed_price، یا fixed_price_per_night لازم است.

تخفیف ثابتی که بر هریک از AmountAfterTax نرخ شبانه (یا ارزان‌ترین N اگر applied_nights مشخص شده باشد) اعمال می‌شود. اگر AmountAfterTax مشخص نشده باشد، برای AmountBeforeTax اعمال می‌شود. فرض می‌شود که این هزینه با همان واحد پول نرخ‌های شبانه باشد. اگر fixed_amount_per_night بیشتر از نرخ شبانه باشد، آن نرخ شبانه به صفر کاهش می‌یابد— تخفیف نمی‌تواند باعث شود نرخ شبانه منفی شود.

مثال‌ها:

  • اگر قیمت اقامت ۳ شبه را تعیین کنیم که AmountAfterTax مقادیر ۱۰۰، ۱۱۰، و ۱۲۰ باشد؛ و fixed_amount_per_night ۱۰ باشد، آنگاه

    نرخ تبلیغ = مجموع(AmountBeforeTax - تخفیف مقدار ثابت)

    ‫۳۰۰٫۰۰ = ((۱۰۰ - ۱۰) + (۱۱۰ - ۱۰) + (۱۲۰ - ۱۰))

  • اگر قیمت اقامت ۳ شبه را تعیین کنیم که در آن مقادیر AmountAfterTax برابر با ۱۰، ۵۰، و ۱۰۰ باشد؛ و fixed_amount_per_night برابر با ۲۰ باشد، دراین‌صورت

    نرخ تبلیغ = مجموع(AmountAfterTax - تخفیف مقدار ثابت)

    ‫۱۱۰٫۰۰ =‏ (۰ +‏ (۵۰ -‏ ۲۰) +‏ (۱۰۰ -‏ ۲۰))

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

دقیقاً یکی از percentage، percentage_of_base، fixed_amount، fixed_amount_per_night، fixed_price، یا fixed_price_per_night لازم است.

اگر نرخ‌های شبانه AmountAfterTax مشخص شده باشد، این گزینه قیمت اقامت را، با احتساب مالیات و کارمزد، روی مقدار مشخص‌شده تنظیم می‌کند. اگر AmountBeforeTax مشخص شده باشد، صرف‌نظر از اینکه AmountAfterTax مشخص شده باشد یا نه، این مقدار قیمت قبل‌از مالیات را برای اقامت روی مقدار مشخص‌شده تنظیم می‌کند. فرض می‌شود که این هزینه با همان واحد پول نرخ‌های شبانه باشد.

اگر AmountAfterTax برای نشان دادن درصد مالیات است، تنظیم قیمت ثابت برای AmountBeforeTax می‌تواند به مالیات و کارمزد نادرست منجر شود. به‌طور کلی، اکیداً توصیه می‌شود از TaxFeeInfo برای مشخص کردن مالیات و کارمزد ملک استفاده کنید.

مثال‌ها:

  • اگر قیمت‌گذاری ما برای ۱ شب اقامت باشد که در آن AmountBeforeTax برابر با ۹۰، AmountAfterTax برابر با ۱۰۰، و fixed_price برابر با ۸۰ باشد، نرخ تبلیغاتی ۸۰ خواهد بود.
  • اگر قیمت اقامت ۱ شبه را تعیین کنیم که AmountBeforeTax برابر با ۱۰۰، fixed_amount برابر با ۸۰، و TaxFeeInfo مالیات را ۸٪ تعیین کرده باشد، دراین‌صورت

    نرخ تبلیغاتی = قیمت ثابت * (۱ + درصد مالیات)

    ۸۶٫۴۰ = ۸۰ * ۱٫۰۸

  • اگر درحال قیمت‌گذاری اقامت ۳ شبه‌ای باشیم که مقادیر AmountAfterTax آن ۱۰۰، ۱۱۰، و ۱۲۰ باشد؛ و fixed_amount آن ۳۰۰ باشد، دراین‌صورت

    نرخ ترویج = ۳۰۰

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

دقیقاً یکی از percentage، percentage_of_base، fixed_amount، fixed_amount_per_night، fixed_price، یا fixed_price_per_night لازم است.

اگر نرخ‌های شبانه AmountAfterTax مشخص شده باشد، این گزینه قیمت هر شب اقامت را، بااحتساب مالیات و کارمزد، روی مقدار مشخص‌شده تنظیم می‌کند. اگر AmountBeforeTax مشخص شده باشد، صرف‌نظر از اینکه AmountAfterTax مشخص شده باشد یا نه، این مقدار قیمت قبل‌از مالیات را برای هر شب اقامت روی مقدار مشخص‌شده تنظیم می‌کند. فرض می‌شود که واحد پول آن با نرخ‌های شبانه یکسان است.

اگر AmountAfterTax برای نشان دادن درصد مالیات است، تعیین قیمت ثابت برای AmountBeforeTax می‌تواند منجر به مالیات و کارمزد نادرست شود. به‌طور کلی، اکیداً توصیه می‌شود از TaxFeeInfo برای مشخص کردن مالیات و کارمزد ملک استفاده کنید.

اگر applied_nights مشخص شده باشد، قیمت جدید برای ارزان‌ترین N شب اعمال می‌شود.

مثال‌ها:

  • اگر قیمت اقامت ۲ شبه را تعیین کنیم که در آن مقادیر AmountBeforeTax برابر با ۹۰، ۹۰؛ مقادیر AmountAfterTax برابر با ۱۰۰، ۱۰۰؛ و fixed_price برابر با ۸۰ باشد، نرخ تبلیغاتی ۸۰ + ۸۰ = ۱۶۰ خواهد بود.
  • اگر قیمت اقامت ۲ شبه را تعیین کنیم که در آن AmountBeforeTax برابر با ۱۰۰، ۱۰۰ باشد؛ fixed_amount برابر با ۸۰ باشد، و TaxFeeInfo مالیات ۸٪ را مشخص کند، دراین‌صورت نرخ تبلیغ برابر با ۱٫۰۸ * (۸۰ + ۸۰) = ۱۷۲٫۸ است.
  • اگر قیمت اقامت ۳ شبه را تعیین کنیم که در آن مقادیر AmountAfterTax برابر با ۱۰۰، ۱۱۰، و ۱۲۰ باشد؛ و fixed_amount برابر با ۱۱۰ باشد، نرخ تبلیغاتی ۱۱۰ × ۳ = ۳۳۰ خواهد بود.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

این فقط باید با percentage یا fixed_amount_per_night استفاده شود.

تعداد شب‌هایی که تخفیف برای آن‌ها اعمال می‌شود، از ارزان‌ترین شروع می‌شود. باید عدد صحیحی بین ۱ تا ۹۹ باشد. اگر مشخص نشده باشد، تخفیف برای همه شب‌ها اعمال می‌شود.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights تخفیفی را برای شب‌های خاصی از اقامت مشخص می‌کند که حداقل مدت اقامت رعایت شده باشد. اگر از این عنصر استفاده شود، مشخصه‌های عنصر ولی Discount مجاز نیستند.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

تعداد شب‌های لازم برای اعمال تخفیف. هر تخفیف بر بخش جداگانه‌ای از شب‌های اقامت اعمال می‌شود.

برای مثال، برای اقامت ۱۰ شبه که stay_nights ۴ است (و repeats درست است)، دو بخش شب اقامت وجود دارد: شب‌های اول تا چهارم و شب‌های پنجم تا هشتم؛ شب‌های نهم و دهم جزو بخش شب اقامت نیستند.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer تعداد شب‌های تخفیف‌دار در هر بخش از شب‌های اقامت.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float تخفیفی که برای شب‌های تخفیف اعمال می‌شود. اگر این مقدار 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 برابر با ۴ باشد و برنامه سفر ۱۰ شب باشد، دراین‌صورت اگر repeats برابر با true باشد، ۲ بخش تخفیف می‌گیرد (شب‌های ۱ تا ۴ و شب‌های ۵ تا ۸)؛ اما اگر repeats برابر با false باشد، فقط ۱ بخش تخفیف می‌گیرد (شب‌های ۱ تا ۴).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer رتبه‌ای به این تبلیغ ویژه اختصاص می‌دهد و آن را برای انتخاب رتبه‌بندی‌شده انتخاب می‌کند، که فقط تبلیغ ویژه با پایین‌ترین رتبه برای اعمال شدن انتخاب می‌شود. مقادیر باید بین ۱ تا ۹۹ باشد و می‌تواند این دو عدد را نیز دربر بگیرد. اگر چند تبلیغ ویژه رتبه یکسانی داشته باشند، یکی از آن‌ها به‌طور دلخواه انتخاب و اعمال می‌شود.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

دقیقاً یکی از Discount یا BestDailyDiscount باید مشخص شود.

تخفیف روزانه‌ای را مشخص می‌کند که ممکن است برای یک شب اقامت اعمال شود. این برخلاف Discount است که تخفیف‌ها را برای کل اقامت اعمال می‌کند.

هر دارایی ممکن است یک گروه از تبلیغات داشته باشد که «بهترین روزانه» درنظر گرفته می‌شوند. این یعنی برای هر شب اقامت، یک تبلیغ «بهترین روزانه» که واجدشرایط باشد و بیشترین تخفیف را برای آن شب ارائه دهد انتخاب می‌شود و ممکن است اعمال شود.

Stacking ممکن است با BestDailyDiscount مشخص شود. باید روی base یا none تنظیم شود. تخفیف‌های «بهترین روزانه» که بیشترین تخفیف را برای هر شب ارائه می‌دهند، ترکیب می‌شوند و به‌عنوان یک تخفیف اقامت واحد (یعنی Discount) درنظر گرفته می‌شوند، درحالی‌که نوع انباشتگی پیکربندی‌شده رعایت می‌شود. این تخفیف ترکیبی با سایر تبلیغات واجدشرایط <تخفیف> مقایسه می‌شود و می‌تواند با آن‌ها ترکیب شود تا بهترین تخفیف یا ترکیب تخفیف‌ها پیدا شود. یا ترکیب BestDailyDiscount یا یک Discount، هرکدام که قیمت کمتری داشته باشد، برای نوع انباشتگی base انتخاب و اعمال می‌شود.

StayDates را می‌توان با این نوع تخفیف مشخص کرد، اما application باید روی overlap تنظیم شود

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

دقیقاً یکی از percentage، fixed_amount، یا fixed_price لازم است.

مقدار اعشاری از ۰ تا ۱۰۰ که درصد تخفیف را مشخص می‌کند. این ویژگی برای AmountAfterTax (یا AmountBeforeTax اگر AmountAfterTax مشخص نشده باشد) اعمال می‌شود.

مثال‌ها:

  • اگر AmountAfterTax برای یک شب اقامت ۱۰۰ و percentage ۲۰ باشد، دراین‌صورت

    نرخ تبلیغاتی = AmountAfterTax * (1 - درصد تخفیف)

    ۸۰٫۰۰ = ۱۰۰ × (۱ - ۰٫۲)

  • اگر AmountBeforeTax برای یک شب اقامت ۱۰۰ باشد، percentage ۲۰ باشد و TaxFeeInfo مالیات را ۱۰ مشخص کند، در این صورت

    نرخ تبلیغاتی = AmountBeforeTax * (۱ - درصد تخفیف) + مالیات

    ۹۰٫۰۰ = ۱۰۰ * (۱ - ۰٫۲) + ۱۰

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

دقیقاً یکی از percentage، fixed_amount، یا fixed_price لازم است.

مبلغ ثابتی که باید از نرخ شبانه AmountAfterTax (یا نرخ شبانه AmountBeforeTax اگر AmountAfterTax مشخص نشده باشد) کسر شود. فرض می‌شود که این هزینه با همان واحد پول نرخ‌های شبانه باشد. اگر این مقدار از مجموع نرخ‌های شبانه بیشتر باشد، مقدار حاصل صفر خواهد بود.

مثال‌ها:

  • اگر AmountBeforeTax برای یک شب ۹۰، AmountAfterTax ۱۰۰، و fixed_amount ۲۰ باشد، دراین‌صورت

    نرخ تبلیغ = AmountAfterTax - تخفیف ثابت

    ‫۸۰.۰۰ = ۱۰۰ - ۲۰

  • اگر AmountBeforeTax برای یک شب ۱۰۰ باشد، fixed_amount برابر با ۲۰ باشد، و TaxFeeInfo مالیات را ٪۸ مشخص کند، دراین‌صورت

    نرخ تبلیغ = (AmountBeforeTax - تخفیف ثابت) * (1 + درصد مالیات)

    ‫۸۶٫۴۰ =‏ (۱۰۰ -‏ ۲۰) * ‏ ۱٫۰۸

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

دقیقاً یکی از percentage، fixed_amount، یا fixed_price لازم است.

اگر نرخ‌های شبانه AmountAfterTax مشخص شده باشد، این گزینه قیمت اقامت شبانه را، با احتساب مالیات و کارمزد، روی مقدار مشخص‌شده تنظیم می‌کند. اگر AmountBeforeTax مشخص شده باشد، صرف‌نظر از اینکه AmountAfterTax مشخص شده باشد یا نه، این مقدار قیمت قبل‌از مالیات را برای اقامت روی مقدار مشخص‌شده تنظیم می‌کند. فرض می‌شود که این هزینه با همان واحد پول نرخ‌های شبانه باشد.

مثال‌ها:

  • اگر AmountBeforeTax برای یک شب ۹۰، AmountAfterTax ۱۰۰، و fixed_price ۸۰ باشد، نرخ تبلیغاتی ۸۰ است.
  • اگر AmountBeforeTax برای یک شب ۱۰۰ باشد، fixed_amount ۸۰ باشد، و TaxFeeInfo مالیات را ٪۸ مشخص کند، دراین‌صورت

    نرخ تبلیغاتی = قیمت ثابت * (۱ + درصد مالیات)

    ۸۶٫۴۰ = ۸۰ * ۱٫۰۸

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> مطابقت دارد. حداکثر تعداد نویسه مجاز ۵۰ است.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes محتوی برای فهرست انواع اتاق‌هایی که تبلیغ ویژه برای آن‌ها اعمال می‌شود. تبلیغ ویژه برای هر <RoomType> مشخص‌شده اعمال می‌شود. اگر <RoomTypes> مشخص نشده باشد، تبلیغ برای همه اتاق‌ها اعمال می‌شود.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType نوع اتاق را مشخص می‌کند. نوع اتاق در عنصر <RoomData> در پیام «تراکنش (داده‌های ملک)» تعریف می‌شود و بااستفاده از مقدار <RoomID> به آن ارجاع داده می‌شود. (مقدار <RoomID> آن نیز توسط مشخصه InvTypeCode در پیام‌های OTA_HotelRateAmountNotifRQ ارجاع داده می‌شود.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string شناسه یکتای موجودی (نوع اتاق). این مقدار در پیام «تراکنش» (داده‌های ملک) به <RoomID> نگاشت می‌شود. حداکثر تعداد نویسه مجاز ۵۰ است.
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"} نشان داد.

اگر می‌خواهید محدوده StayDates را تنظیم کنید تا تبلیغ در روزهای خاصی از هفته مجاز باشد، باید تاریخ start را به‌عنوان تاریخ فعلی بدون end تنظیم کنید تا تبلیغ منقضی نشود.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate تاریخ شروع (براساس منطقه زمانی دارایی)، شامل، از محدوده تاریخ. این تاریخ باید قبل‌از تاریخ end یا همان تاریخ باشد. اگر start مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ شروع عملاً نامحدود است.

اگر مقدار end ارائه نشده است، باید مقدار start را مشخص کنید.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate تاریخ پایان (براساس منطقه زمانی دارایی)، شامل، محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعداز آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ از تاریخ start به بعد عملاً نامحدود است.

اگر مقدار 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 نوع مشخصات UserCountries.

مقادیر معتبر include و exclude است.

اگر UserCountries type به‌صورت include تنظیم شده باشد، تبلیغ برای کاربران کشورهای فهرست‌شده اعمال می‌شود.

اگر UserCountries type برابر با exclude باشد، تبلیغ برای کاربران خارج از کشورهای فهرست‌شده اعمال می‌شود.

اگر UserCountries type تنظیم نشده باشد، به‌عنوان include درنظر گرفته می‌شود و تبلیغ برای کاربران کشورهای فهرست‌شده اعمال می‌شود.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country یک کشور را که کاربران آن واجدشرایط تبلیغ هستند تعریف می‌کند.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string کد کشور CLDR، مثل DE یا FR. توجه داشته باشید که برای برخی کشورها، کد کشور CLDR با کد کشور ISO دوحرفی یکسان نیست. همچنین، کدهای منطقه CLDR پشتیبانی نمی‌شوند.

مثال‌ها

حد مجاز برای هر دارایی ۵۰۰ تبلیغ است. برای برداشتن تبلیغات از دارایی، به نمونه «حذف یک تبلیغ» مراجعه کنید.

پیام پایه

مثال زیر پیام 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>

۳ نوع مختلف چیدن

مثال زیر موردی را نشان می‌دهد که در آن سه تبلیغ مختلف اعمال می‌شود (base، second، any). توجه داشته باشید که تبلیغ none اعمال نمی‌شود زیرا تبلیغات دیگر تخفیف بهتری ارائه می‌دهند. اگر قیمت اصلی ۱۰۰ دلار باشد، قیمت تخفیف‌خورده ۷۲٫۹۰ دلار خواهد بود.

<?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 استفاده می‌شود زیرا ترکیب عرضه‌های ترویجی دیگر تخفیف کمتری ارائه می‌دهد. اگر قیمت اصلی ۱۰۰ دلار باشد، قیمت تخفیف‌خورده ۷۵ دلار خواهد بود.

<?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 استفاده می‌شود. این محدودیت پنجره رزرو مستلزم رزرو در ساعت ۱۸:۰۰ یا قبل‌از آن در روز قبل‌از ورود، و در ساعت ۱۲:۰۰ یا بعداز آن در روز دوم قبل‌از ورود است.

<?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>


Booking Dates DateTime Bounds

مثال زیر موردی را نشان می‌دهد که در آن عنصر BookingDates با مشخصه‌های start و end به‌عنوان انواع DateTime استفاده می‌شود. این محدودیت تاریخ رزرو مستلزم این است که رزرو بین ساعت ۰۶:۳۰ در ۲۰۲۰-۰۷-۰۱ و ۱۸:۴۵ در ۲۰۲۰-۰۷-۰۲ انجام شود.

<?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 را بدون سال دارد. در این مثال، تبلیغ برای تاریخ‌های ورود بین ۱۲/۲۹ و ۱/۲، صرف‌نظر از سال، اعمال می‌شود. محدوده تاریخ بدون سال که از مرز سال جدید عبور می‌کند نامعتبر است، بنابراین DateRange به‌صورت دو محدوده تاریخ مجاور بیان می‌شود.

<?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

مثال زیر برای هر چهار شب اقامت در محدوده مشخص‌شده تاریخ‌های رزرو، دو شب را با ۵۰٪ تخفیف ارائه می‌دهد. برای برنامه سفر ده شبه، درمجموع چهار شب ۵۰٪ تخفیف می‌گیرد.

<?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>

مثال بعدی برای هر سه شب اقامت در محدوده تاریخ‌های اقامت مشخص‌شده، یک شب را ۵۰٪ تخفیف می‌دهد. فقط شب‌های هم‌پوشان اقامت برای واجدشرایط شدن برای تخفیف محاسبه می‌شود. برای برنامه سفر زیر با ورود در تاریخ ۲۰۲۲/۰۱/۰۱ و خروج در تاریخ ۲۰۲۲/۰۱/۰۷، شب‌های اقامت واجدشرایط و تخفیف‌ها به‌صورت زیر اعمال می‌شود.

  • 2022-01-01 (stay)
  • ‫۲۰۲۲-۰۱-۰۲ (اقامت)
  • 2022-01-03
  • ‫۲۰۲۲-۰۱-۰۴ (تخفیف‌دار)
  • 2022-01-05 (stay)
  • ‫۲۰۲۲-۰۱-۰۶ (اقامت)
<?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>


انتخاب رتبه‌بندی‌شده

مثال زیر دو تخفیف ارائه می‌دهد، یکی با ۲۰٪ تخفیف و دیگری با ۱۵٪ تخفیف. درطول ارزیابی، فقط تخفیف ۱۵٪ اعمال می‌شود زیرا رتبه پایین‌تری دارد.

<?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>

اقامت دو شبه از ۳۰ آوریل ۲۰۲۳ تا ۲ مه ۲۰۲۳ را درنظر بگیرید برای محاسبه، ابتدا ترکیبی از بهترین تخفیف‌های روزانه که بیشترین تخفیف را ارائه می‌دهد پیدا می‌شود.

برای شب اول، تبلیغ «عمومی» تنها مبلغ واجدشرایط با تخفیف ثابت ۲۰ است.

برای شب دوم، تبلیغ «مه» تخفیف بیشتری نسبت‌به تخفیف «عمومی» ارائه می‌دهد. بنابراین، وقتی «مه» انتخاب می‌شود، مبلغ تخفیف ثابت ۵۰ است.

سپس برای اقامت، تبلیغ «fiesta» به ۵ در هر شب یا ۱۰ در مجموع تخفیف می‌یابد. می‌تواند با ترکیبی از بهترین تخفیف‌های روزانه انباشته شود زیرا نوع انباشتگی «fiesta» روی any تنظیم شده است. اگر روی base تنظیم شده باشد، فقط ترکیب بهترین تخفیف‌های روزانه یا تخفیف «جشنواره» اعمال می‌شود. برای اطلاعات بیشتر، شرح Stacking را ببینید.

`درمجموع، قیمت اقامت شامل تخفیف مبلغ ثابت ۲۰ + ۵۰ + ۱۰ = ۸۰ می‌شود.

پاسخ‌ها

نحو

پیام 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 دارای عناصر و مشخصه‌های زیر است:

عنصر / @مشخصه رویدادها نوع شرح
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>