Transaction (Tesis Verileri)

İstekler

Söz dizimi

Transaction (Property Data) 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>
      <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>
      <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>
      <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>
    </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 Bu istek mesajının benzersiz tanımlayıcısıdır. Bu değer, yanıt mesajında döndürülür. İzin verilen karakterler a-z, A-Z, 0-9, _ (alt çizgi) ve - (kısa çizgi) şeklindedir.
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..n 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> öğesinde InvTypeCode özelliği kullanılarak belirtilir.
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 / Description 1 Ad Bir veya daha fazla dilde oda kategorisi açıklamasının kapsayıcısıdır.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Metin Bir dilde oda kategorisi açıklamasını belirtir.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n Dize Oda kategorisinin language özelliği tarafından belirtilen dildeki açıklamasıdır.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n Dize İki harfli dil kodudur.
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 / Capacity 0..1 Tamsayı 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 / PackageData / PackageID 1 Dize Bu mesajlardaki PackageID, OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarındaki RatePlanCode öğesine karşılık gelir.
Transaction / PropertyDataSet / PackageData / Name 1 Ad Bir veya daha fazla dilde paket kategorisi adının kapsayıcısıdır.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Metin Bir dilde paket kategorisi adını belirtir.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n Dize Paket kategorisinin language özelliği tarafından belirtilen dildeki adıdır.
Transaction / PropertyDataSet / PackageData / Description 1 Ad Bir veya daha fazla dilde paket kategorisi açıklamasının kapsayıcısıdır.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Metin Bir dilde paket kategorisi açıklamasını belirtir.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n Dize Paket kategorisinin language özelliği tarafından belirtilen dildeki açıklamasıdır.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n Dize İki harfli dil kodudur.
Transaction / PropertyDataSet / PackageData / 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 / PackageData / 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 / 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 Tamsayı (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 330 arasında (0 ve 330 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.

Geçerli değerler 0 (veya false) ve 1 (veya true) şeklindedir.

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. Geçerli değerler 0 (veya false) ve 1 (veya true) şeklindedir.
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>
      <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>
      ...
    </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>

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>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      ...
      <Refundable available="false"/>
    </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 queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      ...
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <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" 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>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      ...
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      ...
      <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>
      ...
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Yanıtlar

Söz dizimi

TransactionResponse (Property Data) mesajında şu söz dizimi kullanılır:
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
                     id="message_ID"
                     partner="partner_account_name">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</TransactionResponse>

Öğeler ve Özellikler

TransactionResponse (Property Data) mesajında aşağıdaki öğeler ve özellikler bulunur:
Öğe / @Özellik Geçtiği yer sayısı Tür Açıklama
TransactionResponse 1 Karmaşık öğe Alınan Transaction istek mesajının başarısını veya sorunlarını gösteren kök öğedir.
TransactionResponse / @timestamp 1 DateTime Bu mesajın oluşturulma tarihi ve saatidir.
TransactionResponse / @id 1 Dize İlişkilendirilmiş Transaction mesajındaki benzersiz tanımlayıcıdır.
TransactionResponse / @partner 1 Dize Bu mesajın iş ortağı hesabıdır.
TransactionResponse / Success 0..1 Success Transaction mesajının uyarı, hata veya sorun olmadan başarıyla işlendiğini belirtir.

Her mesajda <Success> veya <Issues> bulunur.

TransactionResponse / Issues 0..1 Issues Transaction mesajı işlenirken karşılaşılan bir veya daha fazla sorun için kullanılan bir kapsayıcıdır.

Her mesajda <Success> veya <Issues> bulunur.

TransactionResponse / Issues / Issue 1..n Issue Transaction mesajı işlenirken karşılaşılan uyarı, hata veya sorunun açıklamasıdır. Bu sorunlarla ilgili ayrıntılar Feed Durumu Hata Mesajları konusunda bulunabilir.
TransactionResponse / Issues / Issue / @code 1 Tamsayı Sorunun tanımlayıcısıdır.
TransactionResponse / Issues / Issue / @status 1 Enum

Karşılaşılan sorunun türüdür.

Warning (uyarı), error (hata) ve failure (sorun) geçerli değerlerdir.

Örnekler

Success

Aşağıda, başarıyla işlenmiş bir Transaction mesajına yanıt yer almaktadır.

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

Issues

Aşağıda, hatalar nedeniyle işlenmemiş bir Transaction mesajına yanıt yer almaktadır.

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