このページでは、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 台
以下は、double
ベッド 2 台を備えた 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>
プロパティの条件の組み合わせに関する、旅行プランに依存しないメタデータを定義します。この要素には、パートナーとホテルに関連付けられた情報が含まれますが、旅行プランに関連付けられた情報は含まれません。この目的は、旅行プラン以外のすべてのデータを一度定義し、旅行プランデータから参照することです。
<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 | パッケージの名前。この値は、ホテルのランディング ページに表示される値と一致している必要があります。この要素の値をすべて大文字に設定しないでください。 この要素は、 <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>
で定義された客室やパッケージに関する旅行プランに依存しないメタデータ(説明や設備のセットなど)を参照します。
通常、料金の更新を含むトランザクション メッセージを頻繁に送信します。送信の正確な方法と頻度は、ご利用の配信モードによって異なります。
広告枠の削除で説明されているように、トランザクション メッセージで <Result>
を使用して旅行プランを削除できます。トランザクション メッセージを使用して価格や在庫状況を更新する方法について詳しくは、在庫の追加と更新をご覧ください。
1 つのトランザクション メッセージには、メッセージのサイズが 100 MB を超えない限り、任意の数の <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 のキャッシュにある以前の(期限切れでない)料金を上書きします。統合可能な属性を使用すると、以前の料金情報を削除せずに、追加の料金を Google のキャッシュに保存できます。コンテキストを使用したライブ料金クエリのレスポンスでは、(トランザクション メッセージのレスポンスに関係なく)この属性は常に true に設定されます。 |
子要素
<Result>
要素には次の子要素があります。
子要素 | 必須かどうか | タイプ | 説明 |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | ホテルの対象となる 1 つ以上のランディング ページ。ランディング ページは、エンドユーザーが予約プロセスを処理できるウェブサイトです。特定のランディング ページを明示的に含める(他のランディング ページを除外する)には、ランディング ページ ファイル内の <PointOfSale> 要素の id 属性と一致する <AllowablePointsOfSale> 要素を 1 つ以上追加します。この要素を指定しない場合、ランディング ページ ファイルで定義されているすべてのランディング ページが、客室の予約に使用できるとみなされます。詳しくは、ランディング ページ ファイルの構文をご覧ください。 |
<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> 要素では、単一の必須属性 currency を使用して、料金の 3 文字の通貨コードを定義します。例: 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> は、客室と宿泊プランの組み合わせに対して異なる料金を定義します。同じ客室と旅行プランの組み合わせに複数の料金がある場合、または 注: |
<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> 要素では、単一の必須属性 currency を使用して、税金の 3 文字の通貨コードを定義します。例: USD <Baserate> が 0 より大きい場合、<Tax> 要素は必須です。 |
<Unavailable> | Optional | Object | 旅行プランが予約できないことを示します。旅行プランが利用できない詳細な理由に対するコンテナとして機能します。次の利用不能理由のうち 1 つ以上が <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 が保存する個別のトランザクション メッセージで 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>
「使用不可」の例
次の例では、下流のチャネルから空室状況を取得できない旅行プランを 1 つ定義しています。2 つ目の旅行プランは最低宿泊日数を下回っており、指定した日付ですでに予約されています。3 つ目の旅行プランは到着日に閉まっているが滞在中に開くものを定義しています。
<?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>
は、客室または旅行プランの組み合わせに対して異なる料金を定義します。
<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> と同じです。 |
例
基本レートと限定価格
次の例は、基本料金と限定価格を含むトランザクション メッセージを示しています。
<?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 つの <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 文字までです。詳しくは、ランディング ページ ファイルをご覧ください。
|
<InternetIncluded> | Optional | boolean | 条件の組み合わせに無料のインターネット アクセスが含まれているが、他の条件の組み合わせにそのような設備が含まれていない場合。すべての客室で無料のインターネット接続を提供しているホテルでは、条件の組み合わせにこの要素を設定しないでください。この要素は、客室内では利用できない室内の有線インターネットまたはワイヤレス インターネットには適用されません。 |
<Occupancy> | Required | integer | この料金で許可される最大宿泊人数を指定します。たとえば、物理的には 6 名まで宿泊できる大きなスイートですが、「ハネムーン パッケージ」では 2 名まで宿泊できます。 この値は ランディング ページ URL で宿泊人数を定義する場合は、変数と条件の使用で説明されているように、
注:
|
<OtherFees> | Required | float | 最終的な客室料金に影響する基本料金と税金以外の手数料。<OtherFees> 要素では、単一の必須属性 currency を使用して、料金の 3 文字の通貨コードを定義します。たとえば、米ドルの場合は USD を使用します。 |
<PackageID> | Optional (recommended) | string | パッケージ データの一意の ID。この ID を使用して、条件の組み合わせデータと <PackageData> で送信されたデータを照合します。詳しくは、条件の組み合わせのメタデータをご覧ください。(条件の組み合わせデータをインラインで定義する場合は、この ID を使用して、1 つのトランザクション メッセージで使用される共通の条件の組み合わせ定義を参照することもできます)。 |
<ParkingIncluded> | Optional | boolean | 条件の組み合わせに無料の駐車場が含まれているかどうか(駐車場がない場合、通常はこのホテルの有料サービスとなる場合)。無料駐車場を提供しているホテルの場合は、この要素の値を指定しないでください。 有効な値は |
<RatePlanID> | Optional | string | 料金プラン 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> 要素では、単一の必須属性 currency を使用して、税金の 3 文字の通貨コードを定義します。たとえば、米ドルの場合は USD を使用します。 |
例
1 人部屋の一括販売
次の例では、1 つの宿泊人数バンドルを含むレスポンスを定義しています。ユーザーが定員選択ツールで 1
を選択すると、宿泊人数に関係なく、最低対象料金が表示されます。
1 人 1 人 1 人部屋の料金が用意されていない場合、Google は 2 人 1 人 1 人部屋の最安料金を表示します。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>
複数の限定価格
次の例では、1 つの <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"> )。 |
例
次の例は、<Results>
、<RoomBundle>
、または <Rates>
子要素内で <OccupancyDetails>
がどのように表示されるかを示しています。
結果のレスポンス
次の例では、ユーザーが宿泊客の人数と種類を指定したライブ料金クエリに応答して、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>