このページでは、XML ベースのトランザクション メッセージのリファレンスを紹介します。
<Transaction>
Transaction メッセージのルート要素は <Transaction>
です。客室とパッケージに関する説明情報、客室とパッケージの料金と空室状況を格納するコンテナです。
<Transaction>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
ルート要素として <Transaction>
を使用するメッセージには、少なくとも 1 つの子要素を使用する必要があります。トランザクション メッセージには、メッセージの合計サイズが 100 MB を超えなければ、子要素をいくつでも含めることができます。
構文
<Transaction>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">
<!-- Defines data about a room or package (Room Bundle) -->
<PropertyDataSet>
...
</PropertyDataSet>
<!-- Updates/sets prices and availability for rooms and Room Bundles -->
<!-- (Also removes itineraries from inventory) -->
<Result>
...
</Result>
</Transaction>
属性
<Transaction>
要素には次の属性があります。
属性 | 必須かどうか | 型 | 説明 |
---|---|---|---|
id | Required | 文字列 | 個々のトランザクション メッセージの一意の識別子。 |
partner | Optional | string | トランザクション メッセージを送信するパートナー アカウント。この属性は、バックエンドで複数のパートナー アカウントの料金フィードを提供している場合に使用します。この文字列の値は、Hotel Center の [アカウント設定] ページに表示されている [パートナーキー] の値です。 |
timestamp | Required | DateTime | トランザクション メッセージが送信された時間。 過去 24 時間以内のタイムスタンプが付いた送信メッセージが処理され、処理されなかったものは破棄されます。 メッセージは受信された順序ではなく、 |
子要素
<Transaction>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> |
特定の客室と条件の組み合わせを指定します。通常は、この要素を個々のトランザクション メッセージで使用し、条件の組み合わせで共有される値を定義して、トランザクション メッセージのサイズを削減します。 |
<Result> | Optional* | <Result> |
客室の旅行プランの料金データ、または条件の組み合わせと宿泊施設の他の客室タイプを定義する |
* <PropertyDataSet> または <Result> の少なくとも 1 つは必須です。 |
例
客室データ
次の例では、Transaction メッセージで客室データを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
料金データ
次の例では、Transaction メッセージで料金データを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
1 泊の料金
次の例では、2023 年 6 月 7 日以降の 1 ~ 7 泊の料金データを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">209.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">419.98</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>3</Nights>
<Baserate currency="USD">614.97</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>4</Nights>
<Baserate currency="USD">819.96</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>5</Nights>
<Baserate currency="USD">999.95</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>6</Nights>
<Baserate currency="USD">1193.94</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>7</Nights>
<Baserate currency="USD">1259.93</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
</Transaction>
基本レートと限定価格
次の例は、基本レートと限定価格を指定するトランザクション メッセージを示しています。
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
広告枠を削除する
次の例では、複数の広告枠(異なる日付の 1 泊分の広告枠)をホテルの広告枠から削除します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-23</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-24</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<!---Sending <Baserate> is optional with <Unavailable> -->
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-25</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">-1</Baserate>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
</Transaction>
<PropertyDataSet>
<Transaction>
メッセージの客室とパッケージ(または条件の組み合わせ)に関する情報のコンテナ。パートナーに設定された値は、ホテルに設定された値によってオーバーライドされます。この情報は Google によって保存されるため、料金の更新を送信するたびに定義する必要はありません。
<PropertyDataSet>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
詳しくは、条件の組み合わせのメタデータをご覧ください。
構文
<PropertyDataSet>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> <!-- (Required) ID that matches the Hotel List Feed --> <Property>hotel_ID</Property> <!-- (Optional) Defines metadata about a room --> <RoomData> ... </RoomData> <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) --> <PackageData> ... </PackageData> </PropertyDataSet> ... </Transaction>
属性
<PropertyDataSet>
要素には属性はありません。
子要素
<PropertyDataSet>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<PackageData> | Optional* | <PackageData> |
条件の組み合わせを指定します。このデータはパートナーとホテルに関連付けられていますが、旅行プランには関連付けられていません。この要素は <RoomData> に似ていますが、客室についての物理的な説明には含まれていない設備や条件を指定します。料金を更新する際にパッケージ ID を参照します。 詳しくは、条件の組み合わせのメタデータをご覧ください。 |
<Property> | Required | string | 関連データが適用されるホテルの ID。この要素の値は、ホテルリスト フィードに含まれるリスティング <id> と一致する文字列にする必要があります。
|
<RoomData> | Optional* | <RoomData> |
客室を説明します。このデータはパートナーとホテルに関連付けられていますが、旅行プランには関連付けられていません。 料金を更新する際に客室 ID を参照します。 |
* <PackageData> または <RoomData> の少なくとも 1 つは必須です。 |
例
客室とパッケージのデータ
次の例は、<PropertyDataSet>
の客室データとパッケージ データを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
この客室と条件の組み合わせに関する料金と空き情報を送信する際は、料金設定メッセージ内の客室 ID とパッケージ ID を参照します。その結果、メッセージのサイズが大幅に削減され、重複データが原因で発生するエラーの量も削減されます。詳しくは、条件の組み合わせのメタデータをご覧ください。
<RoomData>
客室に関する旅行プランに依存しないメタデータを定義し、さらに条件の組み合わせも定義します(条件の組み合わせは客室に追加の設備を加えたものです)。<RoomData>
を使用して、料金フィード内での説明データの重複を減らします。
<RoomData>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
<RoomData>
要素はパートナーとホテルに関連する情報を指定しますが、旅行プランに関連した情報は指定しません。この要素の使用目的は、旅行プラン以外のすべてのデータを指定することです。
<RoomData>
要素は <PackageData>
に似ていますが、パッケージに含まれる設備や条件ではなく、物理的な客室を指定します。<RoomData>
と <PackageData>
を組み合わせて使用することで、条件の組み合わせの詳細を指定できます。パッケージに含まれない個々の客室には、<RoomData>
のみを使用します。
同じ客室や条件の組み合わせに対して <RoomData>
要素と <PackageData>
要素の両方を定義できます。Google が検索結果でその客室やパッケージを表示する際に、両方の要素からの説明がハイフンで分割されて表示されます。
詳しくは、条件の組み合わせのメタデータをご覧ください。
構文
<RoomData>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> ... <RoomData> <RoomID>room_ID</RoomID> <Name> <Text text="room_name" language="language_code"/> ... </Name> <Description> <Text text="room_description" language="language_code"/> ... </Description> <Capacity>max_number_of_occupants</Capacity> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults, children, or seniors --></OccupancyDetails> <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> ... </RoomFeatures> </RoomData> ... </PropertyDataSet> </Transaction>
属性
<RoomData>
要素には属性はありません。
子要素
<RoomData>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<Capacity> | Optional | integer | 客室が物理的に収容できる最大宿泊客数。客室の場合、最大宿泊客数は定員と同じかそれ以上になります。 この値を指定する場合は、
|
<Description> | Optional | Object | 客室の詳細な説明。この要素は、他の要素や <Name> 要素では説明されていない情報を指定します。客室の説明をすべて大文字で指定することはできません。
広告や無料の予約リンクが表示される言語ごとに個別の 次の例は、フランス語および英語での客室の説明を示しています。 <Description> <Text text="Two queen-sized beds" language="en"/> <Text text="Deux lits de la reine" language="fr"/> </Description> |
<Name> | Required | string | 客室のカテゴリ名。この値はホテルのランディング ページ(以前の POS)に表示されるカテゴリ名と一致している必要があります。この要素の値をすべて大文字にしないでください。 この要素では、以下の 2 つの必須属性を持つ単一の子要素の
広告や無料の予約リンクが表示される言語ごとに個別の 次の例は、フランス語および英語での客室名を示しています。 <Name> <Text text="Standard Double Room" language="en"/> <Text text="Le chambre double" language="fr"/> </Name> |
<Occupancy> | Optional | integer | 客室に想定される宿泊客の最大人数です。
たとえば、物理的には 6 人の宿泊客を収容できる(収容数 = 6)大スイートルームであっても、想定される定員数は 4 人までにします。 この値は、
|
<OccupancySettings> | Optional | Object | 部屋の宿泊人数の要件を制限または変更できる設定。
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> すべての子要素を含める必要はありません。 |
<PhotoURL> | Optional | Object | 指定された客室または条件の組み合わせの写真の URL とキャプション(オプション)。1 つの客室または条件の組み合わせに複数の <PhotoURL> を指定できます。各写真の URL は、独自の <PhotoURL> にする必要があります。この要素では、次の子要素を使用します。
例: <PhotoURL> <URL>https://www.example.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> <PhotoURL> <URL>https://www.foo.com/static/bar/image5678.jpg</URL> <Caption> <Text text="Or, perhaps you prefer coffee." language="en"/> <Text text="Ou peut-être préférez-vous le café." language="fr"/> </Caption> </PhotoURL> |
<RoomFeatures> | Optional | <RoomFeatures> |
部屋の設備に関する情報が含まれます。 |
<RoomID> | Required | string | 一意の客室 ID。この ID を使用して、客室データと料金の更新データ内の <Result> ブロックを一致させます。詳しくは、条件の組み合わせのメタデータをご覧ください。また、インラインで客室データを定義する場合に、この ID を使用して 1 つのトランザクション メッセージ内で使われる共通の客室の定義を参照することもできます。 |
例
客室データ
次の例では、客室データを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
客室とパッケージのメタデータ
次の例では、客室とパッケージのメタデータを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
複数の条件の組み合わせ
次の例では、複数の条件の組み合わせに関して客室とパッケージのメタデータを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
<RoomFeatures>
部屋にある特徴を定義します。
<RoomFeatures>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<RoomFeatures>
構文
<RoomFeatures>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet ... > ... <RoomData> <RoomFeatures> <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle> <Beds> <Bed size="[single|semi_double|double|queen|king]"> <Width unit="cm" number="width"/> <Length unit="cm" number="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> ... </PropertyDataSet> </Transactions>
属性
<RoomFeatures>
要素には属性はありません。
子要素
<RoomFeatures>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<JapaneseHotelRoomStyle> | Optional | enum | 日本のホテル客室のスタイルを示します。 指定できる値は次のとおりです。
|
<Beds> | Optional | Object | 部屋の数と同じ数の <Bed> が含まれます。なお、ここでは日本の布団はカウントしません。各
<Bed> には次の子要素があります。
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
<Suite> | Optional | empty | この部屋がスイートの場合は、この要素を指定します。 |
<Capsule> | Optional | empty | この部屋がカプセル ルームの場合は、この要素を指定します。 |
<Roomsharing> | Optional | enum | この部屋をオーナーや他のゲストと共有しているかどうか。有効な値は shared と private です。 |
<Outdoor> | Optional | empty | この部屋が、固定された壁、配管、空調設備のない屋外宿泊施設である場合は、この要素を指定します。たとえば、ホテルの客室は屋外宿泊施設ではありませんが、宿泊客がテントに滞在するキャンプ場や、宿泊客が自分の RV 車を利用する RV パークは屋外宿泊施設です。 |
<MobilityAccessible> | Optional | empty | この部屋が車椅子対応の場合に、この要素を指定します。 |
<Smoking> | Optional | enum | 禁煙室か喫煙室か。有効な値は non_smoking と smoking です。 |
<BathAndToilet> | Optional | Object | 部屋の浴室とトイレに関する情報が含まれます。
属性は次のとおりです。
この要素には、必要に応じて次の子要素を使用できます。
例: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
<OpenAirBath> | Optional | empty | この客室に専用の露天風呂がある場合は、この要素を指定します。 |
<AirConditioning> | Optional | empty | この部屋にエアコンがある場合は、この要素を指定します。 |
<Balcony> | Optional | empty | この部屋にバルコニーまたはラナイがある場合は、この要素を指定します。 |
<Views> | Optional | Object | 有効なオプションは次のとおりです。
|
例
JapaneseHotelRoomStyle
にデフォルト値はありません。値を省略しても XML エラーは発生しませんが、ユーザーが部屋のスタイルやベッド数でフィルタした場合、掲載情報は検索結果に表示されません。
シングルベッド 2 台
次の例は、<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>
ダブルベッド 2 台
以下は、2 つの double
ベッドがある 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>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>
ベッド付き和洋室
以下は、king
サイズのベッドがある 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>
<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>
<PackageData>
宿泊施設の条件の組み合わせについて、旅行プランに依存しないメタデータを定義します。この要素はパートナーとホテルに関連する情報を指定しますが、旅行プランに関連した情報は指定しません。この要素の使用目的は、旅行プラン以外のすべてのデータを 1 度定義して、それを旅行プランのデータから参照できるようにすることです。
<PackageData>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
<PackageData>
要素は <RoomData>
に似ていますが、客室についての物理的な説明には含まれていない料金特典や条件を指定します。<RoomData>
と <PackageData>
を組み合わせて使用することで、条件の組み合わせと料金特典を詳細に指定できます。パッケージに含まれない個々の客室には、<RoomData>
のみを使用します。
同じ客室や条件の組み合わせに対して <RoomData>
要素と <PackageData>
要素の両方を定義できます。Google が検索結果でその客室やパッケージを表示する際に、両方の要素からの説明がハイフンで分割されて表示されます。
宿泊施設の <PackageData>
要素を 1 つ更新すると、その宿泊施設のすべての <PackageData>
要素と <RoomData>
要素を更新する必要があります。それぞれの <PropertyDataSet>
は宿泊施設のすべてのデータとみなされ、すべての既存データを上書きします。
詳しくは、条件の組み合わせのメタデータをご覧ください。
構文
<PackageData>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<PropertyDataSet ... >
<PackageData>
<PackageID>package_ID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
...
</Name>
<Description>
<Text text="package_description" language="language_code"/>
...
</Description>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
<Occupancy>max_number_of_intended_occupants</Occupancy>
<OccupancyDetails><!-- optional info about the types of guests,
whether adults or children --></OccupancyDetails>
<!-- 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>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Special Rewards">
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum">
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<!-- a PackageID with a MilesIncluded
rate feature -->
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en">
</Name>
<ChargeCurrency>hotel </ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000 </NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines">
</Provider>
</MilesIncluded>
</PackageData>
...
...
</PropertyDataSet>
...
</Transaction>
属性
<PackageData>
要素には属性はありません。
子要素
<PackageData>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<BreakfastIncluded> | Optional | boolean | このパッケージの料金に朝食が含まれるかどうかを指定します。
有効な値は 0 (または false )と 1 (または true )です。
|
<ChargeCurrency> | Optional | enum | ユーザーがいつ、どこで予約代金を支払うかを定義します。この要素の構文は、<Result> の <ChargeCurrency> と同じです。デフォルト値は |
<CheckinTime> | Optional | Time | チェックインできる最小時間。 時刻は、ホテルの現地時間で 24:00 未満にする必要があります。 |
<CheckoutTime> | Optional | Time | ホテルの現地時間で指定できるチェックアウトの最終時刻。 |
<Description> | Optional | Object | パッケージの詳細な説明。この要素は、他の要素や <Name> 要素では説明されていない情報を指定します。客室の説明をすべて大文字で指定することはできません。
<Description> <Text text="Two breakfast buffet certificates for each night of stay." language="en"/> <Text text="Deux certificats petit-déjeuner buffet pour chaque nuit de séjour." language="fr"/> </Description> |
<InternetIncluded> | Optional | boolean | パッケージに無料のインターネット接続が含まれるかどうか(その他のパッケージには含まれない場合)。すべての客室で無料のインターネット接続が提供されているホテルでは、条件の組み合わせにこの要素を含めないでください。この要素は、客室内の有線インターネット、客室内では利用できない無線インターネットには適用されません。有効な値は 0 (または false )と 1 (または true )です。 |
<Meals> | Optional | Object | このパッケージの食事に関する情報が含まれます。
オプションの属性は、 食事フィルタ( |
<Name> | Required | string | パッケージの名前。この値はホテルのランディング ページに表示されるカテゴリ名と一致している必要があります。この要素の値をすべて大文字にしないでください。 この要素は、2 つの属性( <Name> <Text text="Bed and Breakfast" language="en"/> <Text text="Lit et petit déjeuné" language="fr"/> </Name> |
<Occupancy> | Optional | integer | 条件の組み合わせに想定される宿泊客の最大人数。たとえば、大スイートルームは 6 人の宿泊客を物理的に収容できますが、想定される定員数は 4 人までです。 この値は、
この要素を 注: <Occupancy> には、宿泊客の種類(大人または子ども)を指定する <OccupancyDetails> を含めることができます。子要素の構文と説明については、<OccupancyDetails> をご覧ください。 |
<PackageID> | Required | string | 一意のパッケージ ID。この ID を使用して、条件の組み合わせのデータと料金更新の また、インラインで条件の組み合わせデータを定義する場合に、この ID を使用して 1 つのトランザクション メッセージ内で使われる共通の条件の組み合わせの定義を参照することもできます。 |
<ParkingIncluded> | Optional | boolean | 条件の組み合わせに無料の駐車場が含まれるかどうか(その他の条件の組み合わせでは駐車場利用が有料のサービスとなるホテルの場合)。無料で駐車場を提供しているホテルの場合は、この要素の値を指定しないでください。 有効な値は |
<PhotoURL> | Optional | Object | (<RoomData> の <PhotoURL> と同じですが、パッケージ(食事の写真など)用です)。 |
<Refundable> | Optional | Object | 全額払い戻し可能または無料キャンセル可能として料金を掲載できるようにします。指定しない場合、払い戻しについての情報は表示されません。
<PackageData> レベルの払い戻しポリシーは、<Result> レベルの払い戻しポリシーより優先されます。<Rates> レベルの払い戻しポリシーは、<PackageData> レベルの払い戻しポリシーより優先されます。払い戻し可能な料金は、トランザクション メッセージ スキーマを直接変更しなくても、別のオプションを使ってユーザーに明示することもできます。これらのオプションについて詳しくは、払い戻し可能な料金に関するポリシーをご覧ください。
次の例は、 <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> 注: すべての属性を設定することをおすすめします。1 つ以上の属性が設定されていない場合、フィードのステータスに関する警告メッセージが表示されます。 属性を設定しないと、料金は払い戻し可能として表示されません。属性は次のとおりです。
属性を設定する際には、以下の点に注意してください。
|
<MembershipBenefits |
Optional | boolean | 料金には滞在中のエリート ステータス特典が含まれます。次のパラメータがあります。
|
<CarRentalIncluded> | Optional | boolean | 料金には滞在中の無料レンタカーが含まれます。 |
<MilesIncluded>> | Optional | boolean | 料金にはマイレージ マイルが含まれます。次のパラメータがあります。
|
<OnPropertyCredit> | Optional | boolean | 料金には、宿泊施設内のサービス(F&B、リゾート、スパなど)の利用料金が含まれます。パラメータ:
|
<AirportTransportationIncluded> | Optional | Object | 料金には、最寄りの空港との間の無料送迎が含まれます。省略可能な direction 属性には、交通機関の方向を指定します。有効な値は次のとおりです。
from : 空港から宿泊施設までの交通機関が提供されます。方向が指定されていない場合のデフォルト値です。
to : 宿泊施設から空港までの送迎が提供されます。round_trip : 空港との往復の交通手段が提供されます。 |
例
1 つの部屋のバンドル
次の例では、単一の条件の組み合わせを定員 2 人(大人 1 人、子ども 1 人)、朝食付きで定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Two certificates for continental
breakfast will be provided." language="en"/>
<Text text="Deux certificats pour le petit déjeuner
continental seront fournis." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
客室とパッケージのメタデータ
次の例では、客室とパッケージのメタデータを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
複数の条件の組み合わせ
次の例では、複数の条件の組み合わせに関して客室とパッケージのメタデータを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
料金を含む条件の組み合わせ
次の例では、料金特典付きの条件の組み合わせに関して客室とパッケージを定義します。
<Transaction timestamp="2010-04-24T20:44:56-04:00" id="TXNID">
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
...
</RoomData>
<!-- definitions of PackageData types including rate features -->
<PackageData>
<PackageID>room_with_addl_benefits</PackageID>
<Name>
<Text text="Acme Hotels 2017 Promotion Package" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Marriott Rewards"/>
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum"/>
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000</NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines"/>
</Provider>
</MilesIncluded>
<AirportTransportationIncluded direction="from"/>
</PackageData>
</PropertyDataSet>
<!-- The actual list of prices -->
<Result>
…
</Result>
</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>
<Result>
<Transaction>
メッセージ内の料金の更新と空き情報の更新のコンテナ。
<Result>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
<Result>
を使用して、客室料金の設定や更新、利用可能な広告枠を定義します。通常、この要素で定義されたアイテムは、<PackageData>
および <RoomData>
で定義される客室やパッケージに関する旅行プランに依存しないメタデータ(説明や設備など)を参照します。
通常、料金の更新を含む Transaction メッセージは非常に頻繁に送信します。送信方法と頻度は、配信モードによって異なります。
広告枠の削除で説明しているように、トランザクション メッセージで <Result>
を使用して旅行プランを削除できます。トランザクション メッセージを使用して料金と空き情報を更新する方法については、広告枠の追加と更新をご覧ください。
メッセージの合計サイズが 100 MB を超えなければ、1 つのトランザクション メッセージで <Result>
要素をいくつでも指定できます。
構文
<Result>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <!-- Required --> <Property>hotel_ID</Property> <!-- Required --> <Checkin>YYYY-MM-DD</Checkin> <!-- Required --> <Nights>number_of_nights</Nights> <Baserate currency="currency_code">price</Baserate> <!-- Only required when <Baserate> contains a real price --> <Tax currency="currency_code">tax_amount</Tax> <!-- Only required when <Baserate> contains a real price --> <OtherFees currency="currency_code">fee_amount</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <RoomID>room_ID</RoomID> <PackageID>package_ID</PackageID> <ExpirationTime>expiration_time</ExpirationTime> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <!-- For Baserate, occupancy value must be greater than or equal to 2. If a value is not provided for occupancy, it defaults to 2. --> <OccupancyDetails>occupancy_info</OccupancyDetails> <Rates>...</Rates> <RoomBundle>...</RoomBundle> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> ... </AllowablePointsOfSale> <Custom[1-5]>custom_value</Custom[1-5]> </Result> ... </Transaction>
属性
<Result>
要素には次の属性があります。
属性 | 必須かどうか | 型 | 説明 |
---|---|---|---|
mergeable | Optional | boolean | デフォルトでは、特定のホテルと旅行プランの組み合わせの新料金は、Google のキャッシュに保存されている以前の(期限切れでない)料金より優先されます。mergeable 属性を使用すると、以前の料金情報を削除せずに Google のキャッシュに追加の料金を保存できます。コンテキストを使用したライブ料金クエリの応答では、トランザクション メッセージの応答に関係なく、この属性は常に true になります。 |
子要素
<Result>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | ホテルに使用できる 1 つ以上のランディング ページ。ランディング ページとは、エンドユーザーが予約手続きの操作をすることができるウェブサイトです。明示的に特定のランディング ページを指定して、その他のランディング ページを除外するには、ランディング ページ ファイル内の <PointOfSale> 要素の id 属性と一致する、1 つ以上の <AllowablePointsOfSale> 要素を追加します。この要素が含まれていない場合、ランディング ページ ファイルで定義したすべてのランディング ページが、客室の予約対象になるとみなされます。詳しくは、ランディング ページ ファイルの構文をご覧ください。 |
<Baserate> | Optional | float | 宿泊する客室の料金。この要素の値には、次の条件を反映させる必要があります。
旅行プランで客室が利用できない場合は、 条件の組み合わせを削除する場合は、条件の組み合わせの削除方法についての手順をご覧ください。
<Baserate currency="USD">1200.40</Baserate>
|
<ChargeCurrency> | Optional | enum | ユーザーがいつ、どこで予約代金を支払うかを定義します。この要素を使用して、トランザクション メッセージの <Result> 要素で宿泊料金を、または <PackageData> ブロックで条件の組み合わせを指定できます。指定できる値は次のとおりです。
デフォルト値は |
<Checkin> | Required | Date | 日付形式を使用した旅行プランのチェックイン日。旅行プランは <Nights> 要素と <Checkin> 要素を組み合わせて作成されます。 |
<Custom[1‑5]> | Optional | string | ホテルに関連するその他のデータを渡すためのカスタム フィールドを定義します。次の要素名で、最大 5 つのカスタム値を渡すことができます。
|
<ExpirationTime> | Optional | DateTime | 料金の有効期限が切れたとみなされる日時(最小 3 時間)。
有効期限のタイムスタンプは、料金構造において重要でなければ指定しないことをおすすめします。 Google は期限切れの料金は提供しません。期限切れの料金が設定されている宿泊プランは、 ライブ料金クエリの対象となります。 |
<Nights> | Required | integer | 旅行プランの宿泊数。<Nights> 要素の値は正の整数にしてください。旅行プランは <Nights> と <Checkin> を組み合わせて作成されます。 |
<OtherFees> | Optional | float | 最終的な客室料金に影響する基本料金と税金以外の手数料。<OtherFees> 要素では、料金の 3 文字の通貨コードを定義する currency という単一の必須属性を使用します。例: USD 。
|
<Occupancy> | Optional | integer | この料金で許可される最大宿泊人数を指定します。
<Occupancy> が <Result> の直下にある場合は、2 以上を指定する必要があります。<Occupancy> には、宿泊客の種類(大人または子ども)を指定する <OccupancyDetails> を含めることができます。ゲストタイプが指定されていない場合は、大人であると見なされます。子要素の構文と説明については、<OccupancyDetails> をご覧ください。<Occupancy> 要素が指定されていない場合、定員はデフォルトで 2 になります。注: 2 人部屋以外の料金を送信する機能を有効にするには、サポートチームにお問い合わせください。 |
<PackageID> | Optional | string | あらかじめ定義されたパッケージ データにマッピングする一意のパッケージ ID。PACKAGE-ID ランディング ページ変数の入力にも使用されます。 詳しくは、条件の組み合わせのメタデータをご覧ください。 |
<Property> | Required | string | 関連データ(料金、旅行プラン、条件の組み合わせ、メタデータ)の影響を受けるホテルの ID。この要素の値には文字列を使用する必要があります。また、この要素の値は、ホテルリスト フィードで定義したリスティング <id> と一致していなければなりません。 |
<Rates> | Optional | <Rates> |
1 つ以上の <Rate> ブロックのコンテナ。<Rates> 内の各 <Rate> は、客室と旅行プランの 1 つの組み合わせに対して異なる料金を定義します。
注: |
<Refundable> | Optional | Object | 全額払い戻し可能または無料キャンセル可能として料金を掲載できるようにします。指定しない場合、払い戻しについての情報は表示されません。
<PackageData> レベルの払い戻しポリシーは、<Result> レベルの払い戻しポリシーより優先されます。<Rates> レベルの払い戻しポリシーは、<PackageData> レベルの払い戻しポリシーより優先されます。払い戻し可能な料金は、トランザクション メッセージ スキーマを直接変更しなくても、別のオプションを使ってユーザーに明示することもできます。詳しくは、払い戻し可能な料金に関するポリシーをご覧ください。
次の例は、 <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> 注: すべての属性を設定することをおすすめします。設定されていない属性が 1 つ以上ある場合、フィードのステータスに関する警告メッセージが表示されます。 属性を設定しないと、料金は払い戻し可能として表示されません。属性は次のとおりです。
属性を設定する際には、以下の点に注意してください。
|
<RoomBundle> | Optional | <RoomBundle> |
ホテルと旅行プランの料金に含まれる客室や設備一式についての物理的な説明、一部の購入ポリシーの詳細に関するコンテナ。 通常、この要素は、同じ宿泊施設における基本的な客室とさまざまな種類の客室の料金を定義する場合に使用します。インラインで条件の組み合わせを定義することもできますが、個別のトランザクション メッセージを使用してこれらの情報を定義することをおすすめします。メタデータは Google によって保存されるため、その後料金設定を更新するときにいつも繰り返し同じデータを送信するのではなく、保存されたデータを参照することができます。 |
<RoomID> | Optional | string | あらかじめ定義された客室データにマッピングする一意の客室 ID。PARTNER-ROOM-ID ランディング ページ変数の入力にも使用されます。 詳しくは、条件の組み合わせのメタデータをご覧ください。 |
<Tax> | Optional | float | 最終的な客室料金に対して算出される税金。<Tax> 要素では、税金の 3 文字の通貨コードを定義する currency という単一の必須属性を使用します。たとえば、USD のようにします。<Baserate> が 0 より大きい場合は、<Tax> 要素を指定する必要があります。
|
<Unavailable> | Optional | Object | 旅行プランを予約できないことを示します。旅行プランが利用できなかった理由をより詳細に示すコンテナとして機能します。<Unavailable> タグの下に、次のいずれかの利用不可の理由がネストされている場合があります。
|
例
複数の宿泊施設の例
次の例では、1 つの旅行プランとそのプランに含まれる 2 つの宿泊施設の料金を定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
この例では、客室の説明、写真とキャプション、客室名、定員数などの客室に関する詳細情報が表示されていません。
これらの情報は、Google によって保存される別の Transaction メッセージでまとめて定義していただけます。その後に行うすべての料金設定と広告枠の更新で、それらのデータを参照できます。詳しくは、条件の組み合わせのメタデータをご覧ください。
複数の料金の例
次の例では、1 つの旅行プランと 1 つの宿泊施設について、定員ごとにそれぞれの料金を定義します。<Rates>
要素を使用すると、特定の宿泊施設について複数の料金設定を指定できます。次の例は、民泊(VR)の宿泊施設の場合にも役立ちます。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2021-01-13</Checkin>
<Nights>9</Nights>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>2</Occupancy>
<Rates>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>1</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>3</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>4</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>5</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>6</Occupancy>
</Rate>
</Rates>
</Result>
</Transaction>
使用できない例
次の例では、ダウンストリーム チャネルから在庫を取得できなかった旅行プラン、最小宿泊日数を下回り、指定された日付の予約がすでに入っている旅行プラン、到着日に宿泊施設が休業しているが、滞在中に営業する旅行プランを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NotFetched/>
</Unavailable>
</Result>
<Result>
<Property>073313</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NoVacancy/>
<MinNightStay value=3/>
</Unavailable>
</Result>
<Result>
<Property>052213</Property>
<Checkin>2018-06-10</Checkin>
<Nights>10</Nights>
<Unavailable>
<PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
</Unavailable>
</Result>
</Transaction>
<Rates>
1 つ以上の <Rate>
ブロックのコンテナ。<Rates>
の各 <Rate>
は、客室または旅行プランの 1 つの組み合わせに対して異なる料金を定義します。
<Rates>
要素は、同じ客室または旅行プランの組み合わせで複数の料金がある場合にのみ使用します。たとえば、限定価格、非公開レート、条件の組み合わせの限定価格といった複数の料金を定義できます。
<Rates>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
(Can also contain<Rates>
) + ...
<Rate>
で設定した値は、親の <Result>
要素または <RoomBundle>
要素の料金に関連する値をオーバーライドします。<Rate>
で値が設定されていない場合、値は親要素から継承されます。<RoomBundle>
要素に継承されるのは <AllowablePointsofSale> のみです。
構文
<Rates>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <Rates> <Rate rate_rule_id="rate_rule_id"> <Baserate currency="currency_code">price</Baserate> <Tax currency="currency_code">tax_amount</Tax> <OtherFees currency="currency_code">fee_amount</OtherFees> <ExpirationTime>expiration_time</ExpirationTime> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> </AllowablePointsOfSale> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> ... <Custom[1-5]>custom_value</Custom[1-5]> </Rate> ... </Rates> </Result> ... </Transaction>
属性
<Rates>
要素には次の属性があります。
属性 | 必須 | 説明 |
---|---|---|
rate_rule_id | Optional | 限定価格の場合、この ID は料金ルール定義ファイルの定義と一致します。このフィールドには 40 文字まで入力できます。 |
子要素
<Rates>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | ホテルに使用できる 1 つ以上のランディング ページ。この要素の構文は <Result> の <AllowablePointsOfSale> と同じです。 |
<Baserate> | Required | float | 宿泊する客室の料金。この要素の構文は <Result> の <Baserate> と同じです。注: |
<ChargeCurrency> | Optional | enum | ユーザーがいつ、どこで予約代金を支払うかを定義します。この要素の構文は、<Result> の <ChargeCurrency> と同じです。 |
<Custom[1‑5]> | Optional | string | ホテルに関連するその他のデータをランディング ページに渡すためのカスタム フィールド。この要素の構文は、<Result> の <Custom[1‑5]> と同じです。カスタム フィールドには 200 文字まで入力できます。詳しくは、
ランディング ページ ファイルをご覧ください。
|
<ExpirationTime> | Optional | DateTime | 料金の有効期限が切れたとみなされる日時。この要素の構文は、<Result> の <ExpirationTime> と同じです。 |
<Occupancy> | Optional | integer | この料金で許可される最大宿泊人数を指定します。指定しない場合、親レートと同じであると見なされます。 |
<OtherFees> | Required | float | 最終的な客室料金に影響する基本料金と税金以外の手数料。この要素の構文は、<Result> の <OtherFees> と同じです。
|
<Refundable> | Optional | Object | 全額払い戻し可能または無料キャンセル可能として料金を掲載できるようにします。指定しない場合、払い戻しについての情報は表示されません。
<PackageData> レベルの払い戻しポリシーは、<Result> レベルの払い戻しポリシーより優先されます。<Rates> レベルの払い戻しポリシーは、<PackageData> レベルの払い戻しポリシーより優先されます。払い戻し可能な料金は、トランザクション メッセージ スキーマを直接変更しなくても、別のオプションを使ってユーザーに明示することもできます。これらのオプションについて詳しくは、払い戻し可能な料金に関するポリシーをご覧ください。
次の例は、 <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> 注: すべての属性を設定することをおすすめします。1 つ以上の属性が設定されていない場合、フィードのステータスに関する警告メッセージが表示されます。 属性を設定しないと、料金は払い戻し可能として表示されません。属性は次のとおりです。
属性を設定する際には、以下の点に注意してください。
|
<Tax> | Required | float | 最終的な客室料金に対して算出される税金。この要素の構文は、<Result> の <Tax> と同じです。 |
例
基本料金と限定価格
次の例は、基本レートと限定価格を指定する Transaction メッセージを示しています。
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
複数の限定価格
次の例では、<RoomBundle>
内で基本レートと複数の限定価格を定義します。
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<RoomBundle>
<Transaction>
メッセージの <Result>
の子として、条件の組み合わせの料金と空室状況を定義します。パッケージまたは旅行プランの組み合わせごとに別々の要素を定義します。条件の組み合わせのパッケージと条件を定義するには、<RoomData>
を使用します。
<RoomBundle>
要素は、トランザクション メッセージの XML 階層内の次の場所にあります。
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
詳しくは、条件の組み合わせの使用をご覧ください。
構文
<RoomBundle>
要素の構文は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <RoomBundle> <!-- Required unless specified inline under<RoomData>
--> <RoomID>room_ID</RoomID> <!-- Required<PackageData>
--> <PackageID>package_ID</PackageID> <!-- Required --> <Baserate currency="currency_code">price</Baserate> <!-- Required --> <Tax currency="currency_code">taxes</Tax> <!-- Required --> <OtherFees currency="currency_code">other_fees</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <!-- Required --> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> <BreakfastIncluded>boolean_value</BreakfastIncluded> <InternetIncluded>boolean_value</InternetIncluded> <ParkingIncluded>boolean_value</ParkingIncluded> <RatePlanID>rate_plan_ID</RatePlanID> <Rates>...</Rates> <Custom1>custom_value_1</Custom1> <Custom2>custom_value_2</Custom2> <Custom3>custom_value_3</Custom3> <Custom4>custom_value_4</Custom4> <Custom5>custom_value_5</Custom5> </RoomBundle> ... </Result> </Transaction>
属性
<RoomBundle>
要素には属性はありません。
子要素
<RoomBundle>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<Baserate> | Required | float | 宿泊に関する条件の組み合わせの料金を定義します。この要素の構文は <Result> の <Baserate> と同じですが、以下の例外があります。
|
<BreakfastIncluded> | Optional | boolean | この条件の組み合わせの料金に朝食が含まれるかどうかを指定します。 |
<ChargeCurrency> | Optional | enum | ユーザーがいつ、どこで予約代金を支払うかを定義します。この要素の構文は、<Result> の <ChargeCurrency> と同じです。デフォルト値は |
<Custom[1‑5]> | Optional | string | 条件の組み合わせのランディング ページに追加データを渡すためのカスタム フィールド。これらの要素の構文は、<Result> の <Custom[1-5]> と同じです。カスタム フィールドには 200 文字まで入力できます。詳しくは、ランディング ページ ファイルをご覧ください。カスタム変数は、Transaction メッセージで料金を送信した場合にのみ一覧表示されます。
|
<InternetIncluded> | Optional | boolean | 条件の組み合わせに無料のインターネット接続が含まれるかどうか(その他の条件の組み合わせには含まれない場合)。すべての客室で無料のインターネット接続が提供されているホテルでは、条件の組み合わせにこの要素を含めないでください。この要素は、客室内の有線インターネット、客室内では利用できない無線インターネットには適用されません。 |
<Occupancy> | Required | integer | この料金で許可される最大宿泊人数を指定します。たとえば、物理的に 6 人の宿泊客を収容できる大スイートルームであっても、「ハネムーン パッケージ」で対象となる宿泊客数は 2 人となります。 この値は、 ランディング ページ URL で定員を定義する場合は、
注:
|
<OtherFees> | Required | float | 最終的な客室料金に影響する基本料金と税金以外の手数料。<OtherFees> 要素では、料金の 3 文字の通貨コードを定義する currency という単一の必須属性を使用します。たとえば、米ドルの場合は USD を使用します。 |
<PackageID> | Optional (recommended) | string | 一意のパッケージ データ ID。この ID を使用して、条件の組み合わせのデータと <PackageData> で送信された内容を一致させます。詳しくは、条件の組み合わせのメタデータをご覧ください。また、インラインで条件の組み合わせデータを定義する場合に、この ID を使用して 1 つのトランザクション メッセージ内で使われる共通の条件の組み合わせの定義を参照することもできます。 |
<ParkingIncluded> | Optional | boolean | 条件の組み合わせに無料の駐車場が含まれるかどうか(その他の条件の組み合わせでは駐車場利用が有料のサービスとなるホテルの場合)。無料で駐車場を提供しているホテルの場合は、この要素の値を指定しないでください。 有効な値は |
<RatePlanID> | Optional | string | 料金プラン ID は、客室とパッケージを組み合わせた一意の ID です。たとえば、<RoomID> の値が 5 で <PackageID> の値が ABC の場合、<RatePlanID> に対して 5-ABC の値を使用できます。動的なランディング ページ(以前の POS)の URL を作成する場合は、RatePlanID を変数として使用することを強くおすすめします。
詳しくは、変数と条件の使用をご覧ください。 |
<Rates> | Optional | <Rates> |
この条件の組み合わせのデフォルトをオーバーライドする料金。この要素の構文は、<Result> の <Rates> と同じです。 |
<Refundable> | Optional | Object | 全額払い戻し可能または無料キャンセル可能として料金を掲載できるようにします。指定しない場合、払い戻しについての情報は表示されません。
<PackageData> レベルの払い戻しポリシーは、<Result> レベルの払い戻しポリシーより優先されます。<Rates> レベルの払い戻しポリシーは、<PackageData> レベルの払い戻しポリシーより優先されます。払い戻し可能な料金は、トランザクション メッセージ スキーマを直接変更しなくても、別のオプションを使ってユーザーに明示することもできます。これらのオプションについて詳しくは、払い戻し可能な料金に関するポリシーをご覧ください。
次の例は、 <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> 注: すべての属性を設定することをおすすめします。設定されていない属性が 1 つ以上ある場合、フィードのステータスに関する警告メッセージが表示されます。 属性を設定しないと、料金は払い戻し可能として表示されません。属性は次のとおりです。
属性を設定する際には、以下の点に注意してください。
|
<RoomID> | Required | string | 一意の客室データ ID。この ID を使用して、条件の組み合わせのデータと <RoomData> で送信した内容を一致させます。詳しくは、
条件の組み合わせのメタデータをご覧ください。また、インラインで客室データを定義する場合に、この ID を使用して 1 つのトランザクション メッセージ内で使われる共通の客室の定義を参照することもできます。 |
<Tax> | Required | float | 最終的な客室料金に対して算出される税金。<Tax> 要素では、税金の 3 文字の通貨コードを定義する currency という単一の必須属性を使用します。たとえば、米ドルの場合は USD を使用します。 |
例
1 人用バンドル
次の例では、1 人部屋の組み合わせに関する応答を定義します。ユーザーが Occupancy Picker で 1
を選択すると、定員にかかわらず、予約できる最低価格が表示されます。
1 人部屋の料金がない場合は、2 人部屋の最安値が表示されます。2 人部屋(またはそれ以上)の料金が旅行プランにキャッシュされている場合、1 人部屋の料金はライブクエリでリクエストされません。
この例では、<RoomID>
要素と <PackageID>
要素を使用して、あらかじめ定義されている客室とパッケージのメタデータを参照します。<RoomData>
要素と <PackageData>
要素を使用して情報を定義します。
<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 1 example ----->
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<!-- Note: Once defined it does not have to be repeated for future
Transaction Messages.
PropertyDataSets can also be defined and sent in their own
Transaction Message separately from pricing. Google can be
configured to pull just PropertyDataSets once per day
(or on a predefined frequency). -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate up to 4, but package data specifies occupancy
between 1 to 4 -->
<Capacity>4</Capacity>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<Capacity>4</Capacity>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P11111</PackageID>
<Occupancy>1</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P54321</PackageID>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<Result>
<!-- Single occupancy pricing will be specified in a room bundle below -->
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Base Room Bundle -->
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P54321</PackageID>
<Baserate currency="USD">199.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RatePlanID>060773-P54321</RatePlanID>
</RoomBundle>
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P11111</PackageID>
<!-- Price for 1 ("occupancy") is the lowest price and will be
displayed -->
<Baserate currency="USD">174.99</Baserate>
<Tax currency="USD">22.08</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RatePlanID>060773-P11111</RatePlanID>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Price for 4 ("occupancy"), any eligible room bundle with 1 or more
occupancy will be displayed-->
<Baserate currency="USD">298.88</Baserate>
<Tax currency="USD">42.12</Tax>
<OtherFees currency="USD">10.00</OtherFees>
<RatePlanID>436233-P12345</RatePlanID>
</RoomBundle>
<!-- ..Continue providing all available RoomBundle rates under matched
property for 1 or more occupancies..-->
</Result>
</Transaction>
2 人以上
次の例では、2 人以上の定員に関する応答を定義します。
この例では、<RoomID>
要素と <PackageID>
要素を使用して、あらかじめ定義されている客室とパッケージのメタデータを参照します。<RoomData>
要素と <PackageData>
要素を使用して情報を定義します。
<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 3 example ----->
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
<!-- Efficient method of defining Room Bundles-->
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate up to 4, but package data specifies occupancy
between 1 to 4 -->
<Capacity>4</Capacity>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<Capacity>4</Capacity>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P33333</PackageID>
<Occupancy>3</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<Result>
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<!-- Base Room Bundle -->
<RoomBundle>
<!-- Baserate above and attributes must match atleast one room bundle
below -->
<RoomID>060773</RoomID>
<PackageID>P33333</PackageID>
<Baserate currency="USD">499.99</Baserate>
<Tax currency="USD">55.12</Tax>
<OtherFees currency="USD">22.00</OtherFees>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Lowest price for 3 ("occupancy"), shown below, will be displayed -->
<Baserate currency="USD">598.88</Baserate>
<Tax currency="USD">62.12</Tax>
<OtherFees currency="USD">30.00</OtherFees>
</RoomBundle>
<!-- ..Continue providing all available RoomBundle rates under matched
property for 2 or more occupancies..-->
</Result>
</Transaction>
複数の条件の組み合わせ
次の例では、複数の条件の組み合わせで定員を設定して、ホステルの客室料金を提示します。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<Result>
...
<!-- Suite Room Bundle -->
<RoomBundle>
<RoomID>suite1</RoomID>
<PackageID>standard</PackageID>
<Occupancy>2</Occupancy>
<!-- Price for room -->
<Baserate currency="USD">80.00</Baserate>
<Tax currency="USD">5.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="Suite for 2" language="en"/>
</Name>
</RoomData>
</RoomBundle>
<!-- Small Dorm Room Bundle -->
<RoomBundle>
<RoomID>small_dorm</RoomID>
<PackageID>economy</PackageID>
<Occupancy>1</Occupancy>
<!-- Price per bed -->
<Baserate currency="USD">35.00</Baserate>
<Tax currency="USD">3.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="1 bed in small dorm" language="en"/>
</Name>
</RoomData>
</RoomBundle>
<!-- Large Dorm Room Bundle -->
<RoomBundle>
<RoomID>large_dorm</RoomID>
<PackageID>economy</PackageID>
<Occupancy>1</Occupancy>
<!-- Price per bed -->
<Baserate currency="USD">20.00</Baserate>
<Tax currency="USD">2.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="1 bed in large dorm" language="en"/>
</Name>
</RoomData>
</RoomBundle>
...
</Result>
</Transaction>
複数の限定価格
次の例では、<RoomBundle>
内で基本レートと複数の限定価格を定義します。
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<OccupancyDetails>
トランザクション メッセージの <Occupancy>
は、客室またはパッケージの最大宿泊客数を指定します。<OccupancyDetails>
には、宿泊客の人数や種類(大人または子ども)などの追加情報を含めることができます。
<Occupancy>
と <OccupancyDetails>
が <Result>
または <RoomBundle>
の <Rates>
要素で指定されている場合、料金は定員の詳細の制約を受けます。
構文
<OccupancyDetails>
を指定する場合は、必ず <Occupancy>
の後に続けて指定します。次の構文に注意してください。
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <NumAdults>number_of_adults</NumAdults> <Children> <Child age=age_of_one_child_guest/> <Child age=age_of_one_child_guest/> </Children> </OccupancyDetails> </Result> </Transaction>
子要素
<OccupancyDetails>
要素には次の子要素があります。
子要素 | 必須 | 型 | 説明 |
---|---|---|---|
<NumAdults> | Required | integer | 大人の宿泊客の人数。最小:1、最大:20 |
<Children> | Optional | Object | 1 つ以上の <Child> 要素のコンテナ。 |
<Child age> | Optional | integer | この子どもの年齢の上限(例: <Child age="17"> )。 |
例
次の例は、<OccupancyDetails>
が <Results>
、<RoomBundle>
、または <Rates>
子要素内でどのように指定されるかを示しています。
結果レスポンス
次の例では、宿泊客の人数と種類が指定されたライブ料金クエリへの応答として、1 つの旅行プランとそのプランに含まれる 1 つの宿泊施設の料金を定義します。この場合、<OccupancyDetails>
(大人 2 人、子ども 1 人)が <Result>
で返されます。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
</Result>
</Transaction>
料金に関するレスポンス
次の例では、大人 1 人と子ども 1 人を対象にした 1 つの旅行プランとその料金を定義します。この場合、<OccupancyDetails>
は <Result>
の <Rates>
要素で返されます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2018-04-18T11:27:45-04:00">
<Result>
<Property>8251</Property>
<Checkin>2018-06-20</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">62.18</Baserate>
<Tax currency="USD">2.45</Tax>
<OtherFees currency="USD">0.00</OtherFees>
<Rates>
<Rate rate_rule_id="rule-951">
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Baserate currency="USD">42.61</Baserate>
<Tax currency="USD">5.70</Tax>
<OtherFees currency="USD">0.00</OtherFees>
<Custom1>abc4</Custom1>
<AllowablePointsOfSale>
<PointOfSale id="yourhotelpartnersite.com"/>
</AllowablePointsOfSale>
</Rate>
</Rates>
</Result>
</Transaction>
条件の組み合わせ
次の例では、定員が大人 2 人と子ども 1 人で、2 泊利用した場合の払い戻し可能な料金を定義します。この場合、<OccupancyDetails>
は <RoomBundle>
の内部に指定されます。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>6781291</Property>
<Checkin>2017-08-05</Checkin>
<Nights>2</Nights>
...
<RoomBundle>
<RoomID>10291</RoomID>
<RatePlanID>564739</RatePlanID>
<PackageID>564739</PackageID>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="true" refundable_until_days="1" refundable_until_time="23:59:00" />
<Baserate currency="USD">185.34</Baserate>
<Tax currency="USD">37.06</Tax>
<OtherFees currency="USD">2.22</OtherFees>
</RoomBundle>
</Result>
</Transaction>
複数の条件の組み合わせ
次の例では、大人 2 人と子ども 2 人の定員に限定して、<RoomBundle>
の複数の料金を定義します。この場合、<OccupancyDetails>
は <RoomBundle>
の <Rates>
要素で指定されます。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<RoomBundle>
<RoomID>5</RoomID>
<PackageID>STD</PackageID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<InternetIncluded>1</InternetIncluded>
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<Custom2>ratebasic</Custom2>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<ChargeCurrency>hotel</ChargeCurrency>
<Custom1>ratecode321</Custom1>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode432</Custom1>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>