הודעת עסקה (נתוני נכס)

סקירה כללית

ההודעה ARI Transaction (נתוני נכס) מגדירה את המידע על סוגי החדרים והחבילות (או תוכניות התמחור) של כל נכס. כל נתוני סוג החדר כוללים מזהה ייחודי (RoomID), שם מותאם לשוק המקומי, תיאור וכתובות URL לתמונות של החדר. כל נתוני החבילה כוללים מזהה ייחודי (PackageID), שם, תיאור, תפוסה ומאפייני ערך מוסף שמותאמים לשוק המקומי.

אפשר להשתמש בהודעת עסקה כדי:

  • מגדירים נתונים לנכס אחד או יותר.
  • מגדירים את סוג החדר ואת פרטי החבילה לכל נכס.
  • שליטה במוצרים המוצעים.

בנוסף, אפשר להגדיר פעולות לביצוע הפעולות הבאות:

  • הוספת סוג חדר וחבילת שירות לנכס.

  • הסרת סוג חדר וחבילת שירות מנכס.

  • הוספת נקודות מועדון לקוחות או מועדון לקוחות לחבילה או לנכס.

דוגמאות להודעות על עסקאות מפורטות במאמר דוגמאות להודעות על עסקאות (נתוני נכס).

רכיבים נדרשים ורכיבים אופציונליים

בחומר העזר בנושא XML מפורטים תיאורים של הרכיבים הנדרשים והאופציונליים. למידע נוסף על מאפיינים ורכיבי צאצא, ראו רכיבים ומאפיינים של טרנזקציות (נתוני נכסים).

תחביר וסכימות

כשאתם יוצרים את הודעת הטרנזקציה, כדאי להיעזר בדוגמה לתחביר של טרנזקציה (נתוני נכס) כדי לוודא שאתם פועלים לפי הפורמט הנכון.

אתם יכולים להשתמש בכלי 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

מידע נוסף על שליחת הודעות באמצעות POST או Push זמין במאמר שליחת הודעות.

בדוגמה הבאה מוסבר איך להגדיר את הודעת הטרנזקציה באמצעות פעולה 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, הוספה של סוג חדר וחבילת אירוח לנתוני נכס קיימים והסרה של סוגים של חדרים וחבילות אירוח קיימים, זמינות במאמר דוגמאות לעסקאות (נתוני נכס).

מדריכים

בקטע הזה מפורטות פתרונות לתרחישים שעשויים לקרות כששולחים הודעות Transaction.

תרחיש 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

איך שולטים במוצרים (שילובים של חבילות וסוגים של חדרים) כשהחבילות מקובצות לפי סוג החדר?

תיאור

יש חבילות מסוימות שזמינות רק לסוגים מסוימים של חדרים. לדוגמה, אם בנכס יש ארבעה סוגי חדרים (כולל סוויטת נשיאות) ושש חבילות שונות, אבל רק כמה חבילות עומדות בדרישות לקבלת סוויטת נשיאות, תוכלו לציין את הזכאות.

פתרון

שולחים הודעת עסקה מעודכנת שמציינת אילו מוצרים כלולים בחבילה באמצעות <AllowablePackageIDs>.

דוגמה

קטע ה-XML הזה מראה איך להשתמש ב-<AllowablePackageIDs> כדי לציין חבילות שמשמשות לסוג חדר מסוים. במקרה כזה, בחדר סוויטה בפנטהאוז אפשר לבחור רק בחבילת פנטהאוז הכל כלול או בחבילת ארוחת הבוקר בחינם, ובחדר סוויטה קינג אפשר לבחור רק בחבילת קינג הכל כלול או בחבילה לחיות מחמד.

<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> כדי לציין בחבילה את סוגי החדרים King ו-Queen עם נוף לים.

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