الطلبات
البنية
تستخدم الرسالة 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> في خلاصة بيانات الفنادق. يظهر رقم تعريف الفندق أيضًا في Hotel Center. |
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 عند استخدام نموذج التسعير المستند إلى مدة الإقامة. يشير عدم تضمين هذه السمة إلى أنّ هذا التعديل هو تعديل على الأسعار حسب التاريخ. |
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 | تمثّل هذه السمة رمزًا أبجديًا (3) وفقًا لمعيار ISO 4217 لوحدة نقدية معيّنة.
راجِع قائمة العملات المتاحة. |
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 | يجب تحديد MaxAge عندما تكون قيمة AgeQualifyingCode هي 8 . يجب عدم تحديدها عندما تكون قيمة AgeQualifyingCode هي 10 .
يجب أن تكون قيمة يؤدي تحديد القيمة سيتم التعامل مع القيم الأكبر من يمكن تحديد نطاقات عمرية متعددة للأطفال من خلال عناصر |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | المبلغ قبل إضافة الضرائب والرسوم إلى السعر الأساسي لكل ضيف إضافي
يجب تحديد الضرائب والرسوم التي تعتمد على أعمار المقيمين من خلال العنصر |
أمثلة
يقدّم هذا القسم أمثلة على الرموز البرمجية التي توضّح كيفية تنفيذ ما يلي:
- ضبط الأسعار الأساسية وإجمالي الأسعار
- إضافة معدّلات عرض وإزالتها وتراكبها
- إضافة مبالغ المدعوين الإضافية وتراكبها وإزالتها
- إعداد الأسعار المستندة إلى مدة الإقامة
- إضافة الأسعار المستندة إلى مدة الإقامة وتراكبها وإزالتها
عند ضبط القيم add
أو overlay
أو remove
، يمكن أن تكون النطاقات الزمنية متطابقة أو مختلفة حسب أهدافك. على سبيل المثال، يمكنك استخدام overlay
لضبط بضعة أسابيع فقط لعطلات ديسمبر بدلاً من النطاق الكامل الذي تم ضبطه للرسالة "معدّل الإضافة". سيؤدي ذلك إلى استبدال معدّلات الإشغال
لهذه الفترة فقط.
الأسعار حسب التاريخ
يمكن أن يتضمّن كل فندق 50 معدّل إشغال كحدّ أقصى لكل غرفة وخطة أسعار. إذا كانت الأسعار هي نفسها لجميع مستويات الإشغال، عليك إرسال الحد الأقصى لمستويات الإشغال مع السعر المطلوب فقط. من خلال ذلك، يستنتج محرّك بحث Google أنّ الأماكن الأقل إشغالاً تحصل أيضًا على السعر الأساسي نفسه.
تحديد الأسعار الأساسية وإجمالي الأسعار
مثال 1
السعر الأساسي (بدون الضرائب أو الرسوم) للإشغال التلقائي (مزدوج) في هذا النموذج، يجب تحديد الضرائب والرسوم الخاصة بالمكان المخصّص للاستئجار باستخدام رسالة <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>
مثال 2
السعر الأساسي والإجمالي للإشغال التلقائي (مزدوج) في هذا النموذج، يجب عدم تحديد الضرائب والرسوم بشكل منفصل باستخدام رسائل <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>
مثال 3
إجمالي السعر (مع الضرائب والرسوم) لحالات الإشغال المتعددة في هذا النموذج، يجب عدم تحديد الضرائب والرسوم بشكل منفصل باستخدام رسائل <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>
مثال 4
السعر الأساسي والسعر الإجمالي لأنواع غرف متعددة وخطط أسعار على نطاقات زمنية مختلفة
<?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>
إضافة الأسعار وتراكبها وإزالتها
يبلغ الحدّ الأقصى 5,000 منتج لكل موقع، ويشمل ذلك مجموعات أنواع الغرف والحِزم. استخدِم نوعَي الإشعارات Overlay
أو Remove
لإزالة المنتجات المحدّدة سابقًا.
إضافة أسعار
اضبط NotifType
على Delta
لإضافة أسعار لكل إشغال للغرفة RoomID_1 والحزمة PackageID_1 بين 20-10-2021 و31-12-2021. يُرجى العِلم أنّ 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 بين 20-10-2021 و31-12-2021
واستبدالها بالأسعار المحدّدة حديثًا لكل إشغال.
على سبيل المثال، إذا تم إرسال هذه الرسالة بعد رسالة "إضافة الأسعار"، سيتم حذف الأسعار الخاصة بعدد الأشخاص 1 و2 و3، وسيتم تخزين السعر الجديد الخاص بعدد الأشخاص 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 بين 2021-10-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="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 بين 20-10-2021 و31-12-2021.
سيتم تطبيق مبالغ إضافية على الضيوف فوق السعر الأساسي الذي سيتم تحديده حسب عدد الأشخاص في بحث المستخدم. يجب أن يكون عدد الأشخاص الذين حدّدهم المستخدم ضمن سعة RoomID_1.
في هذا المثال، سيتم تطبيق مبالغ الضيوف الإضافية على النحو التالي:
- 5 دولار أمريكي للأطفال في الفئة العمرية من 0 إلى 10 سنوات (شاملة).
- 10 دولار أمريكي للأطفال الذين تتراوح أعمارهم بين 11 و17 عامًا (شاملةً).
- 20 دولارًا أمريكيًا للبالغين
<?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 بين 20-10-2021 و31-12-2021 واستبدالها بالأسعار المحدّدة حسب الإشغال والمبالغ الإضافية المحدّدة حديثًا.
على سبيل المثال، إذا تم إرسال هذه الرسالة بعد رسالة "إضافة الأسعار"، سيتم حذف أسعار الإشغال الأساسي 1 و2، وسيتم تخزين سعر الإشغال الأساسي 1 الجديد فقط. سيتم حذف المجموعة السابقة من مبالغ الضيوف الإضافية، وسيتم تخزين المجموعة الجديدة فقط من المبالغ. سيتم الآن استخدام سعر الإشغال 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 بين 20-10-2021 و31-12-2021.
على سبيل المثال، إذا تم إرسال هذه الرسالة بعد أي من الرسالتين المثاليتين الأخريين، لن يتم تخزين أي أسعار أساسية لكل إشغال أو مبالغ إضافية للضيوف.
<?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
باستخدام عنصر <AdditionalGuestAmounts>
فارغ لحذف جميع مبالغ الضيوف الإضافية الخاصة بـ RoomID_1 وPackageID_1 بدون التأثير في الأسعار الأساسية بين 2021-10-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="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>
التسعير استنادًا إلى مدة الإقامة
إعداد الأسعار المستندة إلى مدة الإقامة
مثال 1
ضبط أسعار الإقامة لليلة واحدة وليلتَين و3 ليالٍ بدءًا من 2020-05-18 في هذا المثال، سيكون إجمالي السعر للإقامة لمدة ليلة واحدة وليلتَين و3 ليالٍ هو 100 دولار أمريكي و180 دولارًا أمريكيًا و240 دولارًا أمريكيًا على التوالي.
<?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>
ولجميع مدد الإقامة الموضّحة في UnitMultiplier
لكل عنصر فرعي Rate
.
يجب تحديد جميع معدّلات الإشغال لكل تاريخ وصول ومدة إقامة منطبقَين.
<?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>
تراكب مدة الإقامة
باستخدام التسعير المستند إلى مدة الإقامة، تحلّ العملية Overlay
محلّ الأسعار لجميع مدة الإقامة الخاصة بالمنتج ونطاق تاريخ تسجيل الوصول المحدّد في <StatusApplicationControl>
.
باستخدام هذه الرسالة، ستتم إزالة الأسعار المحدّدة لكل إشغال لجميع مدة الإقامة في تواريخ الوصول المحدّدة واستبدالها بسعر إشغال مزدوج محدّد لمدة الإقامة 3 فقط.
<?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>
إزالة مدة الإقامة
باستخدام التسعير المستند إلى مدة الإقامة، تزيل عملية 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 | تمثّل هذه السمة نوع الخطأ أو التحذير وفقًا لمعيار OpenTravel Alliance EWT المرتبط بالخطأ. يتم استخدام القيمة 12 (Processing exception) فقط. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | رمز الخطأ (ERR) الصادر عن OpenTravel Alliance والمرتبط بالخطأ
يتم استخدام القيمة 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>