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

בקשות

תחביר

ההודעה 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>

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

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

רכיב / @Attribute אירועים סוג תיאור
Transaction 1 Complex element בהטמעה של ARI, זהו הרכיב הבסיסי (root) של הודעה שמגדירה סוגי חדרים וחבילות לנכס יחיד.
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 תואם ל-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>

בחדר מסוג 'חדר זוגי' (roomID_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) כוללת את הרכיבים והמאפיינים הבאים:

רכיב / @Attribute אירועים סוג תיאור
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>