نمای کلی
این API به شما امکان می دهد تخفیف های احتمالی را مشخص کنید. از میان تبلیغات مشخص شده، Google تبلیغات واجد شرایط یا مجموعه تبلیغاتی را که به پایینترین قیمت منجر میشود، اعمال میکند. اگر به دنبال API هستید که از تنظیمات نرخ دلخواه پشتیبانی میکند که میتواند در صورت برآورده شدن شرایط، قیمت را افزایش یا کاهش دهد، API تغییرات نرخ ما را در نظر بگیرید. توجه داشته باشید که اگر هر دو API وجود داشته باشند، تغییرات نرخ قبل از تبلیغات اعمال می شود.
درخواست ها
نحو
پیام Promotions
از دستور زیر استفاده می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
id="message_ID"
timestamp="timestamp">
<HotelPromotions hotel_id="HotelID" action="[overlay]">
<Promotion id="PromotionID" action="[delete]">
<BookingDates>
<DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
days_of_week="MTWHFSU_or_subset"/>
<DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
days_of_week="MTWHFSU_or_subset"/>
</BookingDates>
<BookingWindow min="integer_or_duration" max="integer_or_duration"/>
<Ceiling amount_per_night="float"/>
<Floor amount_per_night="float"/>
<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>
<!-- Specify only one of percentage, fixed_amount, fixed_amount_per_night,
fixed_price, or fixed_price_per_night; applied_nights is only used
with percentage, fixed_amount_per_night, and fixed_price_per_night. -->
<Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
fixed_price="float" fixed_price_per_night="float"
applied_nights="integer_1_to_99" rank="integer_1_to_99">
<!-- FreeNights may not be used in conjunction with attributes on Discount -->
<FreeNights stay_nights="integer" discount_nights="integer"
discount_percentage="float" night_selection="[cheapest|last]"
repeats="boolean"/>
</Discount>
<!-- Exactly one of Discount or BestDailyDiscount must be specified.
Specify only one of percentage, fixed_amount, or fixed_price. -->
<BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
<Devices>
<Device type="[desktop|tablet|mobile]"/>
</Devices>
<InventoryCount min="integer" max="integer"/>
<LengthOfStay min="integer" max="integer"/>
<MembershipRateRule id="RateRuleID"/>
<MinimumAmount before_discount="integer"/>
<Occupancy min="integer" max="integer"/>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<Stacking type="[any|base|none|second]"/>
<StayDates application="[all|any|overlap]">
<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>
</Promotion>
</HotelPromotions>
</Promotions>
عناصر و صفات
پیام تبلیغات دارای عناصر و ویژگی های زیر است:
عنصر / @Attribute | رخدادها | تایپ کنید | توضیحات |
---|---|---|---|
Promotions | 1 | Complex element | عنصر اصلی پیام تبلیغاتی |
Promotions / @partner | 1 | string | حساب شریک برای این پیام. این مقدار رشته، مقدار «کلید شریک» است که در صفحه تنظیمات حساب در مرکز هتل فهرست شده است. اگر پشتیبان دارید که برای چندین حساب فید ارائه می کند، این مقدار باید با مقدار مشخصه |
Promotions / @id | 1 | string | یک شناسه منحصر به فرد برای این پیام درخواست. این مقدار در پیام پاسخ برگردانده می شود. کاراکترهای مجاز عبارتند از: az، AZ، 0-9، _ (خط زیر)، و - (خط تیر). |
Promotions / @timestamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
Promotions / HotelPromotions | 0..n | HotelPromotions | تبلیغات برای یک ملک هر تبلیغی برای یک ملک خاص اعمال می شود. مگر اینکه از |
Promotions / HotelPromotions / @hotel_id | 1 | string | شناسه منحصر به فرد ملک این مقدار باید با شناسه هتل مشخص شده با استفاده از <id> در عنصر <listing> در فید لیست هتل مطابقت داشته باشد. شناسه هتل نیز در مرکز هتل درج شده است. |
Promotions / HotelPromotions / @action | 0..1 | enum | اگر مشخص شده است، مقدار باید اگر مشخص نشده باشد، هر تبلیغی که در پیام فعلی مشخص شده است:
|
Promotions / HotelPromotions / Promotion | 0..99 | Promotion | یک تبلیغ واحد برای یک ملک. توجه داشته باشید که اگر اگر نیاز به استفاده از بیش از 99 تبلیغات دارید، با مدیر حساب فنی خود (TAM) تماس بگیرید. |
Promotions / HotelPromotions / Promotion / @id | 1 | string | یک شناسه منحصر به فرد برای تبلیغات. حداکثر تعداد نویسههای مجاز 40 است. نویسههای مجاز عبارتند از: az، AZ، 0-9، _ (زیر خط)، - (خط تیره)، و . (دوره). |
Promotions /HotelPromotions / Promotion / @action | 0..1 | enum | اگر مشخص شده باشد، مقدار باید اگر |
Promotions / HotelPromotions / Promotion / BookingDates | 0..1 | BookingDates | محفظه ای برای یک یا چند محدوده که تعیین می کند چه زمانی رزرو باید انجام شود تا تبلیغ اعمال شود. |
Promotions / HotelPromotions / Promotion / BookingDates / DateRange | 1..99 | DateRange | محدوده ای که مشخص می کند برای اعمال تبلیغات باید چه زمانی رزرو انجام شود. |
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start | 0..1 | Date یا DateTime | تاریخ شروع یا زمان تاریخ (بر اساس منطقه زمانی ملک)، شامل محدوده.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date یا DateTime | تاریخ پایان یا زمان تاریخ (بر اساس منطقه زمانی دارایی)، شامل محدوده.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week | 0..1 | string | روزهایی از هفته که در محدوده تاریخ مجاز هستند. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز هستند. هر کاراکتر در رشته یک روز را مشخص می کند. به عنوان مثال، "MTWHF" مشخص می کند که روزهای هفته در محدوده تاریخ مجاز هستند. شخصیت های معتبر عبارتند از:
هر ترکیب کاراکتری معتبر است. |
Promotions / HotelPromotions / Promotion / BookingWindow | 0..1 | BookingWindow | مدت زمانی را که رزرو باید نسبت به تاریخ ورود (بر اساس منطقه زمانی ملک) انجام شود، مشخص میکند. به عنوان مثال، پنجره رزرو را می توان روی حداقل 7 روز تنظیم کرد، اما نه بیش از 180 روز، قبل از ورود. |
Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | حداقل مدت زمان قبل از ورود به هنگام رزرو باید برای اعمال تبلیغات انجام شود. اگر این مشخص نشده باشد، یا مقدار آن 0 باشد، حداقل وجود ندارد.انواع مقادیر معتبر عبارتند از:
|
Promotions / HotelPromotions / Promotion / BookingWindow / @max | 0..1 | integer or duration | حداکثر تعداد روزهای قبل از اعلام حضور هنگام رزرو باید برای اعمال تبلیغات انجام شود. اگر این مشخص نشده باشد، یا مقدار آن 0 باشد، حداکثر وجود ندارد.انواع مقادیر معتبر عبارتند از:
|
Promotions / HotelPromotions / Promotion / Ceiling | 0..1 | Ceiling | محدودیتهایی را بر روی حداکثر مقداری که پس از اعمال تبلیغات میتوان روی آن تنظیم کرد، تعریف میکند. تبلیغات همیشه باید یک اگر انباشتگی پیکربندی شده باشد، تبلیغات متعدد با مثال: قیمت گذاری یک شب اقامت که در آن
ترتیب محاسبه به شرح زیر است:
این واقعیت که 60 یک سقف کلی سختگیرانهتر است، بیربط است، زیرا فقط برای ارتقای خودش معتبر است، و نمیتواند سقف واحدی وجود داشته باشد که کل پشته تبلیغات را در بر بگیرد. |
Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float | حداکثر مقداری که پس از اعمال تخفیف می توان نرخ شبانه را روی آن تنظیم کرد. اگر یک عنصر |
Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor | محدودیتهایی را بر روی حداقل مقداری که پس از اعمال تبلیغات میتوان روی آن تنظیم کرد، تعریف میکند. تبلیغات همیشه باید یک منطق اگر انباشتگی پیکربندی شده باشد، تبلیغات متعدد با مثال: قیمت گذاری یک شب اقامت که در آن
ترتیب محاسبه به شرح زیر است:
این واقعیت که 90 یک طبقه کلی سختگیرانهتر است، بیربط است، زیرا فقط برای تبلیغ خودش معتبر است، و نمیتواند طبقهای وجود داشته باشد که کل پشته تبلیغاتی را در بر گیرد. |
Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float | حداقل مبلغی که پس از اعمال تخفیف می توان نرخ شبانه را تعیین کرد. اگر یک عنصر |
Promotions / HotelPromotions / Promotion / CheckinDates | 0..1 | CheckinDates | ظرفی برای یک یا چند محدوده تاریخی که تعیین میکند برای اعمال تبلیغات چه زمانی باید اعلام حضور شود. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange | 1..20 | DateRange | یک محدوده تاریخی که مشخص میکند چه زمانی باید ثبت نام انجام شود تا تبلیغات اعمال شود. اگر در حال حذف یک یا چند تبلیغ هستید، این عنصر ضروری نیست. فرمت YearlessDate نیز پشتیبانی می شود.
|
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start | 0..1 | Date or YearlessDate | تاریخ شروع (بر اساس منطقه زمانی ملک)، شامل محدوده تاریخ. این تاریخ باید قبل یا همان تاریخ end باشد. اگر start مشخص نشده باشد، محدوده تاریخ عملاً از نظر تاریخ شروع نامحدود است. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end | 0..1 | Date or YearlessDate | تاریخ پایان (بر اساس منطقه زمانی ملک)، شامل محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعد از آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ عملاً از نظر تاریخ پایان نامحدود است. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week | 0..1 | string | روزهایی از هفته که در محدوده تاریخ مجاز هستند. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز هستند. هر کاراکتر در رشته یک روز را مشخص می کند. به عنوان مثال، "MTWHF" مشخص می کند که روزهای هفته در محدوده تاریخ مجاز هستند. شخصیت های معتبر عبارتند از:
هر ترکیب کاراکتری معتبر است. |
Promotions / HotelPromotions / Promotion / CheckoutDates | 0..1 | CheckoutDates | ظرفی برای یک یا چند محدوده تاریخی که تعیین میکند برای اعمال تبلیغات چه زمانی باید تسویه حساب انجام شود. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange | 1..20 | DateRange | یک محدوده تاریخی که مشخص میکند برای اعمال تبلیغات باید چه زمانی تسویه حساب انجام شود. اگر در حال حذف یک یا چند تبلیغ هستید، این عنصر ضروری نیست. فرمت YearlessDate نیز پشتیبانی می شود.
|
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start | 0..1 | Date or YearlessDate | تاریخ شروع (بر اساس منطقه زمانی ملک)، شامل محدوده تاریخ. این تاریخ باید قبل یا همان تاریخ end باشد. اگر start مشخص نشده باشد، محدوده تاریخ عملاً از نظر تاریخ شروع نامحدود است. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end | 0..1 | Date or YearlessDate | تاریخ پایان (بر اساس منطقه زمانی ملک)، شامل محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعد از آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ عملاً از نظر تاریخ پایان نامحدود است. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week | 0..1 | string | روزهایی از هفته که در محدوده تاریخ مجاز هستند. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز هستند. هر کاراکتر در رشته یک روز را مشخص می کند. به عنوان مثال، "MTWHF" مشخص می کند که روزهای هفته در محدوده تاریخ مجاز هستند. شخصیت های معتبر عبارتند از:
هر ترکیب کاراکتری معتبر است. |
Promotions / HotelPromotions / Promotion / Devices | 0..1 | Devices | ظرفی برای فهرست کردن دستگاههای کاربری که واجد شرایط تبلیغ هستند. در صورت مشخص شدن، فقط به کاربران واجد شرایط در دستگاه های فهرست شده، نرخ تخفیف ارائه می شود. اگر مشخص نشده باشد، به کاربران واجد شرایط در هر دستگاهی، نرخ تخفیف ارائه می شود. |
Promotions / HotelPromotions / Promotion / Devices / Device | 1..3 | Device | یک نوع دستگاه کاربر را که واجد شرایط تبلیغ است، تعریف می کند. |
Promotions / HotelPromotions / Promotion / Devices / Device / @type | 1 | enum | یک نوع دستگاه. مقدار باید desktop ، tablet یا mobile باشد. |
Promotions / HotelPromotions / Promotion / Discount | 1 | Discount | دقیقاً یکی از تخفیفی که برای این تبلیغات اعمال می شود را مشخص می کند. |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float | دقیقاً یکی از یک مقدار اعشاری از 0-100 که درصد تخفیف را مشخص می کند. برای مثال ها:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float | دقیقاً یکی از مبلغ ثابتی که باید از مجموع نرخهای شبانه مثال ها:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float | دقیقاً یکی از یک تخفیف ثابت برای هر یک از نرخهای شبانه مثال ها:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float | دقیقاً یکی از اگر نرخهای شبانه اگر قرار است مثال ها:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float | دقیقاً یکی از اگر نرخهای شبانه اگر قرار است اگر مثال ها:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | این فقط باید با تعداد شب هایی که برای آن تخفیف اعمال می شود، با کمترین هزینه شروع می شود. باید یک عدد صحیح از 1 تا 99 باشد. اگر مشخص نشده باشد، برای تمام شب ها تخفیف اعمال می شود. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights | 0..1 | FreeNights | در برخی از شبهای اقامت که حداقل مدت اقامت رعایت شده باشد، تخفیفی را مشخص میکند. در صورت استفاده از این عنصر، ویژگیهای عنصر Discount اصلی مجاز نیستند. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights | 1 | integer | تعداد شب های لازم برای اعمال تخفیف. هر تخفیف برای بخش جداگانه ای از شب های اقامت اعمال می شود. به عنوان مثال، برای اقامت 10 شب که |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights | 1 | integer | تعداد شب های تخفیف در هر بخش از شب های اقامت. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage | 1 | float | تخفیفی که برای شب های تخفیف اعمال می شود. اگر این مقدار 50 باشد، هر شب انتخابی 50 درصد تخفیف دارد. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection | 1 | string | باید یا cheapest باشد یا last . اگر last ، پس از آن شب در پایان بخش از شب اقامت تخفیف داده می شود. اگر cheapest ، ارزانترین شبها در بخش شبهای اقامت تخفیف دارند. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats | 1 | boolean | آیا ممکن است تخفیف برای چندین بخش اقامت شبانه اعمال شود یا خیر. اگر به عنوان مثال، اگر |
Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | به این ارتقاء یک رتبه اختصاص میدهد و آن را در انتخاب رتبهبندیشده انتخاب میکند، جایی که فقط ارتقاء با پایینترین رتبه برای اعمال انتخاب میشود. مقادیر باید بین 1 تا 99 باشد. اگر چند ترفیع رتبه یکسانی داشته باشند، یکی به صورت دلخواه انتخاب و اعمال می شود. |
Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount | دقیقاً یکی از تخفیف روزانه را مشخص می کند که ممکن است برای یک شب اقامت اعمال شود. این برخلاف هر ملک ممکن است دارای یک گروه از تبلیغات باشد که "بهترین روزانه" در نظر گرفته می شوند. این بدان معناست که برای هر شب اقامت، تبلیغات تکی "بهترین روزانه" که واجد شرایط است و عمیق ترین تخفیف را برای آن شب به همراه دارد انتخاب شده و ممکن است اعمال شود. |
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float | دقیقاً یکی از یک مقدار اعشاری از 0-100 که درصد تخفیف را مشخص می کند. برای مثال ها:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float | دقیقاً یکی از مبلغ ثابتی که باید از یک نرخ شبانه مثال ها:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float | دقیقاً یکی از اگر نرخهای شبانه مثال ها:
|
Promotions / HotelPromotions / Promotion / InventoryCount | 0..1 | InventoryCount | محدودیتهایی را برای تعداد اتاقهایی که برای اعمال این تبلیغ باید در دسترس باشد، تعریف میکند. تخفیف فقط برای شب هایی اعمال می شود که محدودیت را رعایت کنند. با تخفیف fixed_amount مجاز نیست. توجه داشته باشید که تعداد اتاقهای موجود با OTA_HotelInvCountNotifRQ ( InvCount ) یا OTA_HotelAvailNotifRQ ( BookingLimit ) مشخص شده است. |
Promotions / HotelPromotions / Promotion / InventoryCount / @min | 0..1 | integer | حداقل تعداد اتاق هایی که باید برای تبلیغات در دسترس باشد تا در نرخ شب اعمال شود. اگر این مشخص نشده باشد، هیچ حداقلی وجود ندارد. |
Promotions / HotelPromotions / Promotion / InventoryCount / @max | 0..1 | integer | حداکثر تعداد اتاق هایی که باید برای تبلیغات در دسترس باشد تا در نرخ شب اعمال شود. اگر این مشخص نشده باشد، حداکثر وجود ندارد. |
Promotions / HotelPromotions / Promotion / LengthOfStay | 0..1 | LengthOfStay | محدودیتهای مدت اقامت را که در آن میتوان این تبلیغات را اعمال کرد، تعیین میکند. زمانی که مدت اقامت خارج از حداقل و حداکثر محدودیت باشد، تبلیغ اعمال نمی شود. |
Promotions / HotelPromotions / Promotion / LengthOfStay / @min | 0..1 | integer | حداقل شب های مجاز در اقامت برای ارتقاء اعمال می شود. اگر این مشخص نشده باشد، هیچ حداقلی وجود ندارد. |
Promotions / HotelPromotions / Promotion / LengthOfStay / @max | 0..1 | integer | حداکثر شب های مجاز در اقامت برای ارتقاء اعمال می شود. اگر این مشخص نشده باشد، حداکثر وجود ندارد. |
Promotions / HotelPromotions / Promotion / MembershipRateRule | 0..1 | MembershipRateRule | کانتینری برای قانون نرخ عضویت که باعث ایجاد یک درمان UI خاص برای تخفیف مرتبط می شود. این عنصر نباید مشخص شود مگر اینکه |
Promotions / HotelPromotions / Promotion / MembershipRateRule / @id | 1 | string | شناسه قانون نرخ مرتبط با برنامه عضویت. |
Promotions / HotelPromotions / Promotion / MinimumAmount | 0..1 | MinimumAmount | حداقل مجموع نرخ روزانه اتاق (با استفاده از مقدار بزرگتر از AmountBeforeTax یا AmountAfterTax ) را مشخص می کند که برای اعمال تبلیغات باید از آن بیشتر شود. |
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount | 1 | integer | مقداری که برای اعمال تبلیغات باید از آن فراتر رود. |
Promotions / HotelPromotions / Promotion / Occupancy | 0..1 | Occupancy | محدودیتهایی را در مورد اشغالهایی که این تبلیغات برای آنها اعمال میشود، تعریف میکند. وقتی اشغال خارج از حداقل و حداکثر محدودیت باشد، تبلیغ اعمال نمی شود. |
Promotions / HotelPromotions / Promotion / Occupancy / @min | 0..1 | integer | اشغال مشخص شده توسط کاربر باید حداقل این مقدار باشد تا تخفیف اعمال شود. |
Promotions / HotelPromotions / Promotion / Occupancy / @max | 0..1 | integer | اشغال مشخص شده توسط کاربر باید حداکثر این مقدار باشد تا تخفیف اعمال شود. |
Promotions / HotelPromotions / Promotion / RatePlans | 0..1 | RatePlans | کانتینری برای فهرستی از طرحهای نرخی که تبلیغات برای آنها اعمال میشود. اگر <RatePlans> مشخص نشده باشد، تبلیغ برای همه طرحهای نرخ اعمال میشود. |
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan | 1..n | RatePlan | یک طرح نرخ را مشخص می کند. طرح نرخ با ترکیبی از بسته، نرخها و در دسترس بودن تعریف میشود، همانطور که در پیامهای Transaction (Property Data)، OTA_HotelRateAmountNotifRQ، و OTA_HotelAvailNotifRQ تعریف شده است، و توسط PackageID مشخص شده است. |
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id | 1 | string | شناسه منحصر به فرد برای طرح نرخ. این مقدار به مقدار PackageID در <PackageData> در پیام Transaction (Property Data) و در ویژگی RatePlanCode در <StatusApplicationControl> در هر دو پیام <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> منطبق می شود. حداکثر تعداد کاراکترهای مجاز 50 کاراکتر است. |
Promotions / HotelPromotions / Promotion / RoomTypes | 0..1 | RoomTypes | کانتینری برای فهرستی از انواع اتاقهایی که تبلیغات برای آنها اعمال میشود. این تبلیغ برای هر <RoomType> مشخص شده اعمال می شود. اگر <RoomTypes> مشخص نشده باشد، تبلیغات برای همه اتاق ها اعمال می شود. |
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType | 1..n | RoomType | نوع اتاق را مشخص می کند. یک نوع اتاق در یک عنصر <RoomData> در پیام تراکنش (داده های ویژگی) تعریف می شود و با استفاده از مقدار <RoomID> آن ارجاع داده می شود. (مقدار <RoomID> آن نیز توسط ویژگی InvTypeCode در پیام های OTA_HotelRateAmountNotifRQ ارجاع داده می شود.) |
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id | 1 | string | شناسه منحصر به فرد موجودی (نوع اتاق). این مقدار در پیام Transaction (Property Data) به <RoomID> نشان داده می شود. حداکثر تعداد کاراکترهای مجاز 50 کاراکتر است. |
Promotions / HotelPromotions / Promotion / Stacking | 0..1 | Stacking | نحوه ترکیب تبلیغات را مشخص می کند. اگر مشخص نشده باشد، "نوع" به عنوان base در نظر گرفته می شود. |
Promotions / HotelPromotions / Promotion / Stacking / @type | 1 | enum | بسته به این تنظیم، تبلیغات چندگانه را می توان برای یک نرخ اعمال کرد:
از میان ترکیبهای مجاز، مجموعه تبلیغاتی که بیشترین تخفیف را به همراه دارد، روی نرخ اعمال میشود. |
Promotions / HotelPromotions / Promotion / StayDates | 0..1 | StayDates | ظرفی برای یک یا چند محدوده تاریخی که نحوه اعمال تبلیغات را تعیین میکند، مانند تخفیفهای فصلی. |
Promotions / HotelPromotions / Promotion / StayDates / @application | 1 | enum | توضیح می دهد که چگونه تبلیغات باید اعمال شود. مقادیر معتبر عبارتند از:
این ویژگی همیشه باید مشخص شود.
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange | 1..99 | DateRange | یک محدوده تاریخی که تاریخ هایی را که قرار است تبلیغات اعمال شود را مشخص می کند. فرمت YearlessDate نیز پشتیبانی می شود.
اگر می خواهید محدوده |
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start | 0..1 | Date or YearlessDate | تاریخ شروع (بر اساس منطقه زمانی ملک)، شامل محدوده تاریخ. این تاریخ باید قبل یا همان تاریخ end باشد. اگر start مشخص نشده باشد، محدوده تاریخ عملاً از نظر تاریخ شروع نامحدود است. اگر مقدار |
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end | 0..1 | Date or YearlessDate | تاریخ پایان (بر اساس منطقه زمانی ملک)، شامل محدوده تاریخ. این تاریخ باید همان تاریخ start یا بعد از آن باشد. اگر end مشخص نشده باشد، محدوده تاریخ عملاً از تاریخ start به بعد نامحدود است. اگر مقدار |
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week | 0..1 | string | روزهای هفته که در محدوده تاریخ مجاز هستند. اگر مشخص نشده باشد، همه روزها در محدوده تاریخ مجاز هستند. هر کاراکتر در رشته یک روز را مشخص می کند. به عنوان مثال، "MTWHF" مشخص می کند که روزهای هفته در محدوده تاریخ مجاز هستند. شخصیت های معتبر عبارتند از:
هر ترکیب کاراکتری معتبر است. |
Promotions / HotelPromotions / Promotion / UserCountries | 0..1 | UserCountries | ظرفی برای فهرست کردن مکانهای کاربری (کشورها) که واجد شرایط تبلیغ هستند. در صورت مشخص شدن، فقط به کاربران واجد شرایط در کشورهای فهرست شده، نرخ تخفیف ارائه می شود. اگر مشخص نشده باشد، به کاربران واجد شرایط در هر کشوری نرخ تخفیف ارائه می شود. |
Promotions / HotelPromotions / Promotion / UserCountries / @type | 0..1 | enum | نوع مشخصات UserCountries. مقادیر معتبر اگر اگر اگر |
Promotions / HotelPromotions / Promotion / UserCountries / Country | 1..300 | Country | کشوری را تعریف می کند که در آن کاربران واجد شرایط تبلیغ هستند. |
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code | 1 | string | یک کد کشور CLDR ، مانند DE یا FR . توجه داشته باشید که برای برخی کشورها، کد کشور CLDR با کد کشور ISO 2 حرفی یکسان نیست. همچنین، کدهای منطقه CLDR پشتیبانی نمی شوند. |
نمونه ها
محدودیت 500 تبلیغات برای هر ملک وجود دارد. برای حذف تبلیغات از یک ملک به مثال "حذف یک تبلیغ" مراجعه کنید.
پیام اصلی
مثال زیر یک پیام Promotions
اساسی را نشان می دهد:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
<DateRange start="2020-09-01" end="2020-09-30"/>
</BookingDates>
<BookingWindow min="7" max="330"/>
<CheckinDates>
<DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
</CheckoutDates>
<Devices>
<Device type="mobile"/>
<Device type="tablet"/>
</Devices>
<Discount percentage="20" applied_nights="2"/>
<LengthOfStay min="2" max="14"/>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<Stacking type="base"/>
<UserCountries>
<Country code="US"/>
<Country code="GB"/>
</UserCountries>
</Promotion>
</HotelPromotions>
</Promotions>
وضعیت موجودی
مثال زیر نحوه ایجاد تخفیف در صورت وجود موجودی اضافی نزدیک به تاریخ ورود را نشان می دهد:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingWindow max="7"/>
<Discount percentage="10"/>
<InventoryCount min="3"/>
</Promotion>
</HotelPromotions>
</Promotions>
یک تبلیغ را حذف کنید
مثال زیر نحوه حذف یک تبلیغ برای یک ملک را نشان می دهد:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1" action="delete"/>
</HotelPromotions>
</Promotions>
همه تبلیغات را حذف کنید
مثال زیر نحوه حذف همه تبلیغات برای یک ملک را نشان می دهد:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>
همه تبلیغات را روکش کنید
مثال زیر نحوه پوشش <HotelPromotions>
برای یک ملک با یک یا چند تبلیغ جدید را نشان می دهد. هنگامی که action="overlay"
، تمام تبلیغات ذخیره شده قبل از ذخیره تبلیغات مشخص شده در پیام فعلی حذف می شوند:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1" action="overlay">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-09-01" end="2020-09-30"/>
</BookingDates>
<Discount percentage="10"/>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<Stacking type="base"/>
</Promotion>
</HotelPromotions>
</Promotions>
3 نوع مختلف انباشت
مثال زیر یک مورد را نشان می دهد که سه تبلیغ مختلف اعمال می شود ( base
، second
، any
). توجه داشته باشید که از آنجا که سایر تبلیغات تخفیف بهتری را ارائه می دهند ، none
تبلیغی اعمال نمی شود. اگر قیمت اصلی 100 دلار باشد ، قیمت تخفیف 72.90 دلار خواهد بود.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="10"/>
<Stacking type="base"/>
</Promotion>
<Promotion id="2">
<Discount percentage="10"/>
<Stacking type="second"/>
</Promotion>
<Promotion id="3">
<Discount percentage="10"/>
<Stacking type="any"/>
</Promotion>
<Promotion id="4">
<Discount percentage="25"/>
<Stacking type="none"/>
</Promotion>
</HotelPromotions>
</Promotions>
هیچ نوع انباشته
مثال زیر موردی را نشان می دهد که از تبلیغات استفاده none
شود زیرا ترکیب سایر تبلیغات تخفیف کمتری را ارائه می دهد. اگر قیمت اصلی 100 دلار باشد ، قیمت تخفیف 75 دلار خواهد بود.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="10"/>
<Stacking type="base"/>
</Promotion>
<Promotion id="2">
<Discount percentage="10"/>
<Stacking type="any"/>
</Promotion>
<Promotion id="3">
<Discount percentage="25"/>
<Stacking type="none"/>
</Promotion>
</HotelPromotions>
</Promotions>
رزرو محدوده مدت زمان پنجره
مثال زیر موردی را نشان می دهد که از عنصر BookingWindow
با مرزهای شروع و پایان آن به عنوان یک نوع مدت زمان ISO 8601 استفاده می شود. این محدودیت پنجره رزرو نیاز به رزرو در روز یا قبل از ساعت 18:00 روز قبل از ورود و بعد از ساعت 12 یا بعد از ساعت 2 روز قبل از ورود دارد.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingWindow min="P1DT6H" max="P2DT12H"/>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
تاریخ رزرو مرزهای DateTime
مثال زیر موردی را نشان می دهد که از عنصر BookingDates
با ویژگی های start
و end
به عنوان انواع DateTime استفاده می شود. این محدودیت تاریخ رزرو نیاز به رزرو بین ساعت 06:30 در 2020-07-01 و 18:45 در 2020-07-02 دارد.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
</BookingDates>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
محدوده تاریخ بی سال
مثال زیر موردی را نشان می دهد که عنصر CheckInDates
شامل DateRanges
است که بدون سالها زمینه های start
و end
را دارند. در این مثال ، این تبلیغ در مورد تاریخ های چک بین 12/29 تا 1/2 ، صرف نظر از سال اعمال می شود. محدوده تاریخ سال که از مرز سال نو عبور می کند نامعتبر است ، بنابراین Daterange به عنوان دو محدوده تاریخ مجاور بیان می شود.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<CheckInDates>
<DateRange start="12-29" end="12-31"/>
<DateRange start="01-01" end="01-02"/>
</CheckInDates>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
تخفیف freenights
مثال زیر تخفیف دو شب 50 ٪ برای هر چهار شب برای محدوده مشخص تاریخ رزرو باقی مانده است. برای یک برنامه سفر ده شب ، در کل چهار شب 50 ٪ تخفیف می یابد.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2022-01-01" end="2022-05-31"/>
</BookingDates>
<Discount>
<FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
</Discount>
</Promotion>
</HotelPromotions>
</Promotions>
مثال بعدی تخفیف یک شب 50 ٪ برای هر سه شب در محدوده مشخص تاریخ اقامت باقی مانده است. فقط شبهای همپوشانی اقامت به سمت واجد شرایط برای تخفیف حساب می شود. برای برنامه سفر زیر با ورود به سیستم در 2022-01-01 و چک در 2022-01-07 ، شبهای واجد شرایط اقامت و تخفیف ها به شرح زیر اعمال می شود.
- 2022-01-01 (اقامت)
- 2022-01-02 (اقامت)
- 03-01-2022
- 2022-01-04 (تخفیف)
- 2022-01-05 (اقامت)
- 2022-01-06 (اقامت)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<StayDates application="overlap">
<DateRange start="2022-01-01" end="2022-01-02"/>
<DateRange start="2022-01-04" end="2022-01-06"/>
</StayDates>
<Discount>
<FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
</Discount>
</Promotion>
</HotelPromotions>
</Promotions>
انتخاب رتبه بندی شده
مثال زیر دو تخفیف ارائه می دهد ، یکی برای 20 ٪ تخفیف و دیگری برای 15 ٪ تخفیف. در حین ارزیابی ، فقط 15 ٪ تخفیف اعمال می شود زیرا رتبه پایین تری دارد.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="15" rank="25"/>
</Promotion>
<Promotion id="2">
<Discount percentage="20" rank="50"/>
</Promotion>
</HotelPromotions>
</Promotions>
BestDailyDiscount
مثال زیر با استفاده از BestDailyDiscount
با Discount
، اقامت دو شبانه را تخفیف می دهد.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="HotelID" action="overlay">
<Promotion id="general">
<BestDailyDiscount fixed_amount="20"/>
</Promotion>
<Promotion id="may">
<BestDailyDiscount fixed_amount="50"/>
<StayDates application="overlap">
<DateRange start="2023-05-01" end="2023-05-31"/>
</StayDates>
</Promotion>
<Promotion id="fiesta">
<Discount fixed_amount_per_night="5"/>
<Stacking type="any"/>
</Promotion>
</HotelPromotions>
</Promotions>
برای محاسبه ، دو شب اقامت از 30 آوریل 2023 تا 2 مه 2023 را در نظر بگیرید ، ترکیبی از بهترین تخفیف های روزانه که در ابتدا تخفیف دارد ، در ابتدا یافت می شود.
برای شب اول ، تبلیغ "عمومی" تنها مبلغ واجد شرایط با تخفیف ثابت 20 است.
برای شب دوم ، تبلیغ "مه" تخفیف عمیق تری نسبت به تخفیف "عمومی" ارائه می دهد. بنابراین ، هنگامی که "مه" انتخاب شد ، مبلغ تخفیف ثابت 50 است.
سپس برای اقامت ، تخفیف های تبلیغاتی "فیستا" به 5 در هر شب یا 10 کل تخفیف می یابد. این می تواند با ترکیب بهترین تخفیف های روزانه جمع شود زیرا "فیستا" نوع انباشته شده روی any
است. اگر به صورت base
تنظیم شود ، فقط ترکیبی از بهترین تخفیف های روزانه یا تخفیف "Fiesta" اعمال می شود. برای اطلاعات بیشتر به توضیحات Stacking
مراجعه کنید.
به طور کلی ، قیمت اقامت 20 + 50 + 10 = 80 تخفیف مبلغ ثابت دریافت می کند.
پاسخ ها
نحو
پیام PromotionsResponse
از نحو زیر استفاده می کند:
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues are populated. -->
<Success/>
<Issues>
<Issue code="issue_code"
status="issue_type">
issue_description
</Issue>
</Issues>
</PromotionsResponse>
عناصر و ویژگی ها
پیام PromotionsResponse
عناصر و ویژگی های زیر را دارد:
Element / ATtribute | رخدادها | تایپ کنید | توضیحات |
---|---|---|---|
PromotionsResponse | 1 | Complex element | عنصر ریشه ای که نشان دهنده موفقیت یا مسائل مربوط به پیام درخواست تبلیغات دریافت شده است. |
PromotionsResponse / @timestamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
PromotionsResponse / @id | 1 | string | شناسه منحصر به فرد از پیام تبلیغات مرتبط. |
PromotionsResponse / @partner | 1 | string | حساب شریک این پیام. |
PromotionsResponse / Success | 0..1 | Success | نشان می دهد که پیام تبلیغات بدون هشدار ، خطا یا شکست با موفقیت پردازش شد. یا |
PromotionsResponse / Issues | 0..1 | Issues | یک کانتینر برای یک یا چند مسئله هنگام پردازش پیام تبلیغات با آن روبرو می شود. یا |
PromotionsResponse / Issues / Issue | 1..n | Issue | توضیحات هشدار ، خطا یا عدم موفقیت هنگام پردازش پیام تبلیغات. جزئیات مربوط به این موضوعات را می توان در پیام های خطای وضعیت خوراک یافت. |
PromotionsResponse / Issues / Issue / @code | 1 | integer | شناسه مسئله. |
PromotionsResponse / Issues / Issue / @status | 1 | enum | نوع مسئله ای که با آن روبرو شد. مقادیر معتبر |
نمونه ها
موفقیت
در زیر پاسخی به یک پیام تبلیغاتی با موفقیت پردازش شده است.
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</PromotionsResponse>
مسائل
در زیر پاسخی به پیام تبلیغاتی است که به دلیل خطاها پردازش نشده است.
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</PromotionsResponse>