Transaction (Tesis Verileri)

Söz dizimi

Transaction (Tesis Verileri) mesajında şu söz dizimi kullanılır:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_account_name">
  <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>
      <!-- (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>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Capacity>max_number_of_occupants</Capacity>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <!-- (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"/>
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Öğeler ve Özellikler

Transaction (Tesis Verileri) mesajında şu öğeler ve özellikler bulunur:
Öğe / @Özellik Geçtiği yer sayısı Tür Açıklama
Transaction 1 Karmaşık öğe ARI uygulamasında, tek bir tesise ait oda türlerini ve paketleri tanımlayan mesajın kök öğesidir.
Transaction / @timestamp 1 DateTime Bu mesajın oluşturulma tarihi ve saatidir.
Transaction / @id 1 Dize Her Transaction mesajının benzersiz tanımlayıcısıdır.
Transaction / @partner 1 Dize Bu mesajın iş ortağı hesabıdır. Bu dize değeri, Hotel Center'ın Hesap ayarları sayfasında listelenen "İş ortağı anahtarı" değeridir.

Not: Birden fazla hesap için feed sağlayan bir arka ucunuz varsa bu değerin aynı hesap genelinde <OTA_HotelRateAmountNotifRQ> ve <OTA_HotelAvailNotifRQ> mesajlarınızın <RequestorID> öğesinde belirtilen ID özellik değeriyle eşleşmesi gerekir.

Transaction / PropertyDataSet 1 PropertyDataSet Tek bir tesise ait oda türlerini ve paketleri tanımlayan kapsayıcıdır.
Transaction / PropertyDataSet / @action 0..1 Enum

Oda fiyatı tanımlarına uygulanacak güncelleme türüdür.

Geçerli değerler şunlardır:

  • overlay: Tesisin önceden tanımlanan <RoomData> ve <PackageData> öğelerini değiştirir. Geçerli mesajdaki yalnızca <RoomData> ve <PackageData> geçerlidir.
  • delta: Önceden tanımlanmayan <RoomData> ve <PackageData> öğelerini ekler veya mevcut olanları değiştirir.

Bu özellik isteğe bağlıdır ve belirtilmezse varsayılan olarak delta değerine ayarlanır.

Transaction / PropertyDataSet / Property 1 Dize Tesisin benzersiz tanımlayıcısıdır. Bu değer, Otel Listesi Feed'indeki <listing> öğesinde <id> kullanılarak belirtilen Otel Kimliği ile eşleşmelidir. Otel Kimliği, Hotel Center'da da listelenir.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Bir odayı tanımlar.

Not: En az bir <RoomData> veya <PackageData> gereklidir.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Bir oda türünün benzersiz tanımlayıcısıdır. Bu değer, <OTA_HotelAvailNotifRQ> ve <OTA_HotelRateAmountNotifRQ> mesajlarının <StatusApplicationControl> öğesindeki InvTypeCode özelliği kullanılarak belirtilir.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs <AllowablePackageID> öğelerinin kapsayıcısıdır.

<AllowablePackageIDs> belirtilirse üst <RoomData> öğesindeki <RoomID> tarafından belirtilen oda türü yalnızca <AllowablePackageID> öğeleri tarafından tanımlanan ücret planlarıyla birleştirilebilir.

<AllowablePackageIDs> belirtilmezse üst <RoomData> öğesindeki <RoomID> tarafından belirtilen oda türü herhangi bir ücret planıyla birleştirilebilir.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Bu oda türüyle birleştirilebilecek bir ücret planının PackageID'sini belirtir. Ücret planı; paket, ücret ve stok durumu birleşimiyle tanımlanır. PackageID, OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarındaki RatePlanCode öğesine karşılık gelir.
Transaction / PropertyDataSet / RoomData / Name 1 Ad Bir veya daha fazla dilde oda kategorisi adının kapsayıcısıdır.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Metin Bir dilde oda kategorisi adını belirtir.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n Dize Oda kategorisinin language özelliği tarafından belirtilen dildeki adıdır.
Transaction / PropertyDataSet / RoomData / Name / Text / @language 1..n Dize İki harfli dil kodudur.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 Tam sayı Bir odada fiziksel olarak konaklayabilecek maksimum konuk sayısıdır. Ücretlerle birlikte gönderdiğiniz tüm NumberOfGuests değerlerinden büyük veya bu değerlere eşit olmalıdır.

<Capacity> değeri, 1 ile 99 arasında (1 ve 99 dahil) pozitif bir tam sayı olmalıdır.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL Belirtilen odanın ya da Oda Paketi'nin fotoğrafına ait URL ve isteğe bağlı başlıktır. Bir oda veya Oda Paketi için birden fazla <PhotoURL> belirtebilirsiniz.

Bu öğede şu alt öğeler kullanılır:

  • <URL>: Fotoğrafın konumunu belirtir. Konum herkese açık olmalıdır (güvenlik duvarı arkasında olmamalıdır) ve protokolü (http://) içermelidir.
  • <Caption>: Fotoğrafın başlığını tanımlar. Bu öğede tek bir alt öğe (<Text>) kullanılır ve iki özelliğe (text ve language) sahiptir. text özelliği başlıktır ve language özelliği de "en" gibi iki harfli dil kodlarını belirtir.

<PhotoURL>
  <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
  <Caption>
    <Text text="A bright and breezy way to enjoy your mornin'
      cuppa tea." language="en"/>
    <Text text="Une façon lumineuse et aérée pour profiter
      de votre journée tasse de thé." language="fr"/>
  </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / AllowableRoomIDs 0..1 AllowableRoomIDs <AllowableRoomID> öğelerinin kapsayıcısıdır.

<AllowableRoomIDs> belirtilirse üst <PackageData> öğesindeki <PackageID> tarafından belirtilen ücret planı yalnızca <AllowableRoomID> öğeleri tarafından tanımlanan oda türleriyle birleştirilebilir.

<AllowableRoomIDs> belirtilmezse üst <PackageData> öğesindeki <PackageID> tarafından belirtilen ücret planı herhangi bir oda türüyle birleştirilebilir.

Transaction / PropertyDataSet / RoomData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Bu ücret planıyla birleştirilebilecek bir oda türünün RoomID'sini belirtir. Oda türü, <RoomData> öğesinde belirtilir.
Transaction / PropertyDataSet / PackageData 0..n PackageData Fiziksel oda açıklamasında yer almayan ücret özellikleri ve şartlarını açıklayan öğelerin kapsayıcısıdır.
Transaction / PropertyDataSet / PackageData / PackageID 1 Dize Bu mesajlardaki PackageID, OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarındaki RatePlanCode öğesine karşılık gelir.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Geri ödemeli Bir ücretin eksiksiz şekilde geri ödenebilir olarak listelenmesine veya ücretsiz iptal imkanının sunulmasına olanak tanır. Sağlanmazsa geri ödemeyle ilgili hiçbir bilgi görüntülenmez.

Not: Tüm özellikleri ayarlamanızı öneririz. Bir veya daha fazla özellik ayarlanmadığında feed durumu uyarı mesajı oluşturulur.

Hiçbir özelliği ayarlamazsanız ücret geri ödenebilir olarak gösterilmez.

Özellikleri ayarlarken şunlara dikkat edin:

  • available veya refundable_until_days ayarlanmazsa ücret geri ödenebilir olarak gösterilmez.
  • available değeri, 0 veya false ise diğer özellikler yoksayılır. Diğer özelliklerden biri veya her ikisi de ayarlanmış olsa bile ücret geri ödenebilir olarak gösterilmez.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 Boole (Zorunlu) Ücretin eksiksiz şekilde geri ödenebildiğini belirtmek için 1 veya true olarak ayarlayın. Aksi takdirde 0 veya false olarak ayarlayın.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 Tam sayı (available değeri, true ise zorunludur) Eksiksiz geri ödeme isteğinin, check-in tarihinden kaç gün önce yapılabileceğini belirtir. refundable_until_days değeri, 0 ile 333 arasında (0 ve 333 dahil) bir tam sayı olmalıdır.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0..1 Saat (available değeri, true ise önemle tavsiye edilir) Eksiksiz geri ödeme saatinin dikkate alınacağı, günün son saatini (otelin yerel saatine göre) belirtir. Örneğin, "geri ödemelerin check-in'den iki gün önce saat 16.00'ya kadar kabul edileceğini" belirtmek için refundable_until_days ile birleştirilebilir. refundable_until_time ayarlanmazsa değer varsayılan olarak gece yarısı olur.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 Boole Bu oda türünde kahvaltının dahil olup olmadığını belirtir.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 Boole Diğer odalarda ücretsiz internet erişimi yokken bu odada bu imkanın olup olmadığını belirtir. Tüm odalarda ücretsiz internet sunan otellerde bu öğeyi ayarlamayın. Bu öğe, oda içi kablolu internet ya da konuk odalarında kullanılamayan kablosuz internet için geçerli değildir.
Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 Boole

Otopark hizmetinin ücretli olduğu otellerde oda ücretine ücretsiz otopark hizmetinin dahil olup olmadığını belirtir. Ücretsiz otopark hizmeti sunan otellerde bu öğe için değer belirtmeyin.

Geçerli değerler 0 (veya false) ve 1 (veya true) değerleridir. Varsayılan değer: false.

Örnekler

1. Örnek

Aşağıdaki temel örnekte, tesisin oda ve paket verilerinin Transaction (Tesis Verileri) mesajında nasıl tanımlanacağı gösterilmektedir. overlay özelliği, daha önceden beklenmedik şekilde mevcut olan tüm verilerin silinmesini ve bu mesajdaki verilerle değiştirilmesini sağlamak için kullanılır:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_account_name">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <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>
      ...
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Refundable>1</Refundable>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Refundable>1</Refundable>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

2. Örnek

Aşağıdaki örnekte, mevcut <Transaction> verilerine oda türü ve paketin nasıl ekleneceği gösterilmektedir:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_account_name">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      ...
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Refundable>0</Refundable>
      <BreakfastIncluded>1</BreakfastIncluded>
      <ParkingIncluded>1<ParkingIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

3. Örnek

Aşağıdaki örnekte mevcut oda türleri ve paketlerin nasıl kaldırılacağı gösterilmektedir. Bu senaryoda, 1. ve 2. örnekteki mesajlar daha önce Google'a gönderilmişse Google aşağıdaki mesajı aldıktan sonra King ve Double (Çift Kişilik) oda türleri artık mevcut olmaz. Paket verilerinin kaldırılmasının; Transaction (Mülk Verileri), OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarında tanımlanan genel ücret planını etkilediğini (aynı PackageID değerine başvurarak) ve bu nedenle diğer mesaj türlerini kullanan ilgili güncellemelerin, PackageID_2 ve PackageID_3'ün artık burada tanımlanmadığını yansıtması gerektiğini unutmayın.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_account_name">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <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>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Refundable>1</Refundable>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

4. Örnek

Aşağıdaki örnekte, bir oda türünde izin verilen ücret planlarını kısıtlamak için <AllowablePackageIDs> öğesinin nasıl kullanılacağı gösterilmektedir. Bu örnekte, Queen (Çift Kişilik) oda türü (RoomID_2) yalnızca PackageID_1 olarak tanımlanan paket ve ücret planıyla birleştirilebilir.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_account_name">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      ...
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      ...
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Refundable>1</Refundable>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Refundable>1</Refundable>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>