RateModifications

نمای کلی

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

درخواست‌ها

نحو

پیام RateModifications از نحو زیر استفاده می‌کند:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

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

پیام RateModifications دارای عناصر و مشخصه‌های زیر است:

عنصر / @مشخصه رویدادها نوع شرح
RateModifications 1 Complex element عنصر ریشه پیام اصلاح نرخ.
RateModifications / @partner 1 string حساب شریک برای این پیام. این مقدار رشته همان مقدار «کلید شریک» است که در صفحه تنظیمات حساب در Hotel Center فهرست شده است.

توجه: اگر باطنه‌ای دارید که فیدهای چندین حساب را ارائه می‌دهد، این مقدار باید با مقدار مشخصه ID مشخص‌شده در عنصر <RequestorID> پیام‌های <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> شما برای همان حساب مطابقت داشته باشد.

RateModifications / @id 1 string شناسه یکتای این پیام درخواست. این مقدار در پیام پاسخ برگردانده می‌شود. نویسه‌های مجاز عبارت‌اند از a-z،‏ A-Z،‏ 0-9،‏ _ (زیرخط)، و - (خط تیره).
RateModifications / @timestamp 1 DateTime تاریخ و زمان ایجاد این پیام.
RateModifications / HotelRateModifications 0..n HotelRateModifications

اصلاحات نرخ برای یک ملک. هر اصلاح نرخ برای یک دارایی اعمال می‌شود.

توجه: اگر چند اصلاح نرخ بتواند بر یک نرخ اعمال شود، همه اصلاحات اعمال می‌شود. ترتیب خاصی تضمین نمی‌شود.

RateModifications / HotelRateModifications / @hotel_id 1 string شناسه یکتای دارایی. این مقدار باید با «شناسه هتل» مشخص‌شده بااستفاده از <id> در عنصر <listing> در «فید فهرست هتل» مطابقت داشته باشد. «شناسه هتل» در مرکز هتل نیز فهرست شده است.
RateModifications / HotelRateModifications / @action 0..1 enum

اگر action مشخص نشده باشد، اصلاحات در این عنصر برای این هتل اضافه یا به‌روز می‌شود. اگر action="overlay" مشخص شده باشد، همه اصلاحات تعریف‌شده قبلی برای این هتل ابتدا حذف می‌شوند. سپس، تغییرات مشخص‌شده در اینجا نوشته می‌شود. اگر از action="overlay" استفاده شود و هیچ اصلاحیه‌ای در این عنصر مشخص نشده باشد، همه اصلاحیه‌های این هتل حذف می‌شود.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

یک اصلاح نرخ برای یک ملک.

توجه:اشکال‌زدایی اصلاحات نرخ دشوار است و توصیه می‌کنیم به‌ندرت از آن‌ها استفاده کنید. برای موارد استفاده‌ای که به بیش‌از ۲۰۰ اصلاح نرخ نیاز دارند، با «مدیر فنی حساب» (TAM) تماس بگیرید.

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

اگر مشخص نشده باشد و اصلاح نرخ با همان id ذخیره نشده باشد، این اصلاح نرخ ذخیره می‌شود. درغیراین‌صورت، اگر مشخص نشده باشد و اصلاح نرخ با همان id ذخیره شده باشد، اصلاح نرخ موجود به‌روز می‌شود.

درصورت مشخص کردن، مقدار باید "delete" باشد. اگر "delete" مشخص شده باشد، اصلاح نرخ ذخیره‌شده با همان id حذف می‌شود. هنگام استفاده از "delete"، هیچ عنصر فرزندی را در <ItineraryRateModification> اضافه نکنید. همچنین، "delete" در ترکیب با <HotelRateModifications action="overlay"/> مجاز نیست.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates ظرفی برای یک یا چند محدوده تاریخ که مشخص می‌کند رزرو چه زمانی باید انجام شود تا اصلاح نرخ اعمال شود.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange محدوده تاریخی که مشخص می‌کند رزرو چه زمانی باید انجام شود تا اصلاح نرخ اعمال شود.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date تاریخ شروع (براساس منطقه زمانی دارایی)، شامل، از محدوده تاریخ. این تاریخ باید قبل‌از تاریخ end یا همان تاریخ باشد. اگر start مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ شروع عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date تاریخ پایان (براساس منطقه زمانی دارایی)، شامل، محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعداز آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ پایان عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

روزهای هفته که در محدوده تاریخ مجاز است. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز است. هر نویسه در رشته یک روز را مشخص می‌کند. برای مثال، «MTWHF» مشخص می‌کند که روزهای هفته در محدوده تاریخ مجاز است.

نویسه‌های معتبر عبارتند از:

  • M برای دوشنبه
  • T برای سه‌شنبه
  • W برای چهارشنبه
  • ‫H برای پنجشنبه
  • F برای جمعه
  • S برای شنبه
  • ‫U برای یکشنبه

هر ترکیبی از نویسه‌ها معتبر است.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow دوره زمانی‌ای را مشخص می‌کند که رزرو باید نسبت‌به تاریخ ورود (براساس منطقه زمانی ملک) انجام شود. برای مثال، بازه زمانی رزرو را می‌توان حداقل ۷ روز، اما نه بیشتر از ۱۸۰ روز، قبل‌از ورود به هتل تنظیم کرد.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer حداقل تعداد روزهای قبل‌از ورود که رزرو باید انجام شود تا اصلاح نرخ اعمال شود. اگر این مورد مشخص نشده باشد، حداقلی وجود ندارد.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer حداکثر تعداد روزهای قبل‌از ورود به هتل که رزرو باید انجام شود تا اصلاح نرخ اعمال شود. اگر این مقدار مشخص نشده باشد، حداکثری وجود ندارد.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates محفظه‌ای برای یک یا چند محدوده تاریخ که مشخص می‌کند چه زمانی باید ثبت ورود انجام شود تا اصلاح نرخ اعمال شود.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange محدوده تاریخی که مشخص می‌کند برای اعمال اصلاح نرخ، ورود باید چه زمانی انجام شود. اگر یک یا چند اصلاح نرخ را حذف می‌کنید، این عنصر لازم نیست.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date تاریخ شروع (براساس منطقه زمانی دارایی)، شامل، از محدوده تاریخ. این تاریخ باید قبل‌از تاریخ end یا همان تاریخ باشد. اگر start مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ شروع عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date تاریخ پایان (براساس منطقه زمانی دارایی)، شامل، محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعداز آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ پایان عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

روزهای هفته که در محدوده تاریخ مجاز است. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز است. هر نویسه در رشته یک روز را مشخص می‌کند. برای مثال، «MTWHF» مشخص می‌کند که روزهای هفته در محدوده تاریخ مجاز است.

نویسه‌های معتبر عبارتند از:

  • M برای دوشنبه
  • T برای سه‌شنبه
  • W برای چهارشنبه
  • ‫H برای پنجشنبه
  • F برای جمعه
  • S برای شنبه
  • ‫U برای یکشنبه

هر ترکیبی از نویسه‌ها معتبر است.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates محفظه‌ای برای یک یا چند محدوده تاریخ که مشخص می‌کند چه زمانی باید تصفیه‌حساب انجام شود تا اصلاح نرخ اعمال شود.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange محدوده تاریخی که مشخص می‌کند برای اعمال اصلاح نرخ، خروج باید چه زمانی انجام شود. اگر یک یا چند اصلاح نرخ را حذف می‌کنید، این عنصر لازم نیست.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date تاریخ شروع (براساس منطقه زمانی دارایی)، شامل، از محدوده تاریخ. این تاریخ باید قبل‌از تاریخ end یا همان تاریخ باشد. اگر start مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ شروع عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date تاریخ پایان (براساس منطقه زمانی دارایی)، شامل، محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعداز آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ پایان عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

روزهای هفته که در محدوده تاریخ مجاز است. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز است. هر نویسه در رشته یک روز را مشخص می‌کند. برای مثال، «MTWHF» مشخص می‌کند که روزهای هفته در محدوده تاریخ مجاز است.

نویسه‌های معتبر عبارتند از:

  • M برای دوشنبه
  • T برای سه‌شنبه
  • W برای چهارشنبه
  • ‫H برای پنجشنبه
  • F برای جمعه
  • S برای شنبه
  • ‫U برای یکشنبه

هر ترکیبی از نویسه‌ها معتبر است.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices محفظه برای فهرست کردن دستگاه‌های کاربر که واجدشرایط اصلاح نرخ هستند. اگر مشخص شده باشد، اصلاح نرخ فقط درصورتی اعمال می‌شود که کاربر با یکی از دستگاه‌های فهرست‌شده مطابقت داشته باشد. اگر مشخص نشده باشد، این امر اعمال اصلاح نرخ را محدود نمی‌کند.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device یک نوع دستگاه کاربر را که واجدشرایط اصلاح نرخ است تعریف می‌کند.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum نوعی دستگاه. مقدار باید desktop، tablet، یا mobile باشد.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

کنش(هایی) که درصورت برآورده شدن همه شرایط مشخص‌شده بر نرخ اعمال می‌شود.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment نرخ را با ضرب کردن AmountBeforeTax و AmountAfterTax در ضریب مشخص‌شده تغییر می‌دهد
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float AmountBeforeTax و AmountAfterTax هر دو در این مقدار ضرب می‌شوند.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule نرخ را با اعمال شناسه قانون مربوط به نرخ مشخص‌شده بر آن اصلاح می‌کند.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string این شناسه نرخی را با تعریفی در فایل تعریف قانون مربوط به نرخ شما مطابقت می‌دهد. توجه:
  • حد نویسه برای این فیلد ۴۰ نویسه است.
  • هر نرخ فقط می‌تواند با یک قانون نرخ مرتبط باشد.
  • اگر چندین اصلاحیه وجود داشته باشد که شناسه قانون مربوط به نرخ را اعمال کند، شناسه قانون مربوط به نرخ که ازنظر واژه‌نگاری کوچک‌ترین است به نرخ اختصاص داده می‌شود.
  • اگر این شناسه با قانون نرخ در فایل تعریف قانون نرخ شما مطابقت نداشته باشد، واجدشرایط درنظر گرفته نمی‌شود.
برای اطلاعات درباره انواع مختلف پردازش واسط کاربر نرخ خصوصی، این مقاله را ببینید.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable امکان استرداد مبلغ نرخ را به مقدار مشخص‌شده بازنویسی می‌کند.

هنگام تنظیم مشخصه‌ها، به موارد زیر توجه کنید:

  • این کنش اصلاحی تنظیم «قابل‌استرداد» نرخ واجدشرایط را به‌طور کامل بازنویسی می‌کند، نه فقط فیلدهای پرشده را.
  • اگر available یا refundable_until_days تنظیم نشده باشد، نرخ به‌عنوان قابل‌استرداد نمایش داده نمی‌شود.
  • اگر available برابر با 0 یا false باشد، مشخصه‌های دیگر نادیده گرفته می‌شوند. نرخ به‌عنوان قابل‌استرداد نمایش داده نمی‌شود، حتی اگر یکی یا هر دو مشخصه دیگر تنظیم شده باشد.
  • تنظیم refundable_until_time توصیه می‌شود؛ اگر تنظیم نشود، از زودترین زمان (نیمه‌شب) استفاده می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (الزامی) روی 1 یا true تنظیم کنید تا نشان دهد آیا نرخ اجازه استرداد کامل را می‌دهد یا نه؛ درغیراین‌صورت، روی 0 یا false تنظیم کنید.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (اگر available true باشد الزامی است) تعداد روزهای قبل‌از ورود را که می‌توان درخواست استرداد کامل مبلغ کرد مشخص می‌کند. مقدار refundable_until_days باید عدد صحیحی بین ۰ تا ۳۳۰ باشد و می‌تواند این دو عدد را نیز دربر بگیرد.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (توصیه می‌شود اگر available true باشد) آخرین زمان روز را به وقت محلی هتل مشخص می‌کند که درخواست استرداد کامل مبلغ پذیرفته می‌شود. این را می‌توان با refundable_until_days ترکیب کرد تا مثلاً مشخص شود که «استرداد مبلغ تا ساعت ۴:۰۰ بعدازظهر دو روز قبل‌از ورود به هتل امکان‌پذیر است». اگر refundable_until_time تنظیم نشده باشد، مقدار به‌طور پیش‌فرض روی نیمه‌شب تنظیم می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability دردسترس بودن نرخ را با مقدار مشخص‌شده بازنویسی می‌کند. فقط می‌توانیم نرخ را روی unavailable تنظیم کنیم.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum اگر status="unavailable"، با نرخ به‌گونه‌ای رفتار می‌شود که گویی دردسترس نیست، صرف‌نظر از اینکه قیمت معتبری برای آن وجود داشته باشد یا نه.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay حدود مدت اقامت را که این اصلاح نرخ می‌تواند در آن اعمال شود تعریف می‌کند. وقتی مدت اقامت خارج از حدود کمینه و بیشینه باشد، اصلاح نرخ اعمال نمی‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer حداقل تعداد شب‌های مجاز در اقامت برای اعمال اصلاح نرخ. اگر این مورد مشخص نشده باشد، حداقل وجود ندارد.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer حداکثر تعداد شب‌های مجاز برای اقامت تا اصلاح نرخ اعمال شود. اگر این مقدار مشخص نشده باشد، حداکثری وجود ندارد.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount حداقل مجموع نرخ‌های روزانه اتاق را مشخص می‌کند (بااستفاده از مقدار بزرگ‌تر AmountBeforeTax یا AmountAfterTax) که باید از آن فراتر رفت تا اصلاح نرخ اعمال شود.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer مقداری که باید از آن فراتر رفت تا اصلاح نرخ اعمال شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans محتوی برای فهرست طرح‌های نرخی که اصلاح نرخ بر آن‌ها اعمال می‌شود. اگر <RatePlans> مشخص نشده باشد، اصلاح نرخ برای همه طرح‌های نرخ اعمال می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan طرح قیمت را مشخص می‌کند. طرح نرخ براساس ترکیبی از بسته، نرخ‌ها، و دردسترس بودن تعریف می‌شود، همان‌طور که در پیام‌های «تراکنش» (داده‌های ملک)، OTA_HotelRateAmountNotifRQ، و OTA_HotelAvailNotifRQ تعریف شده است و با PackageID شناسایی می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string شناسه یکتای طرح نرخ. این مقدار با مقدار PackageID در <PackageData> در پیام «تراکنش» (داده‌های ملک) و با مشخصه RatePlanCode در <StatusApplicationControl> در هر دو پیام <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> مطابقت دارد. حداکثر تعداد نویسه مجاز ۵۰ است.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes محتوی برای فهرست انواع اتاق‌هایی که اصلاح نرخ بر آن‌ها اعمال می‌شود. اصلاح نرخ برای هر <RoomType> مشخص‌شده اعمال می‌شود. اگر <RoomTypes> مشخص نشده باشد، اصلاح نرخ برای همه اتاق‌ها اعمال می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType نوع اتاق را مشخص می‌کند. نوع اتاق در عنصر <RoomData> در پیام «تراکنش (داده‌های ملک)» تعریف می‌شود و بااستفاده از مقدار <RoomID> به آن ارجاع داده می‌شود. (مقدار <RoomID> آن نیز توسط مشخصه InvTypeCode در پیام‌های OTA_HotelRateAmountNotifRQ ارجاع داده می‌شود.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string شناسه یکتای موجودی (نوع اتاق). این مقدار در پیام «تراکنش» (داده‌های ملک) به <RoomID> نگاشت می‌شود. حداکثر تعداد نویسه مجاز ۵۰ است.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates محفظه‌ای برای یک یا چند محدوده تاریخ که تعیین می‌کند اصلاح نرخ چگونه اعمال می‌شود، مثلاً برای تطبیق با قیمت‌گذاری فصلی.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

توضیح می‌دهد که اصلاح نرخ چگونه باید اعمال شود.

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

  • all: اگر همه تاریخ‌های برنامه سفر با تاریخ‌های اقامت هم‌پوشانی داشته باشد، اصلاح نرخ را برای هر شب در برنامه سفر اعمال می‌کند.
  • any: اگر هر تاریخی در برنامه سفر با تاریخی در محدوده تاریخ‌های اقامت هم‌پوشانی داشته باشد، اصلاح نرخ را برای همه شب‌های برنامه سفر اعمال می‌کند.

این مشخصه باید همیشه مشخص شود.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange محدوده تاریخی که تاریخ‌های اعمال اصلاح نرخ را مشخص می‌کند.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date تاریخ شروع (براساس منطقه زمانی دارایی)، شامل، از محدوده تاریخ. این تاریخ باید قبل‌از تاریخ end یا همان تاریخ باشد. اگر start مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ شروع عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date تاریخ پایان (براساس منطقه زمانی دارایی)، شامل، محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعداز آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ ازنظر تاریخ پایان عملاً نامحدود است.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

روزهای هفته که در محدوده تاریخ مجاز است. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز است. هر نویسه در رشته یک روز را مشخص می‌کند. برای مثال، «MTWHF» مشخص می‌کند که روزهای هفته در محدوده تاریخ مجاز است.

نویسه‌های معتبر عبارتند از:

  • M برای دوشنبه
  • T برای سه‌شنبه
  • W برای چهارشنبه
  • ‫H برای پنجشنبه
  • F برای جمعه
  • S برای شنبه
  • ‫U برای یکشنبه

هر ترکیب نویسه‌ای معتبر است.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries اگر مشخص شده باشد، اصلاح نرخ فقط درصورتی اعمال می‌شود که کاربر در یکی از کشورهای مشخص‌شده ساکن باشد. اگر مشخص نشده باشد، اصلاح نرخ بدون درنظر گرفتن مکان کاربر اعمال می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum نوع مشخصات UserCountries.

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country کشور مجاز کاربر را برای اصلاح نرخ مشخص می‌کند.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string کد کشور CLDR، مثل DE یا FR. توجه داشته باشید که برای برخی کشورها، کد کشور CLDR با کد کشور ISO دوحرفی یکسان نیست. همچنین، کدهای منطقه CLDR پشتیبانی نمی‌شوند.

مثال‌ها

پیام پایه

مثال زیر پیام RateModifications` پایه را نشان می‌دهد:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


حذف یک تغییر نرخ

مثال زیر نشان می‌دهد که چگونه یک اصلاح نرخ را برای یک ملک حذف کنید:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

حذف همه تغییرات نرخ

مثال زیر نشان می‌دهد که چگونه همه اصلاحات نرخ را برای یک دارایی حذف کنید:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


هم‌پوشانی همه اصلاحات نرخ

مثال زیر نشان می‌دهد که چگونه می‌توان <HotelRateModifications> را برای دارایی با یک یا چند اصلاح نرخ جدید هم‌پوشانی کرد. وقتی action="overlay"، همه اصلاحات نرخ ذخیره‌شده قبل‌از ذخیره اصلاحات نرخ مشخص‌شده در پیام فعلی حذف می‌شوند:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

چندین کنش اصلاحی

مثال زیر نشان می‌دهد که چگونه چندین کنش اصلاحی را به‌طور هم‌زمان انجام دهید:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


خاموش کردن طرح نرخ برای کشورهای کاربر

مثال زیر نشان می‌دهد که چگونه یک طرح نرخ را فقط به کاربران ژاپنی (JP) محدود کنید:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


پاسخ‌ها

نحو

پیام RateModificationsResponse از نحو زیر استفاده می‌کند:

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

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

پیام RateModificationsResponse دارای عناصر و مشخصه‌های زیر است:

عنصر / @مشخصه رویدادها نوع شرح
RateModifications 1 Complex element عنصر ریشه که نشان‌دهنده موفقیت یا مشکلات پیام درخواست RateModifications دریافتی است.
RateModificationsResponse / @timestamp 1 DateTime تاریخ و زمان ایجاد این پیام.
RateModificationsResponse / @id 1 string شناسه یکتا از پیام RateModifications مرتبط.
RateModificationsResponse / @partner 1 string حساب شریک برای این پیام.
RateModificationsResponse / Success 0..1 Success نشان می‌دهد که پیام RateModifications باموفقیت و بدون هشدار، خطا، یا خرابی پردازش شده است.

<Success> یا <Issues> در هر پیام وجود دارد.

RateModificationsResponse / Issues 0..1 Issues ظرفی برای یک یا چند مشکل که هنگام پردازش پیام RateModifications با آن مواجه شده‌اید.

<Success> یا <Issues> در هر پیام وجود دارد.

RateModificationsResponse / Issues / Issue 1..n Issue شرح هشدار، خطا، یا خرابی‌ای که هنگام پردازش پیام RateModifications رخ داده است. جزئیات مربوط به این مشکلات را می‌توانید در پیام‌های خطای وضعیت فید پیدا کنید.
RateModificationsResponse / Issues / Issue / @code 1 integer شناسه مشکل.
RateModificationsResponse / Issues / Issue / @status 1 enum

نوع مشکل مواجه‌شده.

مقادیر معتبر عبارت‌اند از warning، error، و failure.

مثال‌ها

موفقیت‌آمیز

در زیر پاسخی به پیام RateModifications که با موفقیت پردازش شده است آمده است.

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

مشکلات

پاسخ زیر به پیام RateModifications است که به‌دلیل خطا پردازش نشده است.

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