Solicitações
Sintaxe
A mensagem Transaction (Property Data) usa a seguinte sintaxe:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<OccupancySettings>
<MinOccupancy>min_number_of_occupants</MinOccupancy>
<MinAge>min_age_of_occupants</MinAge>
</OccupancySettings>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
</Caption>
<URL>photo_location</URL>
</PhotoURL>
<RoomFeatures>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_length"/>
</Bed>
<!-- Include with any additional beds. -->
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>[shared|private]</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>[smoking|non_smoking]</Smoking>
<BathAndToilet relation="[together|separate]">
<Bath bathtub="[false|true]" shower="[false|true]"/>
<Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<!-- (Optional) Defines the type of views from the room. -->
<!-- Example: <OceanView/> -->
</Views>
</RoomFeatures>
</RoomData>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<!-- Add Loyalty point information -->
<MilesIncluded>
<LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
<!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
<NumberOfMiles>integer</NumberOfMiles>
</MilesIncluded>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
Elementos e atributos
A mensagem "Transação (dados da propriedade)" tem os seguintes elementos e atributos:
| Elemento / @Attribute | Ocorrências | Tipo | Descrição |
|---|---|---|---|
| Transaction | 1 | Complex element | Em uma implementação do ARI, esse é o elemento raiz de uma mensagem que define tipos de quarto e pacotes para uma única propriedade. |
| Transaction / @timestamp | 1 | DateTime | A data e a hora de criação desta mensagem. |
| Transaction / @id | 1 | string | Um identificador exclusivo para esta mensagem de solicitação. Esse valor é retornado na mensagem de resposta. Os caracteres permitidos são a-z, A-Z, 0-9, _ (sublinhado) e - (traço). |
| Transaction / @partner | 1 | string | A conta do parceiro para esta mensagem. Esse valor de string é a "Chave do parceiro" listada na
página "Configurações da conta" da Central para Hotéis.
Observação:se você tiver um back-end que forneça feeds para várias contas, esse valor precisará corresponder ao valor do atributo |
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Um contêiner para definir tipos de quartos e pacotes para uma única propriedade.
Recomendamos que você envie |
| Transaction / PropertyDataSet / @action | 0..1 | enum | O tipo de atualização a ser aplicada às definições de tarifa do quarto. Os valores válidos são:
Esse atributo é opcional e o padrão é |
| Transaction / PropertyDataSet / Property | 1 | string | O identificador exclusivo da propriedade. Esse valor precisa corresponder ao ID do hotel especificado usando
<id> no elemento <listing> do feed de lista de hotéis. O ID do hotel também está listado na Central para Hotéis. |
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Descreve uma sala. Observação: é necessário incluir pelo menos um dos seguintes campos: |
| Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | Um identificador exclusivo de um tipo de quarto. Esse valor é referenciado usando o atributo InvTypeCode no elemento <StatusApplicationControl> nas mensagens <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ> e <OTA_HotelInvCountNotifRQ>. |
| Transaction / PropertyDataSet / RoomData / Name | 1 | Name | Contêiner para o nome da categoria de quarto em um ou mais idiomas. |
| Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | Especifica o nome da categoria de sala em um idioma. |
| Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | O nome da categoria de quarto no idioma especificado pelo atributo
language. |
| Transaction / PropertyDataSet / RoomData / Description | 1 | Name | Contêiner para a descrição da categoria de quarto em um ou mais idiomas. |
| Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | Especifica a descrição da categoria de quarto em um idioma. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | A descrição da categoria de quarto no idioma especificado pelo atributo language. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | Um código de idioma de duas letras. |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | Um contêiner para elementos <AllowablePackageID>.
Se Se Use |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Especifica o PackageID de um plano de tarifas que pode ser combinado com este
tipo de quarto. Um plano de tarifas é definido por uma combinação de
pacote, tarifas e disponibilidade. O PackageID corresponde ao RatePlanCode nas mensagens OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ.
|
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | O número máximo de adultos e crianças que um quarto pode acomodar fisicamente. Esse valor precisa ser maior ou igual a
qualquer valor de NumberOfGuests enviado com as taxas.
O valor de Observação:se |
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | O número máximo de adultos que um quarto pode acomodar fisicamente. Esse valor precisa ser maior ou igual a qualquer valor de NumberOfGuests enviado com as taxas.
O valor de |
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | O número máximo de crianças que um quarto pode acomodar fisicamente.
O valor de |
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Configurações que podem restringir ou modificar os requisitos de ocupação de uma sala.
O elemento
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Não é necessário incluir todos os elementos filhos. |
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | Um URL e uma legenda opcional para uma foto do quarto ou
pacote de quarto. É possível especificar mais de um <PhotoURL>
para uma sala ou um pacote de salas.
Esse elemento usa os seguintes elementos filhos:
<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> |
Contém informações sobre os recursos da sala. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | Indica o estilo de um quarto de hotel japonês. Os valores válidos são:
|
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Contém o mesmo número de <Bed> que o quarto. Os futons japoneses não devem ser contados aqui.
Cada
<Bed> tem os seguintes elementos filhos:
<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 | Forneça esse elemento quando o quarto for uma suíte. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | Forneça esse elemento quando o quarto for uma cápsula. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | Se o quarto é compartilhado com outros ocupantes, como proprietários ou outros hóspedes. Os valores válidos são: shared e private. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | Forneça esse elemento quando o quarto for um alojamento ao ar livre sem paredes fixas, encanamento e controle de temperatura. Por exemplo, quartos de hotel não são hospedagens a céu aberto, mas áreas de acampamento com tendas para os hóspedes e estacionamentos para trailers dos próprios visitantes são. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | Forneça esse elemento quando o quarto for acessível para pessoas com mobilidade reduzida. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | Se o quarto é para não fumantes ou para fumantes. Os valores
válidos são non_smoking e smoking. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | Contém informações sobre um banheiro e um vaso sanitário no quarto.
O atributo é:
O elemento pode receber os seguintes elementos filhos:
Exemplo: <BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet
electronic_bidet="1"
mobility_accessible="1"/>
</BathAndToilet> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | Forneça esse elemento quando o quarto tiver uma banheira privativa ao ar livre. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | Informe esse elemento quando o quarto tiver ar-condicionado. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | Informe esse elemento quando o quarto tiver uma sacada ou varanda. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | As opções válidas incluem:
|
| Transaction / PropertyDataSet / PackageData | 0..n | PackageData | Contêiner para elementos que descrevem recursos e termos de tarifas que não fazem parte da descrição física do quarto. Observação: é necessário incluir pelo menos um dos seguintes campos: |
| Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | PackageID nessas mensagens corresponde a RatePlanCode nas mensagens OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ. |
| Transaction / PropertyDataSet / PackageData / Name | 1 | Name | Contêiner para o nome do pacote em um ou mais idiomas. |
| Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | Especifica o nome do pacote em um idioma. |
| Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | O nome do pacote no idioma especificado pelo atributo
language. |
| Transaction / PropertyDataSet / PackageData / Description | 1 | Description | Contêiner para a descrição do pacote em um ou mais idiomas. |
| Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | Especifica a descrição do pacote em um idioma. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | A descrição do pacote no idioma especificado pelo atributo language. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | Um código de idioma de duas letras. |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | Um contêiner para elementos <AllowableRoomID>.
Se Se Use |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Especifica o RoomID de um tipo de quarto que pode ser combinado com este
plano de tarifa. Um tipo de sala é definido em um elemento
<RoomData>.
|
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | Adicione informações sobre pontos de fidelidade aos pacotes com base na definição dos planos de tarifas ou pacotes. Especifique o elemento <MilesIncluded>
no elemento <PackageData> que define o plano de tarifas.
<MilesIncluded> tem o seguinte elemento filho:
|
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Permite listar uma tarifa como totalmente reembolsável ou cancelável. Se não for fornecido, nenhuma informação sobre um reembolso será exibida.
Observação:recomendamos definir todos os atributos. Uma mensagem de aviso de status do feed é gerada quando um ou mais atributos não estão definidos. Se você não definir nenhum atributo, a tarifa não vai aparecer como reembolsável. Ao definir os atributos, observe o seguinte:
|
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Obrigatório) Defina como 1 ou
true para indicar se a taxa permite um reembolso
total. Caso contrário, defina como 0 ou false. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Obrigatório se available for true) Especifica o número de dias antes do check-in em que um reembolso total pode ser solicitado. O valor de refundable_until_days
precisa ser um número inteiro entre 0 e 330. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (Altamente recomendado se available for true) Especifica a hora mais recente do dia, no horário local do hotel, em que uma solicitação de reembolso total será atendida. Isso pode ser combinado com
refundable_until_days para especificar, por
exemplo, que "os reembolsos estão disponíveis até as 16h dois dias antes do
check-in". Se refundable_until_time não estiver definido, o valor padrão será meia-noite. |
| Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | Especifica se este tipo de quarto inclui café da manhã.
Os valores válidos são 0 (ou false) e 1 (ou true).
É preferível usar |
| Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | O horário de check-in mais cedo possível no horário local do hotel. O horário precisa ser anterior a 24:00. |
| Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | O horário de check-out mais tardio possível no horário local do hotel. |
| Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | Especifica se o quarto inclui acesso à Internet sem custo financeiro, enquanto outros quartos não incluem essa comodidade. Não defina esse elemento em um hotel que oferece Internet gratuita em todos os quartos. Esse elemento não se aplica à Internet com fio no quarto ou à Internet sem fio que não está disponível nos quartos. Os valores válidos são 0 (ou
false) e 1 (ou true).
|
| Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | Contém informações sobre as refeições neste pacote.
O elemento
Os atributos opcionais só são usados quando Para que os filtros de refeição ( |
| Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | Se um quarto inclui estacionamento sem custo financeiro, quando
o estacionamento seria um serviço pago neste hotel. Não especifique um valor para esse elemento em um hotel que oferece estacionamento gratuito.
Os valores válidos são 0 (ou false) e
1 (ou true). O valor padrão é
false.
|
| Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (Igual a <PhotoURL> em <RoomData>, mas para o pacote, por exemplo, fotos de refeições.)
|
Exemplos
Dados de quartos e pacotes
Confira a seguir um exemplo básico de como definir os dados de quarto e
pacote de uma propriedade em uma mensagem de transação (dados da propriedade). O atributo overlay
é usado para garantir que, se houver dados inesperados,
todos os dados existentes sejam excluídos e substituídos pelos dados desta mensagem:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<MilesIncluded>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Adicionar um tipo de sala
Confira a seguir um exemplo de como adicionar um tipo de quarto e um pacote aos dados <Transaction> atuais:
<?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>
Remover tipos de sala
Confira um exemplo de como remover tipos de quartos e pacotes atuais. Nesse cenário, se as mensagens em "Dados de quarto e pacote" e "Adicionar um tipo de quarto" tivessem sido enviadas ao Google antes, os tipos de quarto King e Double não existiriam mais quando o Google recebesse a mensagem mostrada. A remoção de dados de pacotes afeta o plano de tarifas geral, conforme definido em Transaction (Dados da propriedade), OTA_HotelRateAmountNotifRQ e mensagens OTA_HotelAvailNotifRQ (ao fazer referência ao mesmo valor PackageID). Assim, as atualizações correspondentes usando os outros tipos de mensagens podem ser necessárias para refletir que PackageID_2 e PackageID_3 não estão mais definidos aqui.
<?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>
Restringir planos de taxas
Confira um exemplo de como usar o elemento <AllowablePackageIDs>
para restringir os planos de tarifas permitidos para um tipo de quarto. Neste exemplo, o tipo de quarto Queen (RoomID_2) só pode ser combinado com o pacote e o plano de tarifas identificados como 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>
Restringir a capacidade do quarto
Confira um exemplo de como usar os elementos <Capacity>, <AdultCapacity> e <ChildCapacity> para definir restrições nas capacidades dos quartos.
<?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>
O tipo de quarto duplo (RoomID_1) pode ter até quatro hóspedes no total. Além disso, ele pode ter até quatro adultos e três crianças. Os três requisitos de capacidade precisam ser atendidos para que a sala possa ser reservada. Essa configuração é representativa de um quarto típico com duas camas para duas pessoas cada. A capacidade de crianças é uma pessoa a menos do que a capacidade total, porque o quarto precisa ter pelo menos um adulto.
Exemplos estendidos com <RoomFeatures> e refeições
JapaneseHotelRoomStyle não tem um valor padrão.
Omitir um valor não resulta em um erro de XML, mas sua página não aparece nos resultados da pesquisa quando o usuário filtra por estilo de quarto ou camas.
Duas camas de solteiro
O exemplo a seguir mostra como usar <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>
Duas camas de casal
Confira a seguir um exemplo de quarto no estilo western com duas camas
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>
Estilo japonês sem cama
Confira a seguir um exemplo de quarto no estilo japonês sem cama. As informações sobre camas não são necessárias para quartos no estilo 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>
Quarto japonês-ocidental com cama
Confira a seguir um exemplo de quarto no estilo japanese_western com uma cama de tamanho 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>
Se o parceiro não tiver as informações sobre o número de camas nos quartos de japanese_western, consulte o exemplo a seguir:
<?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>
Refeições
O exemplo a seguir define metadados de quarto e pacote para refeições, fotos e horários de check-in e check-out:
<?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>
Somente café da manhã
<?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>
Respostas
Sintaxe
A mensagem TransactionResponse (Property Data) usa a seguinte sintaxe:
<?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>
Elementos e atributos
A mensagem TransactionResponse (Property Data) tem os seguintes
elementos e atributos:
| Elemento / @Attribute | Ocorrências | Tipo | Descrição |
|---|---|---|---|
| TransactionResponse | 1 | Complex element | O elemento raiz que indica o sucesso ou os problemas de uma mensagem de solicitação de transação recebida. |
| TransactionResponse / @timestamp | 1 | DateTime | A data e a hora de criação desta mensagem. |
| TransactionResponse / @id | 1 | string | O identificador exclusivo da mensagem de transação associada. |
| TransactionResponse / @partner | 1 | string | A conta do parceiro para esta mensagem. |
| TransactionResponse / Success | 0..1 | Success | Indica que a mensagem de transação foi processada sem avisos, erros ou falhas.
|
| TransactionResponse / Issues | 0..1 | Issues | Um contêiner para um ou mais problemas encontrados ao processar a mensagem de transação.
|
| TransactionResponse / Issues / Issue | 1..n | Issue | A descrição de um aviso, erro ou falha encontrada ao processar a mensagem de transação. Confira os detalhes desses problemas em Mensagens de erro de status do feed. |
| TransactionResponse / Issues / Issue / @code | 1 | integer | O identificador do problema. |
| TransactionResponse / Issues / Issue / @status | 1 | enum | O tipo de problema encontrado. Os valores válidos são |
Exemplos
Sucesso
Confira a seguir uma resposta a uma mensagem de transação processada com sucesso.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
Problemas
A seguir, há uma resposta a uma mensagem de transação não processada devido a erros.
<?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>