RateModifications

نمای کلی

این API به شما امکان می‌دهد روش‌هایی را برای اعمال پویای اقدامات بر روی یک نرخ در هر زمان که شرایط برآورده شوند، تعریف کنید، مانند تنظیم قیمت یا فعال کردن قابلیت استرداد وجه. برخلاف 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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string یک شناسه منحصر به فرد برای اصلاح نرخ. حداکثر تعداد کاراکترهای مجاز ۴۰ است. کاراکترهای مجاز عبارتند از az، AZ، ​​۰-۹، _ (زیرخط)، - (خط تیره) و . (نقطه).
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 The ending date (based on the property's time zone), inclusive, of the date range. This date must be the same as, or after, the start date. If end isn't specified, the date range is effectively unlimited in terms of an end date.
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 این شناسه، نرخی را با تعریفی در فایل تعریف قانون نرخ شما مطابقت می‌دهد. توجه:
  • محدودیت کاراکتر برای این فیلد ۴۰ کاراکتر است.
  • هر نرخ فقط می‌تواند با یک قانون نرخ واحد مرتبط باشد.
  • اگر چندین اصلاحیه برای اعمال شناسه قانون نرخ وجود داشته باشد، شناسه قانون نرخی که از نظر لغوی کوچکترین است به نرخ اختصاص داده می‌شود.
  • اگر این شناسه با یک قانون نرخ در فایل تعریف قانون نرخ شما مطابقت نداشته باشد، فاقد شرایط لازم تلقی می‌شود.
برای اطلاعات در مورد روش‌های مختلف درمان 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 (Recommended if available is true ) Specifies the latest time of day, in the local time of the hotel, that a full refund request is honored. This can be combined with refundable_until_days to specify, for example, that "refunds are available until 4:00PM two days before check-in". If refundable_until_time isn't set, the value defaults to midnight.
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 The unique identifier for the rate plan. This value maps to the PackageID value in <PackageData> in a Transaction (Property Data) message, and in the RatePlanCode attribute in <StatusApplicationControl> in both <OTA_HotelRateAmountNotifRQ> and <OTA_HotelAvailNotifRQ> messages. The maximum number of characters allowed is 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 شناسه منحصر به فرد برای موجودی (نوع اتاق). این مقدار به <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 .

اگر 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 دو حرفی یکسان نیست. همچنین، کدهای منطقه 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>


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

The following example shows how to overlay <HotelRateModifications> for property with one or more new rate modifications. When action="overlay" , all stored rate modifications are deleted prior to storing the rate modifications specified in the current message:

<?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 رخ داده است. جزئیات مربوط به این مشکلات را می‌توانید در پیام‌های خطای وضعیت فید (Feed Status Error Messages) بیابید.
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>