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

בקשות

תחביר

בהודעה Transaction (Property Data) נעשה שימוש בתחביר הבא:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_key">
  <PropertyDataSet action="[overlay|delta]">
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>HotelID</Property>
    <RoomData>
      <!-- (Required) One room ID per RoomData element -->
      <RoomID>RoomID</RoomID>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="room_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the rate plans allowed for this room type to
        those listed here. If specified, don't specify AllowableRoomIDs. -->
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID</AllowablePackageID>
      </AllowablePackageIDs>
      <Capacity>max_number_of_occupants</Capacity>
      <AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
      <ChildCapacity>max_number_of_child_occupants</ChildCapacity>
      <OccupancySettings>
        <MinOccupancy>min_number_of_occupants</MinOccupancy>
        <MinAge>min_age_of_occupants</MinAge>
      </OccupancySettings>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="bed_width"/>
             <Length unit="cm" number="bed_length"/>
           </Bed>
           <!-- Include with any additional beds. -->
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>[shared|private]</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>[smoking|non_smoking]</Smoking>
        <BathAndToilet relation="[together|separate]">
          <Bath bathtub="[false|true]" shower="[false|true]"/>
          <Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <!-- (Optional) Defines the type of views from the room. -->
          <!-- Example: <OceanView/> -->
        </Views>
      </RoomFeatures>
    </RoomData>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the room types allowed for this rate plan to
        those listed here. If specified, don't specify AllowablePackageIDs. -->
      <AllowableRoomIDs>
        <AllowableRoomID>RoomID</AllowableRoomID>
      </AllowableRoomIDs>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      ...
      <Meals>
        <Breakfast
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
        <Dinner
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
      </Meals>
      <CheckinTime>checkin_time</CheckinTime>
      <CheckoutTime>checkout_time</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

רכיבים ומאפיינים

ההודעה 'עסקה' (נתוני נכס) כוללת את הרכיבים והמאפיינים הבאים:

אלמנט / @מאפיין אירועים סוג תיאור
Transaction 1 Complex element בהטמעה של ARI, זהו רכיב הבסיס של הודעה שמגדירה סוגי חדרים וחבילות לנכס יחיד.
Transaction / @timestamp 1 DateTime התאריך והשעה שבהם ההודעה נוצרה.
Transaction / @id 1 string מזהה ייחודי של הודעת הבקשה הזו. הערך הזה מוחזר בהודעת התשובה. התווים המותרים הם a-z, A-Z, 0-9, _ (קו תחתון) ו- - (מקף).
Transaction / @partner 1 string חשבון השותף של ההודעה הזו. ערך המחרוזת הזה הוא הערך 'מפתח שותף' שמופיע בדף הגדרות החשבון ב-Hotel Center.

הערה: אם יש לך קצה עורפי שמספק פידים למספר חשבונות, הערך הזה צריך להתאים לערך המאפיין ID שצוין ברכיב <RequestorID> בהודעות <OTA_HotelRateAmountNotifRQ> ו-<OTA_HotelAvailNotifRQ> באותו חשבון.

Transaction / PropertyDataSet 1.. PropertyDataSet מאגר להגדרת חבילות וסוגי חדרים לנכס יחיד.
Transaction / PropertyDataSet / @action 0..1 enum

סוג העדכון שצריך להחיל על ההגדרות של מחירי החדרים.

הערכים החוקיים כוללים:

  • overlay : מחליף את כל <RoomData> ו-<PackageData> שהוגדרו קודם לכן עבור הנכס. רק <RoomData> ו-<PackageData> בהודעה הנוכחית חוקיים.
  • delta : הוספה של <RoomData> ו-<PackageData> שלא הוגדרו בעבר או שינוי של הפריטים הקיימים.

המאפיין הזה הוא אופציונלי וברירת המחדל שלו היא delta אם לא צוין.

Transaction / PropertyDataSet / Property 1 string המזהה הייחודי של הנכס. הערך הזה צריך להתאים למזהה המלון שצוין באמצעות <id> ברכיב <listing> בפיד רשימת המלונות. מזהה המלון מופיע גם ב-Hotel Center.
Transaction / PropertyDataSet / RoomData 0..n RoomData

מתאר את החדר.

הערה: יש להזין לפחות אחד מהשדות <RoomData> או <PackageData>.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID מזהה ייחודי לסוג חדר. ההפניה לערך הזה מתבצעת באמצעות המאפיין InvTypeCode ברכיב <StatusApplicationControl> בהודעות <OTA_HotelAvailNotifRQ> ו-<OTA_HotelRateAmountNotifRQ>.
Transaction / PropertyDataSet / RoomData / Name 1 Name קונטיינר של שם קטגוריית החדר בשפה אחת או יותר.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text זה השם של קטגוריית החדרים בשפה אחת.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string שם הקטגוריה של החדר בשפה שצוינה במאפיין language.
Transaction / PropertyDataSet / RoomData / Description 1 Name קונטיינר לתיאור קטגוריית החדר בשפה אחת או יותר.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text זה התיאור של קטגוריית החדרים בשפה אחת.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string תיאור קטגוריית החדר בשפה שצוינה במאפיין language.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string קוד שפה בן שתי אותיות.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs מאגר לרכיבי <AllowablePackageID>.

אם מציינים <AllowablePackageIDs>, אפשר לשלב את סוג החדר שזוהה על ידי <RoomID> ברכיב <RoomData> ההורה רק עם תוכניות התעריפים שהוגדרו באמצעות רכיבי <AllowablePackageID>.

אם לא מציינים <AllowablePackageIDs>, אפשר לשלב את סוג החדר שזוהה על ידי <RoomID> ברכיב <RoomData> ההורה עם כל תוכנית תמחור ותשלומים.

אפשר להשתמש ב-<AllowablePackageIDs> או ב-<AllowableRoomIDs>, אבל לא בשתיהן.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID מציין את ה-PackageID של תוכנית התמחור והתשלומים שאפשר לשלב עם סוג החדר הזה. תוכנית תעריפים מוגדרת לפי שילוב של חבילה, תעריפים וזמינות. הערך PackageID תואם לערך RatePlanCode בהודעות OTA_HotelRateAmountNotifRQ בהודעות OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer המספר המקסימלי של מבוגרים וילדים שאפשר להכיל חדר פיזי. הערך הזה צריך להיות גדול או שווה לכל ערכי NumberOfGuests ששולחים עם תעריפים.

הערך של <Capacity> חייב להיות מספר שלם חיובי בין 1 ל-99, כולל. כאן אפשר לראות דוגמה.

הערה: אם לא מגדירים את <Capacity>, מספר האנשים המותרים נחשב בלתי מוגבל. אם השדה הזה לא מוגדר ומוגדרים בו ExtraGuestCharges או AdditionalGuestAmounts, אפשר ליצור מחירים לכל מספר של אנשים. מומלץ להגדיר את <Capacity> אם ExtraGuestCharges או AdditionalGuestAmounts הוגדרו על מנת להבטיח שלא יוצגו מחירים לאפשרויות תפוסה לא חוקיות.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer המספר המקסימלי של מבוגרים שחדר יכול להיות בו פיזית. הערך הזה צריך להיות גדול או שווה לכל ערכי NumberOfGuests ששולחים עם תעריפים.

הערך של <AdultCapacity> חייב להיות מספר שלם חיובי בין 1 ל-99, כולל. כאן אפשר לראות דוגמה.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer המספר המקסימלי של ילדים שאפשר להכניס לחדר פיזי.

הערך של <ChildCapacity> חייב להיות מספר שלם חיובי בין 1 ל-99, כולל. כאן אפשר לראות דוגמה.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings הגדרות שיכולות להגביל או לשנות את דרישות התפוסה של חדר.

הרכיב <OccupancySettings> כולל את רכיבי הצאצא הבאים:

  • <MinOccupancy>: מספר האורחים המינימלי שיכולים לשהות בחדר. לדוגמה, אם המדיניות מוגדרת לערך 2, לא ניתן להזמין את החדר הזה לאורח אחד.

    הערך של <MinOccupancy> חייב להיות מספר שלם חיובי בין 1 ל-99, כולל.

  • <MinAge>: הגיל המינימלי של כל האורחים ששוהים בחדר. לדוגמה, אם ההגדרה היא 18, אפשר להזמין את החדר הזה רק לקבוצות שבהן כל האורחים הם בני 18 ומעלה.

    הערך של <MinAge> חייב להיות מספר שלם חיובי בין 0 ל-99, כולל.

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

אין צורך לכלול את כל רכיבי הצאצא.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL כתובת URL וכיתוב אופציונלי לתמונה של החדר או של חבילת החדר. אפשר לציין יותר ממאפיין <PhotoURL> אחד לכל חדר או חבילת חדר.

הרכיב הזה כולל את רכיבי הצאצא הבאים:

  • <URL>: מציין את המיקום של התמונה. המיקום צריך להיות ציבורי (לא מאחורי חומת אש) ולכלול את הפרוטוקול (http://).
  • <Caption>: מגדיר את הכיתוב של התמונה. הרכיב הזה מקבל רכיב צאצא יחיד, <Text>, שיש לו שני מאפיינים נדרשים, Text ו-language. המאפיין Text הוא הכיתוב, והמאפיין language מציין קוד שפה בן שתי אותיות, כמו en.
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> מידע על התכונות של החדר.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 enum

מציין את הסגנון של חדר מלון יפני.

הערכים החוקיים כוללים:

  • western: חדר בסגנון מערבי עם מיטות.
  • japanese: חדר בסגנון יפני עם מיטות פוטון.
  • japanese_western: חדר בסגנון מערבי יפני עם מיטות בסגנון מערבי ופוטונים בסגנון יפני.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object המספר כולל את כל כמות <Bed> שיש בחדר. לתשומת ליבך, אין לספור כאן פוטונים יפניים.

לכל <Bed> יש את המאפיינים הבאים:

  • size (אופציונלי): הערכים החוקיים הם single, semi_double, double, queen ו-king.
לכל <Bed> יש את רכיבי הצאצא הבאים:
  • <Width> (אופציונלי): מציין את רוחב המיטה. חייב לכלול את המאפיין unit עם הערך cm ואת המאפיין number עם רוחב המיטה בסנטימטרים שלמים.
  • <Length> (אופציונלי): מציין את אורך המיטה. חייב לכלול את המאפיין unit עם הערך cm ואת המאפיין number עם אורך המיטה בסנטימטרים שלמים.
דוגמה:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum צריך לספק את הרכיב הזה כשהחדר הוא סוויטה.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum צריך לספק את הרכיב הזה כשהחדר הוא חדר קפסולות.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum האם החדר הזה משותף עם דיירים אחרים, כמו בעלים או אורחים אחרים. הערכים החוקיים הם shared ו-private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum יש לספק את הרכיב הזה כאשר מדובר בחדר לינה בחוץ ללא קירות קבועים, אינסטלציה ובקרת אקלים. לדוגמה, חדרי מלון לא מיועדים למקומות לינה בחוץ, ואילו אתרי קמפינג שבהם אורחים שוהים באוהלים ובפארקי קרוואנים שבהם האורחים שוהים בחוץ.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum צריך לספק את הרכיב הזה כשהחדר נגיש בנייד.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum האם החדר הוא חדר ללא עישון או חדר לעישון. הערכים החוקיים הם non_smoking ו-smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object מכיל מידע על אמבטיה ושירותים בחדר.

המאפיין הוא:

  • relation (אופציונלי): מציין איך האמבטיה והאסלה ממוקמים ביחס זה לזה. הערכים החוקיים הם together, לדוגמה, חדר רחצה שבו אמבטיה וגם שירותים ממוקמים יחד באותו חדר; ו- separate, שבו יש מרחב ייעודי של אמבטיה ושירותים. לא ניתן להגדיר את המאפיין הזה אם אין בחדר גם אמבטיה וגם שירותים.

הרכיב יכול לכלול את רכיבי הצאצא הבאים:

  • <Bath> (אופציונלי): אם הרכיב הזה קיים, המשמעות היא שיש בחדר אמבטיה.

    המאפיינים הם:

    • bathtub (אופציונלי): מציין שיש באמבטיה אמבטיה בחדר האמבטיה. הערכים החוקיים הם 0 (או false) ו-1 (או true).
    • shower (אופציונלי): מציין שבאמבטיה יש מקלחת. הערכים החוקיים הם 0 (או false) ו-1 (או true).
  • <Toilet> (אופציונלי): אם הרכיב הזה קיים, המשמעות היא שבחדר יש שירותים.

    המאפיינים הם:

    • electronic_bidet (אופציונלי): מציין שבאסלה יש בידה אלקטרוני. הערכים החוקיים הם 0 (או false) ו-1 (או true).
    • mobility_accessible (אופציונלי): מציין שהשירותים נגישים בנייד. הערכים החוקיים הם 0 (או false) ו-1 (או true).

דוגמה:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum יש לספק את הרכיב הזה כאשר יש בחדר אמבטיה פרטית בחוץ.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum צריך לספק את הרכיב הזה כשהחדר כולל מיזוג.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum יש לספק את הרכיב הזה כאשר בחדר יש מרפסת או מרפסת גדולה.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object האפשרויות החוקיות כוללות:

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

Transaction / PropertyDataSet / PackageData 0..n PackageData

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

הערה: יש להזין לפחות אחד מהשדות <RoomData> או <PackageData>.

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID בהודעות האלה תואם לערך RatePlanCode בהודעות OTA_HotelRateAmountNotifRQ ובהודעות OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name מאגר של שם החבילה בשפה אחת או יותר.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text ציון שם החבילה בשפה אחת.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string שם החבילה בשפה שצוינה במאפיין language.
Transaction / PropertyDataSet / PackageData / Description 1 Description מאגר לתיאור החבילה בשפה אחת או יותר.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text מציין את תיאור החבילה בשפה אחת.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string תיאור החבילה בשפה שצוינה במאפיין language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string קוד שפה בן שתי אותיות.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs מאגר לרכיבי <AllowableRoomID>.

אם מציינים <AllowableRoomIDs>, אפשר לשלב את תוכנית התעריפים שזוהה על ידי <PackageID> ברכיב ההורה <PackageData> רק עם סוגי החדרים שהוגדרו על ידי רכיבי <AllowableRoomID>.

אם לא מציינים <AllowableRoomIDs>, אפשר לשלב את תוכנית התעריפים שזוהה על ידי <PackageID> ברכיב ההורה <PackageData> עם כל סוג חדר.

אפשר להשתמש ב-<AllowablePackageIDs> או ב-<AllowableRoomIDs>, אבל לא בשתיהן.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID מציין את מזהה החדר של סוג חדר שאפשר לשלב עם תוכנית המחירים הזו. סוג חדר מוגדר ברכיב <RoomData>.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable מאפשר רישום של תעריף עם החזר כספי מלא או שניתן לבטל. אם לא תספקו את המידע הזה, לא יוצג מידע לגבי ההחזר הכספי.

הערה: מומלץ להגדיר את כל המאפיינים. הודעת אזהרה לגבי סטטוס הפיד מופיעה כשלא מוגדר מאפיין אחד או יותר.

אם לא יוגדרו מאפיינים, לא יוצג ערך עבור החזר כספי.

כשמגדירים את המאפיינים, חשוב לשים לב לנקודות הבאות:

  • אם לא תגדירו available או refundable_until_days, לא יוצג החזר כספי.
  • אם הערך של available הוא 0 או false, המערכת תתעלם מהמאפיינים האחרים. לא ניתן לקבל החזר כספי על התעריף, גם אם הגדרת אחד מהמאפיינים האחרים או את שניהם.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (חובה) יש להגדיר את הערך 1 או את הערך true כדי לציין אם המחיר מאפשר החזר כספי מלא. אחרת, הוא מוגדר ל-0 או ל-false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (חובה אם available הוא true) מציין את מספר הימים לפני הצ'ק-אין שבהם ניתן לבקש החזר כספי מלא. הערך של refundable_until_days חייב להיות מספר שלם בין 0 ל-330, כולל.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (מומלץ מאוד אם available הוא true) מציין את השעה המאוחרת ביותר ביום, לפי השעה המקומית של המלון, שבה יכובד בקשה להחזר כספי מלא. אפשר לשלב את השם הזה עם refundable_until_days כדי לציין, לדוגמה, ש"ההחזרים הכספיים זמינים עד 16:00 יומיים לפני הצ'ק-אין". אם לא מגדירים את refundable_until_time, ברירת המחדל של הערך היא חצות.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean ההגדרה מציינת אם סוג החדר הזה כולל ארוחת בוקר. הערכים החוקיים הם 0 (או false) ו-1 (או true).

עדיף להשתמש ב-<Meals> במקום ב-<BreakfastIncluded>.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time שעת הצ'ק-אין המוקדמת ביותר האפשרית בשעה המקומית של המלון. השעה חייבת להיות פחות מ-24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time שעת הצ'ק-אאוט המאוחרת ביותר לפי השעון המקומי של המלון.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean ההגדרה מציינת אם החדר כולל גישה לאינטרנט שכלולה במחיר הלינה, בעוד שחדרים אחרים לא כוללים את השירותים האלה. אין להגדיר את הרכיב הזה בבית מלון שמספק אינטרנט שכלול במחיר הלינה לכל החדרים. הרכיב הזה לא חל על אינטרנט קווי בחדרים או אינטרנט אלחוטי שאינם זמינים בחדרי האורחים. הערכים החוקיים הם 0 (או false) ו-1 (או true).
Transaction / PropertyDataSet / PackageData / Meals 0..1 Object מכילה מידע על הארוחות בחבילה הזו.

הרכיב <Meals> כולל שני רכיבי צאצא אופציונליים, <Breakfast> ו-<Dinner>, שכוללים את המאפיינים הבאים:

  • included (חובה): יש להגדיר את הערך 1 (או true) אם התעריף כולל ארוחת בוקר/ארוחת ערב. מוגדר אחרת כ-0 או כ-false.
  • in_room (אופציונלי): מגדירים את הערך 1 (או true) אם לאורחים יש אפשרות לאכול ארוחת בוקר/ארוחת ערב בחדר שבו הם שוהים. אם לא רוצים להשתמש בו, ההגדרה יכולה להיות 0 (או false).
  • in_private_space (אופציונלי): מגדירים את הערך 1 (או true) אם יש לאורחים אפשרות לאכול ארוחת בוקר או ארוחת ערב במרחב המשותף (למעט החדר שבו הם שוהים) כדי למנוע מגע עם אורחים אחרים. אם תגדירו אחרת, הערך הוא 0 (או false).
  • buffet (אופציונלי): מגדירים לערך 1 (או true) אם ארוחת בוקר/ארוחת ערב מוגשות כמזנון. אחרת, הערך מוגדר כ-0 (או false).

אפשר להשתמש במאפיינים האופציונליים רק אם הערך של included הוא True.

כדי שמסנני הארוחות (no meals, breakfast only, dinner only ו-breakfast and dinner) יפעלו, צריך לספק גם את <Breakfast> וגם את <Dinner> עם המאפיין included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean האם חדר מסוים כולל חניה ללא תשלום, אחרת החניה הייתה שירות בתשלום במלון הזה. אין לציין ערך לרכיב הזה עבור מלון שמציע חניה בחינם. הערכים החוקיים הם 0 (או false) ו-1 (או true). ערך ברירת המחדל הוא false.
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (כמו <PhotoURL> ב-<RoomData>, אבל עבור החבילה (למשל, תמונות של ארוחות).)

דוגמאות

נתוני חדרים וחבילות

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Description>
        <Text text="Room with a king bed" language="en"/>
      </Description>
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a king bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</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>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <Description>
        <Text text="Free breakfast rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

הוספת סוג חדר

הדוגמה הבאה היא דוגמה להוספת סוג וחבילה של חדר לנתוני <Transaction> הקיימים:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="false"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

הסרה של סוגי חדרים

הדוגמה הבאה ממחישה איך להסיר חבילות וסוגי חדרים קיימים. בתרחיש הזה, אם ההודעות 'נתוני חדר וחבילה' ו'הוספת סוג חדר' כבר נשלחו ל-Google בעבר, סוגי החדרים King ו-Double לא יהיו קיימים יותר ברגע ש-Google תקבל את ההודעה שמוצגת. הערה: ההסרה של נתוני החבילה משפיעה על תוכנית התעריפים הכוללת, כפי שמוגדר ב'עסקאות' (נתוני הנכס), בהודעות OTA_HotelRateAmountNotifRQ ובהודעות OTA_HotelAvailNotifRQ (באמצעות אותו שווי של PackageID). כתוצאה מכך, ייתכן שיידרשו עדכונים תואמים באמצעות סוגי ההודעות האחרים, כדי לשקף שההודעות PackageID_2 ו-PackageID_3 כבר לא מוגדרות כאן.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>


הגבלת תוכניות תמחור ותשלומים

הדוגמה הבאה ממחישה איך אפשר להשתמש באלמנט <AllowablePackageIDs> כדי להגביל את תוכניות התעריפים לכל סוג חדר. בדוגמה הזו, אפשר לשלב את סוג החדר Queen (RoomID_2) רק עם החבילה ותוכנית התמחור והתשלומים שמזוהות כ-PackageID_1.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

הגבלה של קיבולת החדרים

הדוגמה הבאה ממחישה איך משתמשים ברכיבים <Capacity>, <AdultCapacity>, <ChildCapacity> כדי להגדיר הגבלות על קיבולת חדרים.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <Capacity>4</Capacity>
      <AdultCapacity>4</AdultCapacity>
      <ChildCapacity>3</ChildCapacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>
</Transaction>

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

דוגמאות מורחבות עם <RoomFeatures> וארוחות

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

שתי מיטות יחיד

הדוגמה הבאה מציגה איך להשתמש ב-<RoomFeatures>:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

שתי מיטות זוגיות

זו דוגמה לחדר בסגנון western עם שתי מיטות מסוג double.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

סגנון יפני ללא מיטה

הדוגמה הבאה היא של חדר בסגנון יפני ללא מיטה. אין צורך בפרטי המיטה בחדר בסגנון japanese.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

מערב יפן עם מיטה

הדוגמה הבאה היא של חדר בסגנון japanese_western עם מיטה בגודל king.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

אם לשותף אין את מספר המיטות בחדרים ב-japanese_western, תוכלו להיעזר בדוגמה הבאה:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


ארוחות

בדוגמה הבאה מוגדרים מטא-נתונים של חדרים וחבילות לארוחות, לתמונות, ולשעות הצ'ק-אין והצ'ק-אאוט:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

ארוחת בוקר בלבד

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <Breakfast included="true"/>
        <!-- Dinner not included needs to be explicitly specified -->
        <Dinner included="false"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

תשובות

תחביר

בהודעה TransactionResponse (Property Data) נעשה שימוש בתחביר הבא:

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
                     id="message_ID"
                     partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</TransactionResponse>

רכיבים ומאפיינים

ההודעה TransactionResponse (Property Data) כוללת את הרכיבים והמאפיינים הבאים:

אלמנט / @מאפיין אירועים סוג תיאור
TransactionResponse 1 Complex element רכיב הבסיס שמציין את ההצלחה או הבעיות של הודעת הבקשה לעסקה שהתקבלה.
TransactionResponse / @timestamp 1 DateTime התאריך והשעה שבהם ההודעה נוצרה.
TransactionResponse / @id 1 string המזהה הייחודי מתוך הודעת העסקה המשויכת.
TransactionResponse / @partner 1 string חשבון השותף של ההודעה הזו.
TransactionResponse / Success 0..1 Success מציין שההודעה לגבי העסקה עובדה בהצלחה ללא אזהרות, שגיאות או כשלים.

כל הודעה כוללת את <Success> או את <Issues>.

TransactionResponse / Issues 0..1 Issues מאגר תגים של בעיה אחת או יותר שזוהו במהלך העיבוד של הודעת העסקה.

כל הודעה כוללת את <Success> או את <Issues>.

TransactionResponse / Issues / Issue 1..n Issue תיאור של אזהרה, שגיאה או כשל במהלך עיבוד הודעת העסקה. אפשר למצוא פרטים על הבעיות האלה בהודעות השגיאה של סטטוס הפיד.
TransactionResponse / Issues / Issue / @code 1 integer המזהה של הבעיה.
TransactionResponse / Issues / Issue / @status 1 enum

סוג הבעיה שבה נתקלתם.

הערכים החוקיים הם warning, error ו-failure.

דוגמאות

הפעולה הצליחה

זוהי תשובה להודעה על עסקה שעובדה בהצלחה.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Success/>
</TransactionResponse>

בעיות

התגובה הבאה היא תשובה להודעה על עסקה שלא עובדה עקב שגיאות.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TransactionResponse>