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 دارای عناصر و ویژگی های زیر است:

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

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

RateModifications / @id 1 string یک شناسه منحصر به فرد برای این پیام درخواست. این مقدار در پیام پاسخ بازگردانده می شود. کاراکترهای مجاز عبارتند از: az، AZ، ​​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

یک تغییر نرخ واحد برای یک ملک.

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

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string یک شناسه منحصر به فرد برای اصلاح نرخ. حداکثر تعداد نویسه‌های مجاز 40 است. نویسه‌های مجاز عبارتند از: az، AZ، ​​0-9، _ (زیر خط)، - (خط تیره)، و . (دوره زمانی).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

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

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

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

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

شخصیت های معتبر عبارتند از:

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

هر ترکیب کاراکتری معتبر است.

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

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

شخصیت های معتبر عبارتند از:

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

هر ترکیب کاراکتری معتبر است.

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

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

شخصیت های معتبر عبارتند از:

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

هر ترکیب کاراکتری معتبر است.

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment نرخ را با ضرب AmountBeforeTax و AmountAfterTax در ضریب مشخص شده تغییر می دهد
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float هر دو AmountBeforeTax و AmountAfterTax در این مقدار ضرب می شوند.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule نرخ را با اعمال شناسه قانون نرخ تعیین شده بر روی آن تغییر می دهد.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string این شناسه نرخی را با تعریف موجود در فایل تعریف قانون نرخ شما مطابقت می دهد. توجه داشته باشید:
  • محدودیت کاراکتر برای این فیلد 40 کاراکتر است.
  • هر نرخ ممکن است تنها با یک قانون نرخ مرتبط باشد.
  • اگر تغییرات متعددی برای اعمال شناسه قانون نرخ وجود داشته باشد، شناسه قانون نرخ که از نظر واژگانی کوچکترین است به نرخ اختصاص داده می شود.
  • اگر این شناسه با قانون نرخ در فایل تعریف قانون نرخ مطابقت نداشته باشد، واجد شرایط در نظر گرفته نمی‌شود.
این مقاله را برای اطلاعات در مورد درمان های مختلف UI با نرخ خصوصی مشاهده کنید.
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 باید یک عدد صحیح بین 0 تا 330 باشد.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (توصیه می شود اگر available true است) آخرین زمانی از روز را در زمان محلی هتل مشخص می کند که درخواست بازپرداخت کامل انجام می شود. این را می توان با refundable_until_days ترکیب کرد تا مشخص شود، به عنوان مثال، "بازپرداخت تا ساعت 16:00 دو روز قبل از اعلام حضور در دسترس است". اگر refundable_until_time تنظیم نشده باشد، مقدار پیش‌فرض نیمه‌شب است.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability در دسترس بودن نرخ را روی مقدار مشخص شده بازنویسی می کند. ما فقط از تنظیم نرخ روی unavailable پشتیبانی می کنیم.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum اگر status="unavailable" ، بدون در نظر گرفتن اینکه آیا قیمت معتبری برای آن وجود دارد یا خیر، با نرخ به‌گونه‌ای در نظر گرفته می‌شود که گویی در دسترس نیست.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay محدودیت‌های مدت اقامت را تعریف می‌کند که در آن این تغییر نرخ می‌تواند اعمال شود. وقتی مدت اقامت خارج از حداقل و حداکثر محدودیت باشد، اصلاح نرخ اعمال نمی‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer حداقل شب های مجاز در اقامت برای تغییر نرخ اعمال می شود. اگر این مشخص نشده باشد، هیچ حداقلی وجود ندارد.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer حداکثر شب های مجاز در اقامت برای تغییر نرخ اعمال می شود. اگر این مشخص نشده باشد، حداکثر وجود ندارد.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount حداقل مجموع نرخ‌های روزانه اتاق را مشخص می‌کند (با استفاده از AmountBeforeTax یا AmountAfterTax ) که برای اعمال اصلاح نرخ باید از آن بیشتر شود.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer مقداری که برای اعمال اصلاح نرخ باید از آن بیشتر شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans کانتینری برای فهرستی از طرح‌های نرخ که اصلاح نرخ برای آنها اعمال می‌شود. اگر <RatePlans> مشخص نشده باشد، اصلاح نرخ برای همه طرح‌های نرخ اعمال می‌شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan یک طرح نرخ را مشخص می کند. طرح نرخ با ترکیبی از بسته، نرخ‌ها و در دسترس بودن تعریف می‌شود، همانطور که در پیام‌های Transaction (Property Data)، OTA_HotelRateAmountNotifRQ، و OTA_HotelAvailNotifRQ تعریف شده است، و توسط PackageID مشخص شده است.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string شناسه منحصر به فرد برای طرح نرخ. این مقدار به مقدار PackageID در <PackageData> در پیام Transaction (Property Data) و در ویژگی RatePlanCode در <StatusApplicationControl> در هر دو پیام <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> منطبق می شود. حداکثر تعداد کاراکترهای مجاز 50 کاراکتر است.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes کانتینری برای فهرستی از انواع اتاق‌هایی که تغییر نرخ برای آنها اعمال می‌شود. تغییر نرخ برای هر <RoomType> مشخص شده اعمال می شود. اگر <RoomTypes> مشخص نشده باشد، تغییر نرخ برای همه اتاق ها اعمال می شود.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType نوع اتاق را مشخص می کند. یک نوع اتاق در یک عنصر <RoomData> در پیام تراکنش (داده های ویژگی) تعریف می شود و با استفاده از مقدار <RoomID> آن ارجاع داده می شود. (مقدار <RoomID> آن نیز توسط ویژگی InvTypeCode در پیام های OTA_HotelRateAmountNotifRQ ارجاع داده می شود.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string شناسه منحصر به فرد موجودی (نوع اتاق). این مقدار در پیام Transaction (Property Data) به <RoomID> نشان داده می شود. حداکثر تعداد کاراکترهای مجاز 50 کاراکتر است.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates محفظه ای برای یک یا چند محدوده تاریخ که نحوه اعمال تغییرات نرخ را تعیین می کند، مانند قیمت گذاری فصلی.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

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

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

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

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

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

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

شخصیت های معتبر عبارتند از:

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

هر ترکیب کاراکتری معتبر است.

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

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

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

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

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

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

مثال ها

پیام اصلی

مثال زیر یک پیام RateModifications اساسی را نشان می دهد:

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


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

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

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

تمام تغییرات نرخ را حذف کنید

مثال زیر نحوه حذف تمام تغییرات نرخ یک ویژگی را نشان می دهد:

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


همه تغییرات نرخ را پوشش دهید

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

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

اقدامات اصلاحی متعدد

مثال زیر نشان می دهد که چگونه می توان چندین عمل اصلاح را در یک زمان انجام داد:

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


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

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

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


پاسخ

نحو

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

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

عناصر و صفات

پیام RateModificationsResponse دارای عناصر و ویژگی های زیر است:

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

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

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

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

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

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

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

مثال ها

موفقیت

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

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

مسائل

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

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