نمای کلی
این 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 فهرست شده است.
توجه: اگر باطنهای دارید که فیدهای چندین حساب را ارائه میدهد، این مقدار باید با مقدار مشخصه |
| 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 | اگر |
| 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 | اگر مشخص نشده باشد و اصلاح نرخ با همان
درصورت مشخص کردن، مقدار باید |
| 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» مشخص میکند که روزهای هفته در محدوده تاریخ مجاز است. نویسههای معتبر عبارتند از:
هر ترکیبی از نویسهها معتبر است. |
| 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» مشخص میکند که روزهای هفته در محدوده تاریخ مجاز است. نویسههای معتبر عبارتند از:
هر ترکیبی از نویسهها معتبر است. |
| 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» مشخص میکند که روزهای هفته در محدوده تاریخ مجاز است. نویسههای معتبر عبارتند از:
هر ترکیبی از نویسهها معتبر است. |
| 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 | امکان استرداد مبلغ نرخ را به مقدار مشخصشده بازنویسی میکند.
هنگام تنظیم مشخصهها، به موارد زیر توجه کنید:
|
| 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 | توضیح میدهد که اصلاح نرخ چگونه باید اعمال شود. مقادیر معتبر عبارتاند از:
این مشخصه باید همیشه مشخص شود. |
| 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» مشخص میکند که روزهای هفته در محدوده تاریخ مجاز است. نویسههای معتبر عبارتند از:
هر ترکیب نویسهای معتبر است. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | اگر مشخص شده باشد، اصلاح نرخ فقط درصورتی اعمال میشود که کاربر در یکی از کشورهای مشخصشده ساکن باشد. اگر مشخص نشده باشد، اصلاح نرخ بدون درنظر گرفتن مکان کاربر اعمال میشود. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | نوع مشخصات UserCountries.
مقادیر معتبر اگر UserCountries اگر UserCountries اگر UserCountries |
| 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 باموفقیت و بدون هشدار، خطا، یا خرابی پردازش شده است.
|
| RateModificationsResponse / Issues | 0..1 | Issues | ظرفی برای یک یا چند مشکل که هنگام پردازش پیام RateModifications با آن مواجه شدهاید.
|
| RateModificationsResponse / Issues / Issue | 1..n | Issue | شرح هشدار، خطا، یا خرابیای که هنگام پردازش پیام RateModifications رخ داده است. جزئیات مربوط به این مشکلات را میتوانید در پیامهای خطای وضعیت فید پیدا کنید. |
| RateModificationsResponse / Issues / Issue / @code | 1 | integer | شناسه مشکل. |
| RateModificationsResponse / Issues / Issue / @status | 1 | enum | نوع مشکل مواجهشده. مقادیر معتبر عبارتاند از |
مثالها
موفقیتآمیز
در زیر پاسخی به پیام 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>