تراکنش (داده های دارایی)

درخواست ها

نحو

پیام 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 (Property Data) دارای عناصر و ویژگی های زیر است:

عنصر / @Attribute رخدادها تایپ کنید توضیحات
Transaction 1 Complex element در اجرای ARI، این عنصر ریشه برای پیامی است که انواع اتاق و بسته‌ها را برای یک ویژگی مشخص می‌کند.
Transaction / @timestamp 1 DateTime تاریخ و زمان ایجاد این پیام.
Transaction / @id 1 string یک شناسه منحصر به فرد برای این پیام درخواست. این مقدار در پیام پاسخ برگردانده می شود. کاراکترهای مجاز عبارتند از: az، AZ، ​​0-9، _ (خط زیر)، و - (خط تیر).
Transaction / @partner 1 string حساب شریک برای این پیام. این مقدار رشته، مقدار «کلید شریک» است که در صفحه تنظیمات حساب در مرکز هتل فهرست شده است.

توجه: اگر یک Backend دارید که برای چندین حساب فید ارائه می‌دهد، این مقدار باید با مقدار مشخصه 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> در فید لیست هتل مطابقت داشته باشد. شناسه هتل نیز در مرکز هتل درج شده است.
Transaction / PropertyDataSet / RoomData 0..n RoomData

یک اتاق را توصیف می کند.

توجه: حداقل یکی از <RoomData> یا <PackageData> مورد نیاز است.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID یک شناسه منحصر به فرد برای یک نوع اتاق. این مقدار با استفاده از ویژگی InvTypeCode در عنصر <StatusApplicationControl> در پیام های <OTA_HotelAvailNotifRQ> و <OTA_HotelRateAmountNotifRQ> ارجاع داده می شود.
Transaction / PropertyDataSet / RoomData / Name 1 Name ظرفی برای نام دسته اتاق به یک یا چند زبان.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text نام دسته اتاق را در یک زبان مشخص می کند.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string نام دسته اتاق در زبان مشخص شده توسط ویژگی language .
Transaction / PropertyDataSet / RoomData / Description 1 Name ظرفی برای شرح دسته اتاق به یک یا چند زبان.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text شرح دسته اتاق را به یک زبان مشخص می کند.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string شرح دسته اتاق به زبانی که با ویژگی language مشخص شده است.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string یک کد زبان دو حرفی
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs ظرفی برای عناصر <AllowablePackageID> .

اگر <AllowablePackageIDs> مشخص شده باشد، نوع اتاق مشخص شده توسط <RoomID> در عنصر والد <RoomData> فقط می تواند با برنامه های نرخ تعریف شده توسط عناصر <AllowablePackageID> ترکیب شود.

اگر <AllowablePackageIDs> مشخص نشده باشد، نوع اتاق مشخص شده توسط <RoomID> در عنصر والد <RoomData> را می توان با هر طرح نرخی ترکیب کرد.

از <AllowablePackageIDs> یا <AllowableRoomIDs> استفاده کنید، اما از هر دو استفاده نکنید.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID PackageID یک طرح نرخ را مشخص می کند که می تواند با این نوع اتاق ترکیب شود. طرح نرخ با ترکیبی از بسته، نرخ ها و در دسترس بودن تعریف می شود. PackageID با RatePlanCode در پیام‌های OTA_HotelRateAmountNotifRQ و OTA_HotelAvailNotifRQ مطابقت دارد.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer حداکثر تعداد بزرگسالان و کودکانی که یک اتاق می تواند از نظر فیزیکی در خود جای دهد . این مقدار باید بزرگتر یا مساوی با هر مقدار NumberOfGuests باشد که با نرخ ارسال می کنید.

مقدار <Capacity> باید یک عدد صحیح مثبت بین 1 و 99 باشد. برای مثال اینجا را ببینید.

توجه: اگر <Capacity> تنظیم نشده باشد، تعداد سرنشینان مجاز نامحدود در نظر گرفته می شود. اگر این فیلد تنظیم نشده باشد و ExtraGuestCharges یا AdditionalGuestAmounts تعریف شده باشد، قیمت‌ها را می‌توان برای هر تعداد ساکن ایجاد کرد. توصیه می‌کنیم اگر ExtraGuestCharges یا AdditionalGuestAmounts تعریف شده‌اند، <Capacity> را تنظیم کنید تا مطمئن شوید که قیمت‌ها برای گزینه‌های اشغال نامعتبر نمایش داده نمی‌شوند.

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 هنگامی که این اتاق اقامتگاهی در فضای باز است که دیوارهای ثابت، لوله کشی و کنترل آب و هوا ندارد، این عنصر را ارائه دهید. به عنوان مثال، اتاق‌های هتل محل اقامت در فضای باز نیستند، در حالی که کمپینگ‌هایی که مهمانان در چادرها اقامت می‌کنند و پارک‌های RV که مهمانان RV خود را می‌آورند، اقامتگاه در فضای باز هستند.
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 درست باشد.

برای اینکه فیلترهای وعده غذایی ( 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 ارسال شده بود، پس از دریافت پیام نشان‌داده‌شده توسط Google، نوع اتاق‌های King و Double دیگر وجود نداشتند. توجه داشته باشید که حذف داده‌های بسته بر برنامه نرخ کلی تعریف شده در پیام‌های 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 مهمان داشته باشد. علاوه بر این، ممکن است حداکثر ۴ بزرگسال و حداکثر ۳ کودک داشته باشد. برای اینکه این اتاق قابل رزرو باشد، باید هر سه مورد نیاز ظرفیت رعایت شود. این پیکربندی نماینده یک اتاق معمولی با دو تخت است که هر کدام برای دو نفر مناسب است. ظرفیت کودک یک کمتر از کل ظرفیت است زیرا اتاق باید حداقل یک بزرگسال حضور داشته باشد.

نمونه های گسترده با <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>