نمای کلی
این 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 دارید که برای چندین حساب فید ارائه میدهد، این مقدار باید با مقدار مشخصه |
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 | اگر |
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 | اگر مشخص نشده باشد و تغییر نرخ با همان اگر مشخص شده باشد، مقدار باید |
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 | مدت زمانی را که رزرو باید نسبت به تاریخ ورود (بر اساس منطقه زمانی ملک) انجام شود، مشخص میکند. به عنوان مثال، پنجره رزرو را می توان روی حداقل 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" مشخص می کند که روزهای هفته در محدوده تاریخ مجاز هستند. شخصیت های معتبر عبارتند از:
هر ترکیب کاراکتری معتبر است. |
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 باید یک عدد صحیح بین 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 | توضیح می دهد که چگونه اصلاح نرخ باید اعمال شود. مقادیر معتبر عبارتند از:
این ویژگی همیشه باید مشخص شود. |
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. مقادیر معتبر اگر اگر اگر |
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 بدون اخطار، خطا یا شکست با موفقیت پردازش شده است. یا |
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>