المعاملة (بيانات الموقع)

الطلبات

البنية

تستخدم الرسالة Transaction (Property Data) البنية التالية:

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

العناصر والسمات

تحتوي رسالة المعاملة (بيانات الموقع) على العناصر التالية :

العنصر / @Attribute عدد مرات الظهور النوع الوصف
Transaction 1 Complex element في عملية تنفيذ ARI، يكون هذا العنصر هو العنصر الجذري للرسالة تحديد أنواع وحزم الغرف لخاصية واحدة.
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> في خلاصة قوائم الفنادق مُدرَج أيضًا رقم تعريف الفندق في مركز إدارة معلومات الفنادق.
Transaction / PropertyDataSet / RoomData 0..n RoomData

يصف غرفة.

ملاحظة: واحد على الأقل من <RoomData> أو <PackageData> مطلوبة.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID معرّف فريد لنوع غرفة تتم الإشارة إلى هذه القيمة باستخدام السمة InvTypeCode في عنصر <StatusApplicationControl> في <OTA_HotelAvailNotifRQ> و <OTA_HotelRateAmountNotifRQ> رسالة
Transaction / PropertyDataSet / RoomData / Name 1 Name حاوية لاسم فئة الغرفة في غرفة واحدة أو أكثر اللغات.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text تُستخدَم لتحديد اسم فئة الغرفة بلغة واحدة.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string اسم فئة الغرفة باللغة التي يحددها language.
Transaction / PropertyDataSet / RoomData / Description 1 Name حاوية لوصف فئة الغرفة في واحد أو أكثر اللغات.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text تُستخدَم لتحديد وصف فئة الغرفة بلغة واحدة.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string وصف فئة الغرفة باللغة المحدّدة من خلال السمة language
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string من حرفين رمز اللغة.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs تمثّل هذه السمة حاوية لعناصر <AllowablePackageID>.

إذا تم تحديد <AllowablePackageIDs>، غرفة النوع المحدد في <RoomID> في العنصر الرئيسي <RoomData> يمكن فقط إلى جانب خطط الأسعار التي تحددها <AllowablePackageID>.

إذا لم يتم تحديد <AllowablePackageIDs>، ستتم غرفة النوع المحدد بواسطة <RoomID> في العنصر الرئيسي يمكن دمج العنصر <RoomData> مع أي خطة الأسعار.

استخدِم إما <AllowablePackageIDs> أو <AllowableRoomIDs>، ولكن ليس الاثنين معًا.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID تحدّد هذه السمة معرّف الحزمة لخطة الأسعار التي يمكن دمجها مع هذه القيمة. نوع الغرفة. يتم تحديد خطة الأسعار من خلال مجموعة من الحزمة والأسعار والتوافر. PackageID مع RatePlanCode في رسائل OTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer الحد الأقصى لعدد البالغين والأطفال التي يمكن أن تتوفر في الغرفة جسديًا. يجب أن تكون هذه القيمة أكبر من أو تساوي أي قيم NumberOfGuests ترسلها مع الأسعار.

يجب أن تكون قيمة <Capacity> عددًا صحيحًا موجبًا. من 1 إلى 99 ضمنًا. عرض هنا للاطّلاع على مثال

ملاحظة:إذا لم يتم ضبط <Capacity>، سيُعرض الرقم من النزلاء المسموح بهم تعتبر غير محدودة. إذا كان هذا الحقل لم يتم ضبطه، ولم يتم ضبط ExtraGuestCharges أو تم تحديد AdditionalGuestAmounts والأسعار. يمكن إنشاؤها لأي عدد من النزلاء. ننصحك بما يلي: الذي تضبط <Capacity> إذا ExtraGuestCharges أو AdditionalGuestAmounts لضمان توافق الأسعار لا يتم عرضها لخيارات الإشغال غير الصالحة.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer الحد الأقصى لعدد البالغين الذي يمكن أن تتسم به الغرفة فعليًا لاستيعاب. يجب أن يكون هذا أكبر من أو يساوي NumberOfGuests قيمة ترسلها مع الأسعار

يجب أن تكون قيمة <AdultCapacity> موجبة. عدد صحيح بين 1 و99، ضمنًا. عرض هنا للاطّلاع على مثال

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer الحد الأقصى لعدد الأطفال التي يمكن في الغرفة فعليًا لاستيعاب.

يجب أن تكون قيمة <ChildCapacity> موجبة. عدد صحيح بين 1 و99، ضمنهما. عرض هنا للاطّلاع على مثال

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings الإعدادات التي يمكنها تقييد أو تعديل متطلبات الإشغال غُرفة.

يأخذ العنصر <OccupancySettings> العناصر الفرعية التالية:

  • <MinOccupancy>: الحد الأدنى لعدد الضيوف التي يمكن أن تبقى في غرفة. على سبيل المثال، إذا تم تعيين هذا على 2، لا يمكن حجز هذه الغرفة لضيف واحد.

    يجب أن تكون قيمة <MinOccupancy> موجبة. عدد صحيح بين 1 و99، ضمنهما.

  • <MinAge>: الحد الأدنى لعمر جميع النزلاء البقاء في غرفة. مثلاً، إذا تم الضبط على 18، لا يمكن حجز هذه الغرفة إلا للمجموعات التي يكون جميع الضيوف فيها بعمر 18 عامًا أو أعلى منه.

    يجب أن تكون قيمة <MinAge> عددًا صحيحًا موجبًا. بين 0 و99، ضمنًا.

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

لا يلزم تضمين جميع العناصر الثانوية.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL عنوان URL وتسمية توضيحية اختيارية لصورة الغرفة أو التسمية التوضيحية الاختيارية حزمة غرف. يمكنك تحديد أكثر من سمة <PhotoURL> واحدة. عن غرفة أو مجموعة غرف

يأخذ هذا العنصر العناصر الثانوية التالية:

  • <URL>: لتحديد موقع الصورة. تشير رسالة الأشكال البيانية أن يكون الموقع عامًا (وليس خلف جدار حماية) كما ينبغي أن يتضمن البروتوكول (http://).
  • <Caption>: لتحديد شرح الصورة. يأخذ هذا العنصر عنصرًا ثانويًا واحدًا، وهو <Text>، التي تضم سمتين مطلوبتين، Text language السمة Text هي الترجمة والشرح وتحدد السمة language حرفًا من حرفين رمز اللغة مثل en.
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> تحتوي على معلومات عن ميزات الغرف.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 enum

يشير إلى نمط غرفة فندق يابانية.

القيم الصالحة هي:

  • western: غرفة على الطراز الغربي فيها أسرّة
  • japanese: غرفة على الطراز الياباني فيها أسرّة فوتون
  • japanese_western: غرفة على الطراز الغربي الياباني بها أسرّة على الطراز الغربي ومقاعد فوتون على الطراز الياباني
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object تحتوي على أكبر عدد ممكن من <Bed> في الغرفة. ملاحظة أنه لا ينبغي عد مقاعد الفوتون اليابانية هنا.

ولكل <Bed> السمات التالية:

  • size (اختيارية): القيم الصالحة هي single، semi_double وdouble وqueen king
تحتوي كل <Bed> على العناصر الثانوية التالية:
  • <Width> (اختياري): تحدِّد هذه السياسة عرض السرير. يجب أن تحتوي على السمة unit مع القيمة cm والسمة number بعرض السرير بسنتيمتر صحيح.
  • <Length> (اختياري): تحدّد طول السرير. يجب أن تحتوي على السمة unit مع القيمة cm والسمة number التي تتضمّن طول السرير سنتيمتر صحيح.
مثال:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum يتم توفير هذا العنصر عندما تكون هذه الغرفة جناحًا.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum يمكنك توفير هذا العنصر عندما تكون هذه الغرفة غرفة صغيرة.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum ما إذا كانت هذه الغرفة مشتركة مع أشخاص آخرين، مثل المالكين أو ضيوف آخرين. القيمتان الصالحتان هما shared وprivate.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum يمكنك تقديم هذا العنصر عندما تكون هذه الغرفة للإقامة في الهواء الطلق غير مسموح بها. ولها جدران ثابتة وسباكة وتحكم في المناخ. على سبيل المثال، تتضمن غرف الفنادق فهي ليست إقامة في الهواء الطلق في حين أن مواقع التخييم حيث يقيم الضيوف في الخيام وتتوفّر مواقف للمركبات الترفيهية حيث يجلب النزلاء مركبتهم الترفيهية.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum يجب توفير هذا العنصر عندما يكون من الممكن التنقّل في هذه الغرفة.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum ما إذا كانت هذه الغرفة غرفة لغير المدخنين أو غرفة للتدخين. صالحة القيمتان non_smoking وsmoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object يحتوي على معلومات حول الحمّام والمرحاض في الغرفة

السمة هي:

  • relation (اختيارية): تشير إلى كيفية حوض الاستحمام المراحيض بالنسبة لبعضها البعض. القيم الصالحة هي together، على سبيل المثال، حمّام فيه حمامان والمرحاض معًا في نفس الغرفة؛ أو separate، حيث خصّص كل من الحمام والمرحاض مسافات. يجب عدم ضبط هذه السمة في حال عدم احتواء الغرفة على حوض الاستحمام والمرحاض.

يأخذ العنصر بشكل اختياري العناصر الثانوية التالية:

  • <Bath> (اختياري): توفّر هذا العنصر إلى أن الغرفة تحتوي على حوض استحمام.

    السمات هي:

    • bathtub (اختياري): يشير إلى أنّ الحمّام يحتوي على حوض الاستحمام في الحمام. القيم الصالحة هي 0 (أو false) و1 (أو true).
    • shower (اختياري): يشير إلى أنّ الحمّام يحتوي على دُشّ القيمتان الصالحتان هما 0 (أو false) و 1 (أو true).
  • <Toilet> (اختياري): توفّر هذا العنصر إلى أن هذه الغرفة تحتوي على مرحاض.

    السمات هي:

    • electronic_bidet (اختيارية): تشير إلى أنّ قيمة يحتوي المرحاض على بيديه إلكتروني. القيمتان الصالحتان هما 0 (أو false) و 1 (أو true).
    • mobility_accessible (اختيارية): تشير إلى أنّ قيمة المرحاض سهل الوصول إليها. القيم الصالحة هي 0 (أو false) و1 (أو true).

مثال:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum يمكنك تقديم هذا العنصر عندما تحتوي هذه الغرفة على حمّام خاص في الهواء الطلق.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum يمكنك تقديم هذا العنصر عندما تتوفّر مكيّفات هواء في هذه الغرفة.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum يجب تقديم هذا العنصر عندما تحتوي هذه الغرفة على شرفة أو شرفة.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object تشمل الخيارات الصالحة ما يلي:

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

Transaction / PropertyDataSet / PackageData 0..n PackageData

حاوية للعناصر التي تصف ميزات السعر والمصطلحات التي ليست جزءًا من وصف الغرفة الفعلي.

ملاحظة: واحد على الأقل من <RoomData> أو <PackageData> مطلوبة.

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID في هذه الرسائل تتوافق مع RatePlanCode في OTA_HotelRateAmountNotifRQ و رسائل OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name حاوية لاسم الطرد بلغة واحدة أو أكثر
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text تحدد اسم الحزمة بلغة واحدة.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string اسم الحزمة باللغة التي تحدّدها السمة language.
Transaction / PropertyDataSet / PackageData / Description 1 Description حاوية لوصف الحزمة بلغة واحدة أو أكثر
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text تحدد وصف الحزمة بلغة واحدة.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string وصف الحزمة باللغة التي تحدّدها السمة language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string من حرفين رمز اللغة.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs تمثّل هذه السمة حاوية لعناصر <AllowableRoomID>.

إذا تم تحديد <AllowableRoomIDs>، ستُطبَّق خطة الأسعار التي تم تحديدها بواسطة <PackageID> في العنصر الرئيسي <PackageData> يمكن فقط مع أنواع الغرف المحددة بواسطة <AllowableRoomID>.

إذا لم يتم تحديد <AllowableRoomIDs>، سيتم تحديد المعدّل الخطة التي حدّدها <PackageID> في العنصر الرئيسي يمكن دمج العنصر <PackageData> مع أي نوع الغرفة.

استخدِم إما <AllowablePackageIDs> أو <AllowableRoomIDs>، ولكن ليس الاثنين معًا.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID تُحدِّد رقم تعريف الغرفة لنوع الغرفة الذي يمكن دمجه مع هذا. خطة الأسعار. يتم تحديد نوع غرفة في <RoomData> العنصر.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable لتفعيل إدراج سعر على أنّه قابل للاسترداد بالكامل أو القابل للإلغاء. وإذا لم يتم تقديمها، لن يتم عرض أي معلومات حول رد الأموال.

ملاحظة: ننصح بإعداد جميع السمات. خلاصة يتم إنشاء رسالة تحذيرية بالحالة عند إنشاء سمة واحدة أو أكثر لم يتم تعيينها.

إذا لم تضبط أي سمات، لن يظهر السعر على النحو التالي: قابلة للاسترداد.

عند ضبط السمات، يجب مراعاة ما يلي:

  • في حال available أو refundable_until_days لم يتم تعيينه، فلن يظهر السعر على أنه قابل للاسترداد.
  • إذا كانت قيمة available هي 0 أو false، ويتم تجاهل التصنيفات الأخرى. لا يظهر السعر على النحو التالي: حتى إذا تم تعيين إحدى السمتين الأخريين أو كلتيهما.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (مطلوب) تم ضبطه على 1 أو true للإشارة إلى ما إذا كان المعدل يسمح ردّ الأموال والمضبوطة على 0 أو false
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (مطلوبة إذا available هي true) يتم تحديدها عدد الأيام قبل تسجيل الوصول الذي يمكن فيه استرداد الأموال بالكامل طلبنا. قيمة refundable_until_days يجب أن يكون عددًا صحيحًا بين 0 و330، شاملاً.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (يُنصح به بشدة إذا available هي true) يتم تحديدها آخر وقت في اليوم، بالتوقيت المحلي للفندق، حيث تكون سيتم قبول طلب استرداد الأموال. يمكن جمع ذلك مع refundable_until_days تحديدًا، بالنسبة إلى على سبيل المثال، "تتوفر عمليات رد الأموال حتى الساعة 4: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 سابقًا، King لن يتوفّر نوعان (Double) من الغرف بعد تلقّي Google الرسالة. كما هو موضح. يُرجى العلم أنّ إزالة بيانات الحزمة تؤثّر في خطة الأسعار الإجمالية. كما هو محدّد في المعاملة (بيانات الموقع)، OTA_HotelRateAmountNotifRQ، وOTA_HotelAvailNotifRQ رسالة (من خلال الإشارة إلى نفس PackageID وبالتالي، قد تكون التحديثات المقابلة التي تستخدم أنواع الرسائل الأخرى المطلوبة لإظهار أن PackageID_2 وPackageID_3 لم تعدا المحددة هنا.

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


خطط الأسعار المشروطة

إليك مثال على كيفية استخدام <AllowablePackageIDs> لتقييد خطط الأسعار المسموح بها لنوع الغرفة. في هذا المثال، لا يمكن دمج نوع الغرفة Queen (RoomID_2) إلا مع الحزمة محددة على أنها PackageID_1.

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

تقييد سعة الغرفة

إليك مثال على كيفية استخدام <Capacity> و<AdultCapacity> عناصر <ChildCapacity> لوضع قيود على سعة الغرف.

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

ويمكن أن يضم نوع الغرفة المزدوجة (RoomID_1) ما يصل إلى 4 نزلاء. بالإضافة إلى ذلك، قد يكون هناك ما يصل إلى 4 أشخاص بالغين وما يصل إلى 3 أطفال. السعة الثلاث يجب استيفاء المتطلبات لتكون هذه الغرفة قابلة للحجز. هذا النمط تمثل التهيئة غرفة نموذجية بها سريران يمكن لكل منهما لتناسب شخصين. سعة الأطفال أقل من السعة الإجمالية بمقدار واحد لأنه يجب أن يكون هناك شخص بالغ واحد على الأقل في الغرفة.

أمثلة موسّعة حول <RoomFeatures> والوجبات

لا يتضمّن JapaneseHotelRoomStyle قيمة تلقائية. لا يؤدي حذف قيمة إلى حدوث خطأ XML، ولكن لا يؤدي حذف بياناتك إلى تظهر في نتائج البحث، عندما يفلتر المستخدم حسب نمط الغرفة أو الأسرّة.

سريران مفردان

يوضّح المثال التالي كيفية استخدام <RoomFeatures>:

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

سريران مزدوجان

في ما يلي مثال على غرفة نمط western التي تحتوي على غرفتين سريران (double).

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

على الطراز الياباني بدون سرير

فيما يلي مثال على غرفة على الطراز الياباني بدون سرير. سرير المعلومات غير مطلوبة لغرفة نمط japanese.

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

مأكولات غربية يابانية مع سرير

في ما يلي مثال على غرفة نمط japanese_western مع king وحجم سريرك.

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

إذا لم تتوفّر للشريك معلومات عن عدد الأسرّة في japanese_western الغرف، ثم ارجع إلى المثال التالي:

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


الوجبات

يحدد المثال التالي بيانات التعريف للغرفة والحزمة للوجبات والصور وأوقات الوصول والمغادرة:

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

وجبة الفطور فقط

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

الردود

البنية

تستخدم الرسالة TransactionResponse (Property Data) البنية التالية:

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

العناصر والسمات

تحتوي رسالة "TransactionResponse (Property Data)" على ما يلي: العناصر والسمات:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
TransactionResponse 1 Complex element يشير هذا المصطلح إلى العنصر الجذر الذي يشير إلى نجاح أو مشاكل في عملية استلام. رسالة طلب المعاملة
TransactionResponse / @timestamp 1 DateTime تاريخ إنشاء هذه الرسالة ووقتها.
TransactionResponse / @id 1 string المعرّف الفريد الوارد في رسالة المعاملة المرتبطة
TransactionResponse / @partner 1 string حساب الشريك لهذه الرسالة
TransactionResponse / Success 0..1 Success يشير إلى أنّه تمّت معالجة رسالة المعاملة بنجاح بدون تحذيرات أو أخطاء أو إخفاقات.

قيمة <Success> أو <Issues> هي موجود في كل رسالة.

TransactionResponse / Issues 0..1 Issues حدثت حاوية لمشكلة واحدة أو أكثر أثناء معالجة رسالة المعاملة.

قيمة <Success> أو <Issues> هي موجود في كل رسالة.

TransactionResponse / Issues / Issue 1..n Issue وصف للتحذير أو الخطأ أو الخطأ الذي حدث أثناء معالجة رسالة المعاملة. يمكنك الاطّلاع على تفاصيل حول هذه المشاكل. في رسائل الخطأ لحالة الخلاصة.
TransactionResponse / Issues / Issue / @code 1 integer معرِّف المشكلة.
TransactionResponse / Issues / Issue / @status 1 enum

نوع المشكلة التي حدثت.

القيمتان الصالحتان هما warning وerror. وfailure.

أمثلة

تم الإجراء بنجاح

في ما يلي ردّ على رسالة "معاملة" تمت معالجتها بنجاح.

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

المشاكل

في ما يلي ردّ على رسالة حول "معاملة" لم تتم معالجتها بسبب الأخطاء.

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