رسالة المعاملة (بيانات الموقع)

نظرة عامة

تحدِّد رسالة ARI Transaction (Property Data) المعلومات حول أنواع الغرف والحِزم (أو خطط الأسعار) في كل موقع. تتضمّن بيانات كل نوع غرفة معرّفًا فريدًا (RoomID) واسمًا مترجَمًا ووصفًا وعناوين URL لصور الغرفة. تتضمّن بيانات كل حزمة معرّفًا فريدًا (PackageID) واسمًا ووصفًا وعدد النزلاء ومزاياها المميّزة مترجَمة.

يمكنك استخدام رسالة معاملة لإجراء ما يلي:

  • حدِّد بيانات لموقع واحد أو أكثر.
  • حدِّد نوع الغرفة ومعلومات الحزمة لكل موقع.
  • التحكّم في عروض المنتجات

يمكنك أيضًا ضبط الإجراءات لتنفيذ ما يلي:

  • أضِف نوع غرفة وحزمة إلى فندق.

  • إزالة نوع غرفة وحزمة من موقع

  • أضِف نقاط الولاء أو برنامج المكافآت إلى حزمة أو فندق.

للاطّلاع على أمثلة على رسائل المعاملات، اطّلِع على مثال على رسائل المعاملات (بيانات الموقع).

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

مرجع XML: يقدّم هذا المرجع أوصافًا للعناصر المطلوبة والاختيارية. لمعرفة تفاصيل عن السمات والعناصر الفرعية، يُرجى الاطّلاع على عناصر "المعاملات" (بيانات الموقع) والسمات.

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

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

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

الإرشادات

اتّبِع الإرشادات التالية لرسالة المعاملة:

الإجراءات:

delta: استخدِم هذا الحقل لإضافة أنواع الغرف والحِزم الجديدة (خطط الأسعار) أو تعديلها.

overlay: استخدِم هذا الإجراء لاستبدال جميع أنواع الغرف والحِزم الخاصة بفندق بمجموعة جديدة. يجب أن تتضمّن معلومات عن جميع أنواع الغرف وخطط الأسعار التي لا تزال تريد بيعها.

اللغات المتوفّرة:

حدِّد لغة واحدة أو لغتَين (الإنجليزية ولغة محلية للموقع إذا لزم الأمر) لحقول "الاسم" و"الوصف" و"الترجمة". يمكنك إضافة أكثر من لغتَين إذا لزم الأمر.

أنواع الغرف والحِزم:

عند تعديل نوع غرفة أو حزمة، يجب إرسال كل المتعلق بهم معلومات لنوع الغرفة أو الحزمة. على سبيل المثال، عند إضافة صورة، يجب أيضًا تضمين الاسم والوصف.

<AllowablePackageIDs> و<AllowableRoomIDs> اختياريان، وفي حال عدم ضبطهما، يمكن إجراء أيّ تركيبة من نوع الغرفة وخطة الأسعار. سيظل عليك إرسال معلومات مدى التوفّر والأسعار مع نوع الغرفة ومعرّفات خطة الأسعار. تتيح لك هذه العناصر التحكّم في المنتجات بالإضافة إلى إيقاف المجموعات التي لم يعُد نظامك متوافقًا معها.

أرسِل إلى Google تعديلًا على رسالة المعاملة عند حدوث تغيير في أنواع الغرف أو الحزم، أو عند الحاجة إلى إضافة تفاصيل مهمة عن أنواع الغرف أو الحزم.

نقاط الولاء:

لتضمين برنامج المكافآت في حزمة الاشتراك أو استبعاده، عليك إعداد إعدادات نقاط الولاء مع Google. سيؤدي ذلك إلى عرض النقاط التي تم كسبها والتي تكون مرتبطة بهذه الحزمة. مزيد من المعلومات حول نقاط الولاء

استخدِم العنصر <MilesIncluded> لتحديد حملة الولاء أو تعديلها. اطّلِع على المعاملة(بيانات الموقع) لمزيد من المعلومات. يمكن تضمين نقاط الولاء مع <PackageData>.

مثال

يقدّم هذا القسم مثالاً أساسيًا لرسالة معاملة ARI باستخدام العناصر المطلوبة والاختيارية. لإضافة أنواع الغرف والحزم أو تعديلها، استخدِم إجراءً إما delta لإضافة أنواع الغرف والحزم أو تعديلها، أو overlay لاستبدال جميع تعريفات أنواع الغرف والحزم (يؤدي ذلك إلى حذف الادخالات القديمة).

يجب تحديد لغة واحدة أو لغتَين (الإنجليزية ولغة محلية للموقع إذا لزم الأمر) لحقول "الاسم" و"الوصف" و"الشرح". بعد ذلك، أضِف معلومات بيانات الموقع، بما في ذلك الروابط المؤدية إلى الصور.

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

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

للاطّلاع على مزيد من المعلومات حول كيفية دفع الرسالة أو نشرها، يُرجى الاطّلاع على مقالة دفع الرسائل.

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="202X-XX-XXT00:00:00-0X:00" id="12345678" partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>PROPERTYID</Property>
      <RoomData>
        <RoomID>ROOMID</RoomID>
        <Name><Text text="ROOM NAME" language="en"/></Name>
        <Description>
          <Text text="ROOM DESCRIPTION TEXT" language="en"/>
        </Description>
        <Capacity>4</Capacity>
        <PhotoURL>
          <Caption><Text text="ROOM PHOTO CAPTION TEXT" language="en"/></Caption>
          <URL>https://LINK TO PHOTO</URL>
        </PhotoURL>
      </RoomData>
      <PackageData>
        <PackageID>BASE</PackageID>
        <Name><Text text="Internet Special" language="en"/></Name>
        <Description><Text text="Direct Booking through Hotel Website" language="en"/></Description>
        <Refundable available="true" refundable_until_days="2" refundable_until_time="12:00"/>
      </PackageData>
  </PropertyDataSet>
</Transaction>

لمزيد من الأمثلة، مثل كيفية استخدام الإجراء overlay وإضافة نوع غرفة وحزمة إلى بيانات الفندق الحالية وإزالة أنواع الغرف والحزم الحالية، يُرجى الاطّلاع على أمثلة على المعاملات (بيانات الفندق).

طرق التنفيذ

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

السيناريو 1: كيفية إزالة بيانات أنواع الغرف

كيف يمكنني إزالة بيانات نوع الغرفة و/أو الحزمة الحالية؟

الوصف

لقد أرسلت أنواعًا متعدّدة من الغرف، بما في ذلك غرف بسريرين مزدوجين وغرف بسريرين فرديين، للفندق. لا تتوفّر جميع أنواع الغرف المزودة بسريرين مزدوجين أثناء عملية إعادة التصميم، وتتوفّر حاليًا أنواع الغرف المزودة بسرير مزدوج فقط.

الحل

  • ليس عليك تعديل معلومات مدى التوفّر أو الأسعار أو المستودع لنوع الغرفة ومعرّفات الحزمة التي تمّت إزالتها أو إيقافها.
  • إذا تمت إزالة نوع الغرفة أو الحزمة أو إيقافهما، أرسِل action="overlay" جديدة تشمل أنواع الغرف والحِزم التي لا تزال نشطة ولا تشمل نوع الغرفة أو الحزمة التي تمّت إزالتها.

عيّنة

يوضّح مقتطف XML هذا كيفية استخدام الإجراء overlay لإزالة نوع غرفة.

في ما يلي الإجراء الأصلي delta الذي يتضمّن نوعَي الغرف King وQueen:

  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
      </PackageData>
    <RoomData>
      <RoomID>Queen</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <Capacity>2</Capacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>

يمكنك بعد ذلك ضبط overlay لإزالة نوع الغرفة Queen مع الاحتفاظ بنوع الغرفة King:

  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>

السيناريو 2: كيفية التحكّم في المنتجات باستخدام AllowablePackageIDs

كيف يمكنني التحكّم في المنتجات (مجموعات أنواع الغرف والحزم) عند تجميع الحزم حسب نوع الغرفة؟

الوصف

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

الحل

أرسِل رسالة معاملة معدَّلة تحدّد المنتجات المضمّنة في الحزمة باستخدام <AllowablePackageIDs>.

عيّنة

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

<RoomData>
  <RoomID>penthouse_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>penthouse_all_inclusive</AllowablePackageID>
    <AllowablePackageID>free_breakfast</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<RoomData>
  <RoomID>king_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>king_all_inclusive</AllowablePackageID>
    <AllowablePackageID>pet_friendly</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<PackageData>
  <PackageID>penthouse_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>free_breakfast</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>king_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>pet_friendly</PackageID>
</PackageData>

السيناريو 3: كيفية التحكّم في المنتجات باستخدام AllowableRoomIDs

كيف يمكنني التحكّم في المنتجات (مجموعات من أنواع الغرف والحزم) عندما يتم تجميع أنواع الغرف حسب الحزمة؟

الوصف

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

الحل

أرسِل رسالة معاملة معدَّلة تحدّد المنتجات المحدّدة المضمّنة في الحزمة باستخدام العنصر <AllowableRoomIDs>.

عيّنة

يوضّح مقتطف XML هذا كيفية استخدام <AllowableRoomID> لتحديد أنواع الغرف ذات الإطلالة على المحيط والتي تتضمّن سريرًا بحجم كينغ أو كوين في الحزمة.

<PackageID>RO</PackageID>
<AllowableRoomIDs>
  <AllowableRoomID>king_oceanview</AllowableRoomID>
  <AllowableRoomID>queen_oceanview</AllowableRoomID>
</AllowableRoomIDs>