درخواستها
نحو
پیام OTA_HotelRateAmountNotifRQ از نحو زیر استفاده میکند:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="message_ID"
TimeStamp="timestamp"
Version="3.0"
NotifType="[Overlay|Delta|Remove]"
NotifScopeType="[ProductRate]">
<POS>
<Source>
<RequestorID ID="partner_key"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon="boolean_value"
Tue="boolean_value"
Weds="boolean_value"
Thur="boolean_value"
Fri="boolean_value"
Sat="boolean_value"
Sun="boolean_value"
InvTypeCode="RoomID"
RatePlanCode="PackageID"
RatePlanType="[26]" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="float"
AmountAfterTax="float"
CurrencyCode="currency"
NumberOfGuests="integer"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="float"
AgeQualifyingCode="[10|8]"
MaxAge="integer"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
عناصر و مشخصهها
پیام OTA_HotelRateAmountNotifRQ دارای عناصر و مشخصههای زیر است:
| عنصر / @مشخصه | رویدادها | نوع | شرح |
|---|---|---|---|
| OTA_HotelRateAmountNotifRQ | 1 | Complex element | عنصر ریشه برای پیام نرخها. |
| OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | فضای نام XML. |
| OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | شناسه یکتای این پیام درخواست. این مقدار در پیام پاسخ برگردانده میشود. نویسههای مجاز عبارتند از a-z، A-Z، 0-9، _ (underscore)، و - (dash). |
| OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
| OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | نسخه پیام OpenTravel. |
| OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | نوع اعلانی که برای هر
مقادیر معتبر عبارتاند از: برای درک نحوه عملکرد این مشخصهها، نمونهها را بررسی کنید.
|
| OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | محدوده مقادیر معتبر عبارتاند از:
|
| OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | محفظهای برای مشخص کردن حساب شریک برای این پیام (معمولاً اگر باطن شما فیدهای قیمت را برای چندین حساب شریک ارائه دهد استفاده میشود). |
| OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | اگر <POS> وجود داشته باشد، الزامی است. محفظهای برای
<RequestorID>. |
| OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | اگر <POS> وجود داشته باشد، الزامی است. حساب شریک را تعریف میکند. |
| OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | حساب شریک برای این پیام. این مقدار رشته همان
مقدار «کلید شریک» است که در
صفحه تنظیمات حساب در Hotel Center فهرست شده است.
توجه: اگر باطن شما فیدهای چندین حساب را ارائه میدهد، این مقدار باید با مقدار مشخصه |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | مجموعهای از عناصر <RateAmountMessage> که
نرخها را تعریف میکنند. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | شناسه یکتای دارایی. این مقدار باید با «شناسه هتل» مشخصشده بااستفاده از <id> در عنصر <listing> در «فید فهرست هتل» مطابقت داشته باشد. «شناسه هتل» در مرکز هتل نیز فهرست شده است. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | محفظهای برای تنظیم قیمتهای نرخ اتاق (ترکیب نوع اتاق و طرح نرخ در محدوده تاریخ). |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | محدوده تاریخ و همچنین شناسههای نوع اتاق (InvTypeCode) و طرح نرخ (RatePlanCode) را تعریف میکند. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | تاریخ شروع (براساس منطقه زمانی دارایی)، شامل، از محدوده تاریخ. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | تاریخ پایان (براساس منطقه زمانی دارایی)، شامل،
محدوده تاریخ. باید برابر یا بزرگتر از مقدار start باشد.
اگر start و end برابر باشند، بهروزرسانی برای آن تاریخ اعمال میشود. توجه داشته باشید که Google از دادههای حداکثر سه سال پشتیبانی میکند. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | برای گنجاندن صریح دوشنبهها، روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | برای گنجاندن صریح سهشنبهها، روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | برای گنجاندن صریح چهارشنبهها، روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | برای گنجاندن صریح پنجشنبهها، روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | برای گنجاندن صریح جمعهها، روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | برای گنجاندن صریح شنبهها، روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | برای گنجاندن صریح یکشنبهها،
روی true یا 1 تنظیم کنید.
اگر روی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | شناسه یکتای موجودی (نوع اتاق). این مقدار در پیام «تراکنش» (دادههای ملک) به <RoomID> نگاشت میشود. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | شناسه یکتای طرح نرخ. این شناسه به
<PackageID> در پیام «تراکنش (دادههای دارایی)»
نگاشت میشود. طرح نرخ در <StatusApplicationControl> در هر دو پیام <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> بیشتر تعریف شده و به آن ارجاع داده شده است. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | شناسهای که نوع مدل قیمتگذاری ARI را که بر این بهروزرسانی قیمتگذاری اعمال میشود نشان میدهد. این مورد فقط باید بااستفاده از مقدار 26 هنگام استفاده از مدل قیمتگذاری مبتنی بر LOS مشخص شود. مستثنی کردن
این مشخصه نشان میدهد که این بهروزرسانی قیمتگذاری براساس تاریخ
است. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | ظرفی برای مجموعهای از عناصر <Rate>. اگر
NotifType برابر با "Remove" باشد، این عنصر نباید
مشخص شود. درغیراینصورت، این عنصر باید دقیقاً یکبار مشخص شود. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | ظرفی برای مجموعهای از عناصر <BaseByGuestAmts>. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | واحدی که مدت اقامت با آن مشخص میشود. تنها مقدار پشتیبانیشده
"Day" است، یعنی طول اقامت
به روز مشخص خواهد شد.
برای استفاده از قیمتگذاری براساس مدت اقامت،
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | تعداد RateTimeUnits که طول اقامت را برای این نرخ تشکیل میدهد.
برای مثال، اگر مقدار نرخ(های) اشغال مشخصشده تحت این شیء برای استفاده از قیمتگذاری براساس مدت اقامت،
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | ظرفی برای مجموعهای از هزینههای پایه. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | قیمت اتاقها را با واحد پول مشخصی تعیین میکند. قیمت میتواند
براساس تعداد ساکنان باشد که بااستفاده از چند عنصر <BaseByGuestAmt>
انجام میشود و هرکدام مقدار متفاوتی برای NumberOfGuests دارند.
درغیراینصورت، قیمت برای حداکثر تعداد ساکنان تعریفشده توسط NumberOfGuests اعمال میشود. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
قیمت روزانه نرخ اتاق قبلاز مالیات و کارمزد. هم اگر از تبلیغات استفاده میکنید،
تخفیف بر |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | قیمت روزانه نرخ اتاق پساز احتساب مالیاتها و کارمزدهای ذیربط. اگر AmountAfterTax مشخص شده باشد، نیازی به ارسال پیامهای جداگانه برای هر دارایی <TaxFeeInfo> نیست. این
مشخصه را میتوان در ترکیب با AmountBeforeTax
استفاده کرد تا هم نرخ پایه و هم نرخ کل ارائه شود که میتوان آن را به کاربران در
مناطق خاصی نشان داد.
هشدار: اگر از تبلیغات استفاده میکنید، اکیداً توصیه میکنیم
از مبالغ توجه: اگر |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | کد نویسه الفبایی ISO 4217 (3) برای واحد پولی خاص.
به فهرست واحدهای پول پشتیبانیشده مراجعه کنید. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | حداکثر تعداد مهمانانی که میتوانند با این نرخ اقامت کنند.
اگر ارائه نشود، بهطور پیشفرض ۲ مهمان درنظر گرفته میشود.
توجه داشته باشید که اگر |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | ظرفی برای مجموعهای از هزینهها برای مهمانان اضافی.
این نحو زمانی مفید است که نرخهای اضافی مهمان یا کودک
براساس تاریخ تغییر کند. اگر این مقادیر را میتوان بهصورت ایستا در سطح مِلک تعریف کرد، از پیام کارآمدتر
برای مثال، فرض کنید نرخهای پایه برای ۱ و ۲ بزرگسال مشخص شده است.
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | قیمتها را براساس نوع مهمان مشخص میکند که ازطریق
AgeQualifyingCode و درصورت وجود، سن مهمان
ازطریق MaxAge مشخص میشود.
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | نوع مهمان اضافی را مشخص میکند، بزرگسال یا کودک. گزینههای
معتبر عبارتاند از:
وقتی |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | وقتی AgeQualifyingCode، 8 است، MaxAge باید مشخص شود. وقتی AgeQualifyingCode 10 است، نباید مشخص شود.
با تعیین مقدار مقادیر بزرگتر از چندین محدوده سنی کودک را میتوان ازطریق عناصر جداگانه
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | مبلغ قبلاز مالیات و کارمزد که به نرخ پایه برای هر مهمان اضافه میشود.
مالیاتها و کارمزدهایی که به سن ساکنان بستگی دارد باید ازطریق
عنصر |
مثالها
این بخش نمونه کدهایی را ارائه میدهد که نحوه انجام کارهای زیر را برجسته میکند:
- تنظیم کردن نرخهای پایه و نرخهای کل
- افزودن، همپوشانی، و برداشتن نرخها
- افزودن، همپوشانی، و برداشتن مبالغ مهمان اضافی
- راهاندازی نرخهای مبتنی بر طول اقامت
- افزودن، همپوشانی، و برداشتن نرخهای مبتنی بر مدت اقامت
وقتی مقادیر add، overlay، یا remove را تنظیم میکنید، محدودههای تاریخ میتوانند بسته به اهدافتان یکسان یا متفاوت باشند. برای مثال، میتوانید از overlay برای تنظیم فقط چند هفته برای تعطیلات دسامبر بهجای کل محدوده تنظیمشده برای پیام «افزودن نرخ» استفاده کنید. این کار نرخ اشغال را فقط برای این دوره جایگزین میکند.
قیمتگذاری براساس تاریخ
برای یک اتاق و طرح نرخ مشخص، حداکثر ۵۰ نرخ ظرفیت برای هر ملک میتواند وجود داشته باشد. اگر نرخها برای همه ظرفیتها یکسان است، باید فقط حداکثر ظرفیت را با قیمت لازم ارسال کنید. با انجام این کار، Google استنباط میکند که نرخ پایه برای تعداد نفرات کمتر نیز یکسان است.
راهاندازی نرخهای پایه و نرخهای کل
مثال ۱
نرخ پایه (بدون مالیات یا کارمزد) برای اشغال پیشفرض (دوبرابر). در این
مدل، مالیاتها و کارمزدهای ملک باید بااستفاده از
پیام <TaxFeeInfo> تعریف شود. نرخ پایه برای کاربرانی که از مناطق خاصی جستجو میکنند برجستهتر خواهد بود.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>مثال ۲
نرخ پایه و کل برای ظرفیت پیشفرض (دونفره). در این مدل، مالیاتها
و کارمزدها نباید بهطور جداگانه بااستفاده از پیامهای <TaxFeeInfo>
تعریف شوند. نرخ پایه برای کاربرانی که از مناطق خاصی جستجو میکنند برجستهتر خواهد بود.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
AmountAfterTax="110.00"
CurrencyCode="USD"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>مثال ۳
نرخ کل (با مالیات و کارمزد) برای چند نفر. در این مدل،
مالیات و کارمزد نباید بهطور جداگانه بااستفاده از پیامهای
<TaxFeeInfo> تعریف شود.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
<BaseByGuestAmt AmountAfterTax="120.00"
CurrencyCode="USD"
NumberOfGuests="3"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>مثال ۴
نرخ پایه و کل برای انواع اتاقها و طرحهای نرخ در محدودههای تاریخ مختلف.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-01"
End="2020-05-31"
InvTypeCode="RoomID_2"
RatePlanCode="PackageID_2"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="200.00"
AmountAfterTax="220.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>افزودن، همپوشانی، و برداشتن نرخها
برای هر ملک، حد مجاز ۵۰۰۰ محصول (ترکیب نوع اتاق و بسته) وجود دارد. از انواع اعلان Overlay یا Remove برای برداشتن محصولاتی که قبلاً تعریف شدهاند استفاده کنید.
افزودن نرخها
NotifType را روی Delta تنظیم کنید تا نرخهای بهازای اشغال را برای
RoomID_1 و PackageID_1 بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ اضافه کنید. توجه داشته باشید که
Google از دادههای حداکثر سه سال پشتیبانی میکند.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountBeforeTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
<BaseByGuestAmt AmountBeforeTax="120.00"
CurrencyCode="USD"
NumberOfGuests="3"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>نرخهای همپوشانی
NotifType را روی Overlay تنظیم کنید تا همه نرخهای بهازای اشغال برای RoomID_1 و PackageID_1 بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ حذف شود و با نرخهای بهازای اشغال جدید مشخصشده جایگزین شود.
برای مثال، اگر این پیام پساز پیام «افزودن نرخها» ارسال شده باشد، نرخهای ظرفیت ۱، ۲، و ۳ حذف میشود و فقط نرخ ظرفیت ۱ جدید ذخیره میشود. همچنین میتوانید محدوده تاریخ کوتاهتری تنظیم کنید (مثلاً: 2021-12-20 و 2021-12-31) برای جایگزین کردن فقط برخیاز نرخهای اشغال در تاریخهای خاص، مثلاً برای تعطیلات.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Overlay"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="200.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>برداشتن نرخها
NotifType را روی Remove تنظیم کنید تا همه نرخهای بهازای اشغال برای RoomID_1 و PackageID_1 بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ حذف شود.
برای مثال، اگر این پیام بعداز هرکدام از پیامهای نمونه دیگر ارسال شده باشد، هیچ نرخ براساس تعداد ساکنان ذخیره نخواهد شد.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Remove"
NotifScopeType="ProductRate">>
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>افزودن، همپوشانی، و برداشتن مبالغ مهمان اضافی
افزودن مبالغ
NotifType را روی Delta تنظیم کنید تا نرخهای پایه برای ظرفیت ۱ و ۲ و مبالغ مهمان اضافی برای RoomID_1 و PackageID_1 بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ اضافه شود.
مبالغ مهمان اضافی علاوهبر نرخ پایه اعمال خواهد شد که براساس تعداد ساکنان در جستجوی کاربر تعیین میشود. ظرفیت مشخصشده توسط کاربر باید در محدوده ظرفیت RoomID_1 باشد.
در این مثال، مبالغ مهمان اضافی بهصورت زیر اعمال میشود:
- ۵ دلار برای کودکان در محدوده سنی ۰ تا ۱۰ سال (شامل ۱۰ سال).
- ۱۰ دلار برای کودکان در محدوده سنی ۱۱ تا ۱۷ سال (شامل ۱۱ و ۱۷ سال).
- ۲۰ دلار برای بزرگسالان.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountBeforeTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
<AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
<AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>مبالغ همپوشانی
NotifType را روی Overlay تنظیم کنید تا همه نرخهای بهازای اشغال و همه مبالغ مهمان اضافی برای RoomID_1 و PackageID_1 بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ حذف شود و با نرخهای بهازای اشغال و مبالغ اضافی جدید مشخصشده جایگزین شود.
برای مثال، اگر این پیام پساز پیام «افزودن نرخها» ارسال شده باشد، نرخهای ۱ و ۲ اشغال پایه حذف میشود و فقط نرخ ۱ اشغال پایه جدید ذخیره میشود. مجموعه قبلی مبالغ مهمان اضافی حذف خواهد شد و فقط مجموعه جدید مبالغ ذخیره خواهد شد. مبالغ مهمان اضافی اکنون از نرخ جدید ۱ نفر بهعنوان نرخ پایه استفاده میکند. توجه داشته باشید که پساز این بهروزرسانی، هیچ هزینه اضافیای برای مهمانان کودک تعریف نشده است.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Overlay"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="200.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>برداشتن مبالغ
NotifType را روی Delete تنظیم کنید تا همه نرخهای پایه بهازای هر نفر و همه مبالغ مهمان اضافی برای RoomID_1 و PackageID_1 بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ حذف شود.
برای مثال، اگر این پیام بعداز هرکدام از پیامهای نمونه دیگر ارسال شده باشد، هیچ نرخ پایه بهازای اشغال یا مبلغ مهمان اضافی ذخیره نخواهد شد.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Remove"
NotifScopeType="ProductRate">>
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>فقط مبالغ مهمان اضافی را بردارید
NotifType را با عنصر خالی <AdditionalGuestAmounts> روی Delta تنظیم کنید تا همه مبالغ مهمان اضافی برای RoomID_1 و PackageID_1 حذف شود، بدون اینکه بر نرخهای پایه بین ۲۰۲۱-۱۰-۲۰ و ۲۰۲۱-۱۲-۳۱ تأثیر بگذارد.
برای مثال، اگر این پیام بعداز هرکدام از پیامهای نمونه دیگر ارسال شده باشد، فقط مبالغ پایه ذخیره میشود.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<AdditionalGuestAmounts/>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>قیمتگذاری براساس مدت اقامت
راهاندازی نرخهای مبتنی بر مدت اقامت
مثال ۱
نرخهای اقامت ۱، ۲، و ۳ شب را که از ۲۰۲۰-۰۵-۱۸ شروع میشود تنظیم کنید. در این مثال، نرخ کل برای ۱، ۲، و ۳ شب اقامت بهترتیب ۱۰۰، ۱۸۰، و ۲۴۰ دلار خواهد بود.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-18"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
<Rates>
<Rate UnitMultiplier="1" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
<Rate UnitMultiplier="2" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="90.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
<Rate UnitMultiplier="3" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="80.00"
CurrencyCode="USD"
NumberOfGuests="2" />
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>افزودن، همپوشانی، و برداشتن نرخهای مبتنی بر مدت اقامت
افزودن مدت(های) اقامت
با قیمتگذاری مبتنی بر مدت اقامت، عملیات Delta امکان بهروزرسانی افزایشی نرخها را برای محدوده تاریخ ورود نشاندادهشده در <StatusApplicationControl> و برای همه مدتهای اقامت نشاندادهشده توسط هر عنصر فرزند Rate UnitMultiplier فراهم میکند.
برای هر تاریخ ورود و مدت اقامت ذیربط، همه نرخهای اشغال باید مشخص شود.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-18"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
<Rates>
<Rate UnitMultiplier="3" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="80.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>رونهاد کردن مدت(های) اقامت
با قیمتگذاری مبتنی بر LOS، عملیات Overlay
نرخهای همه مدتهای اقامت محصول و محدوده تاریخ ورود
نشاندادهشده در <StatusApplicationControl> را جایگزین میکند.
با این پیام، نرخهای بهازای هر نفر برای همه مدتهای اقامت در تاریخهای ورود مشخصشده برداشته میشود و با نرخ دونفرهای جایگزین میشود که فقط برای مدت اقامت ۳ تعریف شده است.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0"
NotifType="Overlay"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-18"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
<Rates>
<Rate UnitMultiplier="3" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="80.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>برداشتن مدت(های) اقامت
با قیمتگذاری مبتنی بر LOS، عملیات Remove نرخهای مربوط به همه مدتهای اقامت محصول و محدوده تاریخ ورود مشخصشده در <StatusApplicationControl> را برمیدارد.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Remove"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>پاسخها
نحو
پیام OTA_HotelRateAmountNotifRS از نحو زیر استفاده میکند:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="timestamp"
EchoToken="echo_token"
Version="3.0">
<!-- Either Success or Errors will be populated. -->
<Success/>
<Errors>
<Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>
عناصر و مشخصهها
پیام OTA_HotelRateAmountNotifRS دارای عناصر و مشخصههای زیر است:
| عنصر / @مشخصه | رویدادها | نوع | شرح |
|---|---|---|---|
| OTA_HotelRateAmountNotifRS | 1 | Complex element | عنصر ریشه برای پاسخ به پیام دردسترس بودن. |
| OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
| OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | شناسه یکتا از پیام
OTA_HotelRateAmountNotifRQ مرتبط. |
| OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | نشان میدهد که پیام OTA_HotelRateAmountNotifRQ باموفقیت پردازش شده است.
|
| OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | ظرفی برای یک یا چند مشکل که هنگام پردازش پیام OTA_HotelRateAmountNotifRQ با آن مواجه شدهاید.
|
| OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | شرح خطایی که هنگام پردازش پیام OTA_HotelRateAmountNotifRQ رخ داده است. جزئیات مربوط به این
خطاها را میتوانید در پیامهای خطای وضعیت فید پیدا کنید. |
| OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | EWT (نوع هشدار خطا) OpenTravel Alliance مرتبط با
خطا. فقط از مقدار 12 (Processing exception) استفاده میشود. |
| OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | کد خطای OpenTravel Alliance (ERR) مرتبط با خطا.
فقط از مقدار 450 (Unable to process) استفاده میشود. |
| OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | وضعیت درخواست اصلی. فقط از مقدار
NotProcessed استفاده میشود. |
| OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | شناسه Google برای مشکل. جزئیات این خطاها را میتوانید در پیامهای خطای وضعیت فید پیدا کنید. |
مثالها
موفقیتآمیز
در زیر پاسخی به پیام OTA_HotelRateAmountNotifRQ که با موفقیت پردازش شده است آمده است.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0">
<Success/>
</OTA_HotelRateAmountNotifRS>خطاها
مورد زیر پاسخی به پیام OTA_HotelRateAmountNotifRQ است که بهدلیل خطا پردازش نشده است.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0">
<Errors>
<Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>