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

בקשות

תחביר

ההודעה 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>
      <!-- Add Loyalty point information -->
      <MilesIncluded>
        <LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
        <!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
        <NumberOfMiles>integer</NumberOfMiles>
      </MilesIncluded>
      <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 (Property Data) כוללת את הרכיבים והמאפיינים הבאים:

רכיב / @מאפיין מופעים סוג תיאור
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 קונטיינר להגדרת סוגי חדרים וחבילות לנכס יחיד.

מומלץ לשלוח את <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 של תוכנית מחירים שאפשר לשלב עם סוג החדר הזה. תוכנית תמחור מוגדרת על ידי שילוב של חבילה, תעריפים וזמינות. התג 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 / MilesIncluded 0..1 MilesIncluded מוסיפים מידע על נקודות מועדון לחבילות בהתאם להגדרות של תוכניות התמחור או החבילות. מציינים את רכיב <MilesIncluded> בתוך רכיב <PackageData> שמגדיר את תוכנית התמחור. לרכיב <MilesIncluded> יש את רכיב הבן הבא:
  • LoyaltyCampaignID: מזהה ייחודי שמציין את קמפיין מועדון הלקוחות הספציפי שהוגדר ועודכן ב-Google. המערכת מוסיפה את נקודות המועדון למחיר המלון.

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

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>

    הערה: במקרים נדירים אפשר לכלול את התג <NumberOfMiles> מתחת לרכיב <MilesIncluded> כדי לציין שהמינוי תמיד מזכה במספר קבוע של נקודות, בלי קשר למסלול הנסיעה. מידע נוסף על <MilesIncluded> ב-<PackageData>

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>
      <MilesIncluded>
        <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      </MilesIncluded>
      <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>

הסרת סוגי חדרים

הדוגמה הבאה ממחישה איך מסירים חבילות וסוגי חדרים קיימים. בתרחיש הזה, אם ההודעות בקטע Room and package data (נתוני חדרים וחבילות) ובקטע Add a room type (הוספת סוג חדר) נשלחו ל-Google בעבר, סוגי החדרים King ו-Double לא יופיעו יותר אחרי ש-Google תקבל את ההודעה שמוצגת. שימו לב שהסרת נתוני חבילה משפיעה על תוכנית המחירים הכוללת כפי שהיא מוגדרת בהודעות Transaction (Property Data),‏ 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

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

הערך <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>