تقييم الرسالة

نظرة عامة

تحدّد رسالة "السعر" (OTA_HotelRateAmountNotifRQ) أسعار الإقامة في الغرفة لليلة واحدة لكل مجموعة من أنواع الغرف وخطط الأسعار لنطاقات تواريخ معيّنة. في إطار رسالة السعر، تتيح Google تحديد أسعار استنادًا إلى الإشغال، ما يتيح تحديد أسعار مختلفة لليلة الواحدة استنادًا إلى الحد الأقصى لعدد الأشخاص الذين سيقيمون في المكان.

تتناول الأقسام التالية إرشادات عامة ومثالاً أساسيًا وسيناريوهات حول كيفية البدء في إضافة الأسعار وتعديلها وإرسال رسالة Rate.

سلوك نسبة المطابقة

عندما يطلب المستخدمون عددًا محدّدًا من الأشخاص، يعتمد السعر الذي يظهر لهم على طريقة تحديد الأسعار في رسالة Rate. يتناول هذا القسم كيفية مطابقة طلبات المستخدمين مع أسعارك استنادًا إلى معدّل الإشغال في طلباتهم والأسعار التي تحدّدها.

المبادئ الأساسية

  • ينطبق السعر المحدّد لعدد أشخاص معيّن على جميع أعداد الأشخاص الأقل، ما لم يتم تحديد خلاف ذلك.

  • ويُعدّ طلب الحصول على عدد أكبر من الأماكن المحدّدة غير ممكن.

  • ينطبق التسعير المستند إلى الإشغال على كلّ من التسعير لكل ليلة ونماذج التسعير المستندة إلى مدة الإقامة الموضّحة أدناه. وهذا يعني أنّه يمكنك تحديد أسعار لكل مستوى إشغال. إذا لم يتوفّر سعر لإشغال محدّد، سيتم استخدام السعر الخاص بالإشغال الأعلى التالي. يمكنك أيضًا تحديد رسوم إضافية للضيوف والأطفال باستخدام AdditionalGuestAmounts أو ExtraGuestCharges، ويتم تطبيقها بما يصل إلى الحد الأقصى لعدد الأشخاص المحدّد للغرفة.

المزايا والأمثلة

الكفاءة

بالنسبة إلى الإشغالات المتعددة التي لها مبلغ السعر نفسه، لا تحتاج إلى ضبط سعر لكل إشغال. يمكنك تبسيط رسائلك من خلال ضبط أعلى قيمة إشغال مسموح بها فقط لنوع الغرفة وخطة الأسعار. سيرى المستخدمون هذه التعرفة لكل إشغال أقل من أو يساوي القيمة التي حدّدتها.

مثال: تكون الأسعار لنوع الغرفة وخطة الأسعار هي نفسها بالنسبة إلى الإشغال من شخص واحد إلى أربعة أشخاص. استخدِم رسالة السعر لتحديد سعر واحد للحد الأقصى لعدد الأشخاص وهو 4. سيرى المستخدمون الذين يبحثون عن إقامة لفرد واحد أو فردين أو ثلاثة أفراد السعر نفسه. لن تظهر الأسعار للمستخدمين الذين يبحثون عن 5 نجوم أو أكثر.

التحكّم

يمكن تقديم أسعار مميزة لحالات الإشغال البديلة بشكل صريح. أرسِل سعرًا مختلفًا لكل قيمة إشغال إذا أردت التحكّم بشكل أكبر في طريقة مطابقة Google للطلبات مع معدّلات الإشغال.

مثال: إذا تم تحديد الأسعار للإقامة لثلاثة أفراد ولشخص واحد، ستعرض عمليات البحث عن الإقامة لشخص واحد سعر الإقامة لشخص واحد، وستعرض عمليات البحث عن الإقامة لشخصَين سعر الإقامة لثلاثة أشخاص، ولن تظهر الأسعار للمستخدمين الذين يبحثون عن الإقامة لأربعة أشخاص أو أكثر.

للاطّلاع على مزيد من الأمثلة حول سيناريوهات مختلفة متعلقة بالأسعار، راجِع الإرشادات.

العناصر المطلوبة والاختيارية

يقدّم مرجع XML أوصافًا للعناصر المطلوبة والاختيارية. للاطّلاع على تفاصيل حول السمات والعناصر الفرعية، راجِع عناصر التقييم والسمات.

البنية والمخططات

استخدِم مثال بنية السعر كمرجع عند إنشاء رسالة السعر للتأكّد من اتّباع التنسيق الصحيح.

يمكنك استخدام أداة XML تابعة لجهة خارجية، مثل xmllint، للتحقّق من صحة خلاصاتك باستخدام المخططات المنشورة قبل إرسالها إلى Google. للاطّلاع على مخطط رسالة السعر، راجِع مخططات "إعلانات الفنادق".

نماذج الأسعار

الأسعار حسب التاريخ

هذا هو نموذج التسعير العادي المستخدَم لمعظم المواقع. يستند نموذج التسعير per-date إلى تحديد الأسعار التي يتم جمعها على مدار تواريخ الإقامة للوصول إلى السعر الإجمالي. في هذا النموذج، يتم تفسير جميع الأسعار ضمن العنصر Rate على أنّها تنطبق على نطاق تواريخ الإقامة المحدّد في <StatusApplicationControl>.

التسعير استنادًا إلى مدة الإقامة

يستند نموذج التسعير المستند إلى مدة الإقامة إلى الأسعار المحدّدة لمجموعة من تاريخ الوصول ومدة الإقامة. تكون الأسعار المحدّدة ضمن نموذج التسعير المستند إلى مدة الإقامة لكل يوم. على سبيل المثال، إذا أرسلت سعرًا بقيمة 100 دولار أمريكي لمدة إقامة تبلغ 3 ليالٍ، سيتم احتساب السعر الإجمالي على النحو التالي: 3 × 100 دولار أمريكي=300 دولار أمريكي.

يمكنك الاستفادة من نموذج التسعير المستند إلى مدة الإقامة من خلال تحديد RatePlanType="26" في عناصر StatusApplicationControl. عليك أيضًا ضبط السمتَين RateTimeUnit وUnitMultiplier على عناصر Rate في ملف XML. يؤدي ذلك إلى تطبيق جميع الأسعار ضمن عنصر Rate المحدّد على الإقامات المحدّدة حسب تواريخ الوصول المحدّدة في <StatusApplicationControl> وقيمة مدة الإقامة المحدّدة في UnitMultiplier.

يمكنك الاستفادة من نموذجي التسعير المستند إلى التواريخ والمستند إلى مدة الإقامة ضمن حساب واحد، ولكن يجب أن يستخدم كل فندق نموذج تسعير واحدًا فقط. يُرجى مراعاة النقاط التالية عند تنفيذ التسعير المستند إلى مدة الإقامة:

  • لا يتم الجمع بين الأسعار الخاصة بمدد الإقامة المختلفة عند استخدام التسعير المستند إلى مدة الإقامة. على سبيل المثال، لا يتم دمج سعر مدة الإقامة البالغ 3 ليالٍ مع سعر مدة الإقامة البالغ ليلة واحدة من أجل تحديد سعر مدة الإقامة البالغ 4 ليالٍ. يجب تحديد سعر الإقامة لمدة 4 ليالٍ بشكل صريح.
  • لا يتم استخدام سعر الليلة الواحدة في التسعير المستند إلى مدة الإقامة كسعر فردي لليلة واحدة في التسعير حسب التاريخ.
  • يجب أن تستخدم كل منشأة إما الأسعار المستندة إلى مدة الإقامة أو الأسعار لكل ليلة، وذلك حسب طريقة عرض الأسعار في نظامك.

لتفعيل الأسعار المستندة إلى مدة الإقامة في حسابك، يمكنك تقديم الطلب من خلال مدير حسابك أو التواصل معنا.

الإرشادات أو الإجراءات

الأسعار حسب التاريخ

Delta: أضِف أو عدِّل الأسعار المحدّدة لكل إشغال للتركيبات المحدّدة فقط من نوع الغرفة وخطة الأسعار وتواريخ الإقامة المحدّدة في <StatusApplicationControl>.

  • تستخدِم تعديلات الأسعار الإجراء Delta تلقائيًا.
  • لا يؤدي تحديث Delta إلى تغيير أي أسعار تم تخزينها سابقًا لأنواع الإشغال الأخرى. على سبيل المثال، إذا حدّدت أسعارًا لغرف فردية ومزدوجة الإشغال، وأرسلت تعديلاً على السعر Delta للغرفة الفردية، سيبقى سعر الغرفة المزدوجة بدون تغيير.

استبدال جميع الأسعار الحالية المحدّدة لكل شخص في الغرفة لنوع الغرفة وخطة الأسعار والتواريخ المحدّدة في <StatusApplicationControl> بأسعار جديدة: Overlay على سبيل المثال، إذا حدّدت أسعارًا للغرف التي تتضمّن سريرًا واحدًا وسريرَين، وأرسلت تعديلاً Overlay للغرف التي تتضمّن سريرًا واحدًا، ستزيل Google جميع الأسعار السابقة (للغرف التي تتضمّن سريرًا واحدًا وسريرَين) وسيتم الاحتفاظ بسعر الغرف التي تتضمّن سريرًا واحدًا فقط بعد التعديل.

استبدِل Remove بما يلي: احذف جميع الأسعار الحالية لكل شخص في الغرفة لنوع الغرفة وخطة الأسعار والتواريخ المحدّدة في <StatusApplicationControl>.

التسعير استنادًا إلى مدة الإقامة

Delta: أضِف أو عدِّل الأسعار لكل قيمة من قيم مدة الإقامة، وذلك فقط لمجموعات نوع الغرفة وخطة الأسعار وتواريخ تسجيل الوصول المحدّدة في <StatusApplicationControl>. يستبدل هذا الحقل جميع الأسعار لكل إشغال والمرتبطة بقيم مدة الإقامة المعدَّلة.

  • تستخدِم تعديلات الأسعار الإجراء Delta تلقائيًا.
  • لا يؤدي التعديل الذي تم إجراؤه في Delta إلى تغيير أي أسعار تم تخزينها سابقًا لمدد إقامة أخرى. على سبيل المثال، إذا حدّدت أسعارًا لمدة الإقامة لليلة واحدة وليلتَين، وأرسلت Delta تعديلاً على الأسعار لمدة الإقامة لليلة واحدة، ستبقى الأسعار المحدّدة لكل شخص لمدة الإقامة لليلتَين بدون تغيير.
  • يؤدي التعديل Delta إلى استبدال جميع الأسعار المخزّنة سابقًا لكل وحدة إشغال لمدة الإقامة المحدّدة. على سبيل المثال، إذا حدّدت أسعار إقامة فردية ومزدوجة لمدة الإقامة 1، وأرسلت تعديلاً على السعر Delta لمدة الإقامة 1 يتضمّن سعر إقامة فردية فقط، ستتم إزالة سعر الإقامة المزدوجة.

استبدِل جميع الأسعار الحالية لكل إشغال بأسعار جديدة، وذلك حسب مدة الإقامة ونوع الغرفة وخطة الأسعار وتواريخ تسجيل الوصول المحدّدة في <StatusApplicationControl>.Overlay على سبيل المثال، إذا حدّدت أسعارًا لمدة الإقامة لليلة واحدة وليلتَين، وأرسلت تحديثًا Overlay لمدة الإقامة لليلة واحدة، ستزيل Google جميع الأسعار السابقة (لكلّ من الليلة الواحدة والليلتَين) وسيتبقى سعر الليلة الواحدة فقط بعد التحديث.

Remove: لحذف جميع الأسعار الحالية لكل إشغال لجميع مدة الإقامة الخاصة بنوع الغرفة وخطة الأسعار وتواريخ تسجيل الوصول المحدّدة في <StatusApplicationControl>

أسباب تتعلّق بالضرائب

إذا كانت الضرائب والرسوم بسيطة، يمكن تحديد المبلغ الإجمالي باستخدام السمة AmountAfterTax. لا يمكن تمثيل الضرائب المعقّدة، مثل الضرائب والرسوم التي تنطبق على كل إقامة (بدلاً من كل ليلة)، في AmountAfterTax.

بشكل عام، تنصح Google باستخدام TaxFeeInfo بدلاً من AmountAfterTax.

إذا أمكن، يجب تضمين AmountBeforeTax (حتى إذا حدّدت AmountAfterTax) لأنّ بعض اللغات (مثل الإنجليزية في الولايات المتحدة) تعرض السعر قبل الضريبة تلقائيًا.

يجب تضمين جميع الضرائب والرسوم التي على المستخدم دفعها (مثل ضريبة القيمة المضافة وضريبة الإقامة ورسوم التنظيف وضريبة المدينة وما إلى ذلك)، حتى إذا لم يتم دفعها عند الحجز أو لم يتم دفعها مباشرةً إلى مكان الإقامة.

مثال

يقدّم هذا القسم مثالاً أساسيًا على رسالة تقييم باستخدام العناصر المطلوبة والاختيارية. بعد إعداد ملفك، عليك إرساله إلى Google باستخدام رسالة POST إلى نقطة النهاية التالية: https://www.google.com/travel/hotels/uploads/property_data

لمزيد من المعلومات حول كيفية إرسال الرسالة باستخدام طريقة POST، يُرجى الاطّلاع على إرسال الرسائل.

بالنسبة إلى HotelCode، استخدِم معرّف الفندق الفريد الذي استخدمته ضمن نظامك لتحديد الموقع. يجب أن تتطابق هذه القيمة مع معرّف الفندق المحدّد باستخدام <id> في العنصر <listing> في خلاصة بيانات الفنادق. بالنسبة إلى <PackageID> و<RoomID>، استخدِم المعرّفات نفسها التي تستخدمها في نظامك لخطط الأسعار وأنواع الغرف (على التوالي). يُعدّ التوافق مع نظامك أمرًا بالغ الأهمية لضمان عرض Google لأسعارك وبياناتك بشكل صحيح.

يوضّح المثال التالي كيفية ضبط الأسعار باستخدام إجراء Delta:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2022-02-25T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta">
  <POS><Source><RequestorID ID="partner_key" /></Source></POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="2022-12-01"
                                End="2022-12-31"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt NumberOfGuests="1" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
            <BaseByGuestAmt NumberOfGuests="2" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
            <BaseByGuestAmt NumberOfGuests="3" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
            <BaseByGuestAmt NumberOfGuests="4" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
</OTA_HotelRateAmountNotifRQ>

طرق التنفيذ

يقدّم هذا القسم حلولاً للحالات التي قد تواجهها أثناء إرسال رسائل التقييم.

للاطّلاع على أمثلة حول كيفية إضافة الأسعار وإزالتها وتعديلها، راجِع أمثلة على الأسعار.

السيناريو 1: كيفية تغيير الأسعار لكل شخص

الوصف

كانت أسعار الليلة الواحدة محددة سابقًا للإشغال المزدوج فقط (وينطبق ذلك أيضًا على الإشغال الفردي)، ولكن يتوفّر الآن سعر أقل للإشغال الفردي.

الحل

أرسِل معدّل الإشغال 1 الجديد باستخدام التعديل التلقائي Delta ذي النطاق التلقائي. لا تؤثّر هذه القيمة الجديدة في معدّل الإشغال 2.

السيناريو 2: كيفية استبدال معدّلات الإشغال لكل وحدة سكنية في مكان مخصّص للاستئجار

الوصف

سبق لك تحديد أسعار للإشغال من شخص واحد إلى أربعة أشخاص، ولكن الآن، لا يمكن تحديد أسعار إلا للإشغال من شخص واحد إلى شخصين.

الحل

استخدِم NotifType="Overlay" لاستبدال جميع معدّلات الإشغال لمكان محدّد للإقامة ونوع غرفة وخطة أسعار وتواريخ محدّدة. في هذا السيناريو، سيعرض الإجراء Overlay أسعارًا لغرف تتسع لشخص واحد أو شخصين.

السيناريو 3: كيفية ضبط السعر نفسه لعدة حالات إشغال

الوصف

يمكن بيع سعر إشغال معيّن لمجموعة تضم عددًا أقل من الأشخاص. في هذه الحالة، يمكنك تبسيط رسائلك من خلال إرسال تعديل السعر فقط للحد الأقصى للإشغال الساري.

الحل

إذا كان لديك السعر نفسه لعدة مستويات إشغال، اضبط أعلى قيمة لمستوى الإشغال التي يتيحها نوع الغرفة وخطة الأسعار، وسيتم تلقائيًا استخدام هذه القيمة لمستويات الإشغال الأقل. أي أنّه ليس عليك تكرار سعر الليلة نفسها لعدد الأشخاص من 1 إلى 6 إذا كان السعر هو نفسه، بل عليك ضبطه لـ 6 أشخاص فقط.