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

בקשות

תחביר

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

רכיב / @Attribute מופעים סוג תיאור
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> ו-<OTA_HotelInvCountNotifRQ>.
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 מזהה החדר (RoomID) של סוג החדר שאפשר לשלב עם חבילת המחיר הזו. סוג החדר מוגדר ברכיב <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) יפעלו, צריך לספק את המאפיין included גם ל-<Breakfast> וגם ל-<Dinner>.

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 תקבל את ההודעה שמוצגת. חשוב לזכור שהסרת נתוני החבילה משפיעה על תוכנית התעריפים הכוללת כפי שמוגדרת בהודעות Transaction (נתוני הנכס), 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 המזהה הייחודי מההודעה Transaction המשויכת.
TransactionResponse / @partner 1 string חשבון השותף של ההודעה הזו.
TransactionResponse / Success 0..1 Success מציין שההודעה Transaction טופלה בהצלחה, ללא אזהרות, שגיאות או כשלים.

השדה <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.

דוגמאות

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

זוהי תגובה להודעת Transaction שעובדה בהצלחה.

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

בעיות

זוהי תגובה להודעת Transaction שלא טופלה בגלל שגיאות.

<?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>