การอ้างอิง XML ของราคาและห้องว่าง (Transaction)

หน้านี้แสดงข้อมูลอ้างอิงสำหรับข้อความ Transaction แบบ XML

<Transaction>

องค์ประกอบรูทของข้อความ Transaction มีค่าเป็น <Transaction> เป็นคอนเทนเนอร์สำหรับข้อมูลที่ให้คำอธิบายเกี่ยวกับ ห้องและแพ็กเกจ และราคาและความพร้อมให้บริการสำหรับห้องพักและแพ็กเกจ

องค์ประกอบ <Transaction> จะปรากฏในตำแหน่งต่อไปนี้ใน ลำดับชั้น XML ของข้อความธุรกรรม:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

ข้อความที่ใช้ <Transaction> เป็นองค์ประกอบรูทต้องมีอย่างน้อย 1 รายการ องค์ประกอบย่อย ข้อความ Transaction จะมีองค์ประกอบย่อยกี่รายการก็ได้ เช่น ขนาดข้อความทั้งหมดต้องไม่เกิน 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>

Attributes

องค์ประกอบ <Transaction> มีแอตทริบิวต์ต่อไปนี้

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
id Required สตริง ตัวระบุที่ไม่ซ้ำกันสำหรับข้อความ Transaction แต่ละรายการ
partner Optional string บัญชีพาร์ทเนอร์ที่เป็นเจ้าของข้อความ Transaction คุณ มักใช้วิธีนี้หากแบ็กเอนด์แสดงฟีดราคาสำหรับ บัญชีพาร์ทเนอร์ ค่าสตริงนี้คือ "คีย์พาร์ทเนอร์" มูลค่าที่แสดงใน หน้าการตั้งค่าบัญชีใน Hotel Center
timestamp Required DateTime

ช่วงเวลาที่มีข้อความ Transaction ที่คุณส่งไป

ข้อความที่ส่งพร้อมการประทับเวลาภายใน 24 ชั่วโมงก่อนหน้าจะได้รับการ ประมวลผลแล้ว รวมถึงรายการที่ยังไม่ทิ้ง

ระบบจะประมวลผลข้อความตามลำดับtimestamp ไม่ใช่ใน ลำดับของการได้รับ เช่น การอัปเดตราคาด้วย การประทับเวลาของ 2019-05-03 14:09:00 ที่ได้รับหลังจาก ข้อความที่มีการประทับเวลา 2019-05-03 14:10:00 จะ ยังคงได้รับการประมวลผลตามลำดับ และราคาจากข้อความที่มี ระบบจะใช้การประทับเวลาของ 2019-05-03 14:10:00

องค์ประกอบลูก

องค์ประกอบ <Transaction> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<PropertyDataSet> Optional* <PropertyDataSet>

อธิบายห้องพักและแพ็กเกจห้องพักที่เฉพาะเจาะจง คุณมักจะใช้ตัวเลือกนี้ ในข้อความ Transaction แยกต่างหากเพื่อกำหนดค่าที่ใช้ร่วมกันสำหรับ แพ็กเกจห้องพักและลดขนาดข้อความ Transaction

<Result> Optional* <Result>

ข้อมูลราคาสำหรับแผนการเดินทางของห้องพักหรือ องค์ประกอบ <RoomBundle> ที่กำหนดแพ็กเกจห้องพักและ ประเภทของห้องพักอื่นๆ ของที่พัก และสามารถใช้องค์ประกอบ <Result> เพื่อนำออกได้ด้วย แผนการเดินทางจากพื้นที่โฆษณา

* อย่างน้อย 1 จาก <PropertyDataSet> หรือ <Result> ต้องระบุ

ตัวอย่าง

ข้อมูลห้องพัก

ตัวอย่างต่อไปนี้จะกำหนดข้อมูลห้องพักในข้อความ 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 ถึง 7 คืนตั้งแต่วันที่ 7 มิถุนายน 2023

<?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>


ฐานและ ราคาสำหรับลูกค้าที่เข้าเกณฑ์

ตัวอย่างต่อไปนี้แสดงข้อความ 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>

Attributes

องค์ประกอบ <PropertyDataSet> ไม่มีแอตทริบิวต์

องค์ประกอบลูก

องค์ประกอบ <PropertyDataSet> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<PackageData> Optional* <PackageData> อธิบายแพ็กเกจห้องพัก ข้อมูลนี้เชื่อมโยงกับพาร์ทเนอร์ และ โรงแรม แต่ไม่ใช่ในแผนการเดินทาง องค์ประกอบนี้คล้ายกับ <RoomData> แต่อธิบายเกี่ยวกับสิ่งอำนวยความสะดวกและข้อกำหนดที่ไม่ใช่ ของคำอธิบายห้องพักจริง

คุณจะอ้างอิงรหัสแพ็กเกจในการอัปเดตราคา

ดูข้อมูลเพิ่มเติมได้ที่ ข้อมูลเมตาของแพ็กเกจห้องพัก

<Property> Required string รหัสของโรงแรมที่ใช้ข้อมูลที่เชื่อมโยง ค่าขององค์ประกอบนี้ต้องเป็นสตริงที่ตรงกับรายการ <id> ในฟีดข้อมูลโรงแรม
<RoomData> Optional* <RoomData> อธิบายห้องพัก ข้อมูลนี้เชื่อมโยงกับพาร์ทเนอร์และโรงแรม แต่ไม่ใช่แผนการเดินทาง

คุณจะอ้างอิงรหัสห้องพักในการอัปเดตราคา

* อย่างน้อย 1 จาก <PackageData> หรือ <RoomData> ต้องระบุ

ตัวอย่าง

ข้อมูลห้องพักและแพ็กเกจ

ตัวอย่างต่อไปนี้แสดงทั้งข้อมูลห้องพักและแพ็กเกจใน <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>

เมื่อส่งราคาและความพร้อมให้บริการของห้องพักและแพ็กเกจห้องพักนี้ คุณจะได้รับ ให้อ้างอิงรหัสห้องพักและรหัสแพ็กเกจในข้อความราคา ผลลัพธ์คือ คุณสามารถลดขนาดข้อความได้มาก และยังช่วยลด จำนวนข้อผิดพลาดที่คุณอาจพบเนื่องจากมีข้อมูลซ้ำ สำหรับข้อมูลเพิ่มเติม ดูข้อมูลที่หัวข้อข้อมูลเมตาของแพ็กเกจห้องพัก

<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>

Attributes

องค์ประกอบ <RoomData> ไม่มีแอตทริบิวต์

องค์ประกอบลูก

องค์ประกอบ <RoomData> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<Capacity> Optional integer จำนวนแขกสูงสุดที่ห้องพักเข้าพักได้ด้วยตนเอง รองรับ สำหรับห้อง ความจุจะมากกว่าหรือเท่ากับ อัตราการเข้าพัก

เมื่อระบุ ค่านี้ต้องเท่ากับหรือมากกว่าค่า ขององค์ประกอบ <Occupancy> ซึ่งเป็น จำนวนแขกสำหรับห้องใดห้องหนึ่ง ตัวอย่างเช่น <Capacity> อาจเป็น 6 แต่ <Occupancy> เท่ากับ 4

ค่าของ <Capacity> ต้องเป็นจำนวนเต็มบวก ตั้งแต่ 1 ถึง 20

<Description> Optional Object คำอธิบายห้องพักโดยละเอียด องค์ประกอบนี้ควร มีข้อมูลที่ไม่ได้อธิบายโดยองค์ประกอบอื่นๆ หรือ องค์ประกอบ <Name> คุณไม่ควรใช้ตัวพิมพ์ใหญ่ทั้งหมด ตัวอักษรเมื่อระบุคำอธิบายของห้อง

องค์ประกอบ <Description> มีหน่วยย่อยรายการเดียว <Text> ซึ่งมี 2 รายการต่อไปนี้ แอตทริบิวต์ที่ต้องระบุมีดังนี้

  • text: คำอธิบายห้องพักโดยละเอียด
  • language: รหัสภาษาแบบ 2 ตัวอักษร ตัวอย่างเช่น fr

ใช้องค์ประกอบ <Text> แยกกันสำหรับแต่ละภาษา ที่โฆษณาหรือลิงก์การจองแบบไม่เสียค่าใช้จ่ายของคุณอาจปรากฏ (โดยมีค่าที่แตกต่างกันสำหรับ language)

ตัวอย่างต่อไปนี้แสดงห้องพักในเวอร์ชันภาษาฝรั่งเศสและภาษาอังกฤษ คำอธิบาย:

<Description>
  <Text text="Two queen-sized beds" language="en"/>
  <Text text="Deux lits de la reine" language="fr"/>
</Description>
<Name> Required string ชื่อหมวดหมู่ของห้องพัก ค่านี้ควรตรงกับ แสดงบนหน้า Landing Page (เดิมคือจุดขาย) ของโรงแรม ไม่ต้องตั้งค่า ค่าขององค์ประกอบนี้เป็นตัวพิมพ์ใหญ่ทั้งหมด

องค์ประกอบนี้มีองค์ประกอบย่อย <Text> รายการ ซึ่งมีแอตทริบิวต์ที่จำเป็น 2 รายการต่อไปนี้

  • text: ชื่อห้องพัก
  • language: รหัสภาษาแบบ 2 ตัวอักษร ตัวอย่างเช่น fr

ใช้องค์ประกอบ <Text> แยกกันสำหรับแต่ละภาษา ที่โฆษณาหรือลิงก์การจองแบบไม่เสียค่าใช้จ่ายของคุณอาจปรากฏ (โดยมี สำหรับแอตทริบิวต์ language)

ตัวอย่างต่อไปนี้แสดงห้องพักในเวอร์ชันภาษาฝรั่งเศสและภาษาอังกฤษ ชื่อ:

<Name>
  <Text text="Standard Double Room" language="en"/>
  <Text text="Le chambre double" language="fr"/>
</Name>
<Occupancy> Optional integer จำนวนแขกสูงสุดที่กำหนดไว้สำหรับห้องพัก ตัวอย่างเช่น ห้องสวีทขนาดใหญ่อาจรองรับผู้เข้าพักได้ 6 คน แขก (ความจุ = 6) แต่กำหนดไว้ว่าเข้าพักได้สูงสุด 4 คนเท่านั้น

ค่านี้ต้องน้อยกว่าหรือเท่ากับค่า องค์ประกอบ <Capacity> ซึ่งเป็นจํานวนคน ที่ห้องพักรองรับได้จริง

ค่าของ <Occupancy> ต้องเป็นจำนวนบวก จำนวนเต็มระหว่าง 1 ถึง 99

<Occupancy> อาจมาพร้อมกับ <OccupancyDetails> ซึ่งระบุประเภทของ แขก (ผู้ใหญ่หรือเด็ก) โปรดดู <OccupancyDetails> สำหรับไวยากรณ์ และคำอธิบายขององค์ประกอบย่อย

<OccupancySettings> Optional Object การตั้งค่าที่สามารถจำกัดหรือแก้ไขข้อกำหนดเกี่ยวกับอัตราการเข้าพัก ห้องแชท

องค์ประกอบ <OccupancySettings> ใช้องค์ประกอบ องค์ประกอบย่อยต่อไปนี้

  • <MinOccupancy>: จำนวนแขกขั้นต่ำ ที่ใช้อยู่ในห้องได้ เช่น หากตั้งค่าเป็น 2 ห้องนี้ไม่สามารถจองสำหรับแขกคนเดียว

    ค่าของ <MinOccupancy> ต้องเป็นจำนวนบวก จำนวนเต็มระหว่าง 1 ถึง 99

  • <MinAge>: อายุขั้นต่ำสำหรับแขกทุกคน อยู่ในห้องพัก ตัวอย่างเช่น หากตั้งค่าเป็น 18 ห้องนี้จองได้เฉพาะกลุ่มที่แขกทุกคนมีอายุ 18 ปีขึ้นไปเท่านั้น หรือเก่ากว่า

    ค่าของ <MinAge> ต้องเป็นจำนวนเต็มบวก ตั้งแต่ 0 ถึง 99

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

โดยไม่จําเป็นต้องรวมองค์ประกอบย่อยบางรายการ

<PhotoURL> Optional Object URL และคำบรรยายภาพแบบไม่บังคับสำหรับรูปภาพของห้องที่ระบุ หรือ แพ็กเกจห้องพัก คุณสามารถระบุ <PhotoURL> ได้มากกว่า 1 รายการ สำหรับห้องพักหรือแพ็กเกจห้องพัก URL ของรูปภาพแต่ละรายการต้องเป็น <PhotoURL>

องค์ประกอบนี้มีองค์ประกอบย่อยต่อไปนี้

  • <URL>: ระบุตำแหน่งของรูปภาพ ตำแหน่งควรเป็นสาธารณะ (ไม่ได้อยู่หลังไฟร์วอลล์) และควรรวม โปรโตคอล (เช่น https://) ใช้เพียงรายการเดียว <URL> ต่อ <PhotoURL>
  • <Caption>: กำหนดคำบรรยายภาพสำหรับรูปภาพ องค์ประกอบนี้มีองค์ประกอบย่อย <Text> รายการ ซึ่งมีแอตทริบิวต์ที่ต้องระบุ 2 รายการ ได้แก่ text และ language แอตทริบิวต์ text คือคำบรรยายภาพ และแอตทริบิวต์ language ระบุตัวอักษร 2 ตัว รหัสภาษา เช่น en

ตัวอย่าง

<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 รหัสที่ไม่ซ้ำกันสำหรับห้องพัก ใช้รหัสนี้เพื่อจับคู่ข้อมูลห้องพัก ที่มีบล็อก <Result> ในการอัปเดตราคา สำหรับ ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเมตาของแพ็กเกจห้องพัก (คุณ และยังสามารถใช้รหัสนี้เพื่ออ้างอิงคำจำกัดความของห้องพักทั่วไปใน ข้อความ 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>

ห้องและ ข้อมูลเมตาของแพ็กเกจ

ตัวอย่างต่อไปนี้ระบุข้อมูลเมตาของห้องพักและแพ็กเกจ

<?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>

Attributes

องค์ประกอบ <RoomFeatures> ไม่มีแอตทริบิวต์

องค์ประกอบลูก

องค์ประกอบ <RoomFeatures> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<JapaneseHotelRoomStyle> Optional enum

ระบุสไตล์ห้องพักโรงแรมสไตล์ญี่ปุ่น

ค่าที่ใช้ได้มีดังนี้

  • western: ห้องพักสไตล์ตะวันตกพร้อมเตียง
  • japanese: ห้องพักสไตล์ญี่ปุ่นพร้อมเตียงฟูก
  • japanese_western: ห้องสไตล์ญี่ปุ่นตะวันตกที่มี ทั้งแบบตะวันตกและฟูกสไตล์ญี่ปุ่น
<Beds> Optional Object มี <Bed> มากที่สุดเท่าที่มีได้ในห้อง หมายเหตุ ก็ไม่ควรนับฟูกญี่ปุ่นที่นี่

<Bed> แต่ละรายการจะมีแอตทริบิวต์ต่อไปนี้

  • size (ไม่บังคับ): ค่าที่ถูกต้องคือ single semi_double double queen และ king
<Bed> แต่ละรายการมีองค์ประกอบย่อยต่อไปนี้
  • <Width> (ไม่บังคับ): ระบุความกว้างของเตียง ต้อง มีแอตทริบิวต์ unit ที่มีค่า cm และ แอตทริบิวต์ number ที่มีความกว้างของเตียงเป็นจำนวนเต็ม เซนติเมตร
  • <Length> (ไม่บังคับ): ระบุความยาวเตียง ต้องมีแอตทริบิวต์ unit ที่มีค่า cm และแอตทริบิวต์ number ที่มีความยาวของเตียง จำนวนเต็มเซนติเมตร
ตัวอย่าง
<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 ระบุองค์ประกอบนี้เมื่อห้องพักนี้เป็นที่พักกลางแจ้งซึ่งไม่ มีผนังยึดติดกับที่ ท่อประปา และระบบควบคุมอุณหภูมิ เช่น ห้องพักในโรงแรม ไม่ใช่ที่พักกลางแจ้ง แต่จุดตั้งแคมป์ที่แขกพักในเต็นท์และ ที่จอดรถบ้านที่แขกนำรถบ้านมาเองเป็นที่พักกลางแจ้ง
<MobilityAccessible> Optional empty ระบุองค์ประกอบนี้เมื่อห้องนี้รองรับการเคลื่อนไหว
<Smoking> Optional enum ห้องนี้เป็นห้องปลอดบุหรี่หรือห้องสูบบุหรี่ ค่าที่ถูกต้อง คือ non_smoking และ smoking
<BathAndToilet> Optional Object มีข้อมูลเกี่ยวกับอ่างอาบน้ำและห้องสุขาในห้องพัก

แอตทริบิวต์คือ

  • relation (ไม่บังคับ): ระบุลักษณะการอาบน้ำและห้องสุขา จะวางเสมอกัน ค่าที่ถูกต้องคือ together (ทั้งห้องอาบน้ำและห้องน้ำอยู่ด้วยกันในห้องเดียวกัน (เช่น ห้องน้ำ) ติดกัน) และ separate (ห้องน้ำและห้องน้ำจะมีพื้นที่เฉพาะ) แอตทริบิวต์นี้ต้องไม่ใช่ ตั้งค่าเมื่อห้องไม่มีทั้งห้องน้ำและห้องน้ำ

องค์ประกอบนี้สามารถใส่องค์ประกอบย่อยต่อไปนี้

  • <Bath> (ไม่บังคับ): การมีอยู่ขององค์ประกอบนี้ แสดงว่าห้องมีอ่างอาบน้ำ

    แอตทริบิวต์ดังกล่าวมีดังนี้

    • bathtub (ไม่บังคับ): บ่งบอกว่าห้องน้ำมี อ่างอาบน้ำในห้องน้ำ ค่าที่ถูกต้องคือ 0 (หรือ false) และ 1 (หรือ true)
    • shower (ไม่บังคับ): บ่งบอกว่าห้องน้ำมี ฝักบัว ค่าที่ใช้ได้คือ 0 (หรือ false) และ 1 (หรือ true)
  • <Toilet> (ไม่บังคับ): การมีอยู่ขององค์ประกอบนี้ บ่งบอกว่าห้องนี้มีห้องน้ำ

    แอตทริบิวต์ดังกล่าวมีดังนี้

    • electronic_bidet (ไม่บังคับ): ระบุว่า โถสุขภัณฑ์มีโถสุขภัณฑ์ไฟฟ้า ค่าที่ใช้ได้คือ 0 (หรือ false) และ 1 (หรือ true)
    • mobility_accessible (ไม่บังคับ): ระบุว่า ห้องน้ำรองรับผู้ที่มีความคล่องตัว ค่าที่ถูกต้องคือ 0 (หรือ false) และ 1 (หรือ true)

ตัวอย่าง

<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 ตัวเลือกที่ใช้ได้มีดังนี้

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

ตัวอย่าง

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 เตียงคู่

ต่อไปนี้เป็นตัวอย่างห้องสไตล์ญี่ปุ่นสไตล์ western ที่มี 2 ห้อง double เตียง

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


สไตล์ญี่ปุ่นแบบไม่มีเตียง

ต่อไปนี้เป็นตัวอย่างของห้องพักสไตล์ญี่ปุ่นที่ไม่มีเตียง เตียง ไม่ต้องระบุข้อมูลสำหรับห้องสไตล์ 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>

อาหารญี่ปุ่นตะวันตกบนเตียง

ต่อไปนี้คือตัวอย่างของห้องพักสไตล์ japanese_western ที่มี king เตียงขนาดมาตรฐาน

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

หากพาร์ทเนอร์ไม่มีข้อมูลจำนวนเตียงใน 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> รายการเดียวสำหรับที่พัก คุณต้อง อัปเดตองค์ประกอบ <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>

Attributes

องค์ประกอบ <PackageData> ไม่มีแอตทริบิวต์

องค์ประกอบลูก

องค์ประกอบ <PackageData> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<BreakfastIncluded> Optional boolean ระบุว่าแพ็กเกจนี้รวมอาหารเช้าในราคาดังกล่าวหรือไม่ ค่าที่ใช้ได้คือ 0 (หรือ false) และ 1 (หรือ true)

เราขอแนะนำให้คุณใช้ <Meals> แทนที่จะเป็น <BreakfastIncluded>

<ChargeCurrency> Optional enum เวลาและตําแหน่งที่ผู้ใช้ชำระเงินสำหรับการจอง องค์ประกอบนี้ใช้ เป็น <ChargeCurrency> ใน <Result>

ค่าเริ่มต้นคือ web

<CheckinTime> Optional Time เวลาเช็คอินที่เร็วที่สุด เวลาต้องน้อยกว่า 24:00 น. ตามเวลาท้องถิ่นของโรงแรม
<CheckoutTime> Optional Time เวลาเช็คเอาต์ล่าสุดตามเวลาท้องถิ่นของโรงแรม
<Description> Optional Object คำอธิบายแพ็กเกจโดยละเอียด องค์ประกอบนี้ควร มีข้อมูลที่ไม่ได้อธิบายโดยองค์ประกอบอื่นๆ หรือ องค์ประกอบ <Name> คุณไม่ควรใช้ตัวพิมพ์ใหญ่ทั้งหมด ตัวอักษรเมื่อระบุคำอธิบายของห้อง

องค์ประกอบ <Description> มีเพียงรายการเดียว องค์ประกอบย่อย <Text> ซึ่งมีแอตทริบิวต์ที่ต้องระบุ 2 รายการ text และ language text คือรายละเอียด และแอตทริบิวต์ language ระบุรหัสภาษาแบบ 2 ตัวอักษร ตามตัวอย่างต่อไปนี้ แสดง:

<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 มีข้อมูลเกี่ยวกับอาหารในแพ็กเกจนี้

องค์ประกอบ <Meals> มีองค์ประกอบย่อย 2 รายการ (ไม่บังคับ) องค์ประกอบ <Breakfast> และ <Dinner> ซึ่งมีแอตทริบิวต์ต่อไปนี้

  • included (ต้องระบุ): ตั้งค่าเป็น 1 (หรือ true) หากราคารวมอาหารเช้า/อาหารเย็น หากตั้งค่าไว้เป็นอย่างอื่นเป็น 0 หรือ false
  • in_room (ไม่บังคับ): ตั้งค่าเป็น 1 (หรือ true) หากแขกมีตัวเลือกในการรับประทานอาหารเช้า/อาหารเย็นในห้องพัก in; หากตั้งค่าเป็น 0 (หรือ false)
  • in_private_space (ไม่บังคับ): ตั้งค่าเป็น 1 (หรือ true) หากแขกมีตัวเลือกในการรับประทานอาหารเช้า/เย็นที่ พื้นที่ทำงาน (ยกเว้นห้องที่ผู้ใช้พักอยู่) ที่ผู้ใช้หลีกเลี่ยงการสัมผัสได้ แขกรับเชิญอื่น หากตั้งค่าเป็น 0 (หรือ false)
  • buffet (ไม่บังคับ): ตั้งค่าเป็น 1 (หรือ true) หากอาหารเช้า/อาหารเย็นเป็นแบบบุฟเฟ่ต์ หากตั้งค่าไว้เป็นอย่างอื่นเป็น 0 (หรือ false)

แอตทริบิวต์ที่ไม่บังคับจะใช้ก็ต่อเมื่อ included คือ true

สำหรับตัวกรองมื้ออาหาร (no meals, breakfast only, dinner only และ breakfast and dinner) ที่ทํางาน ต้องการทั้ง <Breakfast> และ <Dinner> เพื่อระบุแอตทริบิวต์ included

<Name> Required string ชื่อแพ็กเกจ ค่านี้ควรตรงกับที่ปรากฏบน หน้า Landing Page ของโรงแรม ไม่ตั้งค่าขององค์ประกอบนี้เป็นตัวพิมพ์ใหญ่ทั้งหมด ตัวอักษร

องค์ประกอบนี้มีองค์ประกอบย่อย <Text> รายการ ซึ่งมีแอตทริบิวต์ 2 รายการ คือ text และ language แอตทริบิวต์ text คือรายละเอียด และ แอตทริบิวต์ language ระบุรหัสภาษาแบบ 2 ตัวอักษร ดังตัวอย่างต่อไปนี้

<Name>
  <Text text="Bed and Breakfast" language="en"/>
  <Text text="Lit et petit déjeuné" language="fr"/>
</Name>
<Occupancy> Optional integer จำนวนแขกสูงสุดที่แพ็กเกจห้องพักกำหนดไว้ ตัวอย่างเช่น ห้องสวีทขนาดใหญ่อาจรองรับผู้เข้าพักได้ 6 คน แต่มีไว้สำหรับแขกไม่เกิน 4 คนเท่านั้น

ค่านี้ต้องน้อยกว่าหรือเท่ากับค่า องค์ประกอบ <Capacity> ซึ่งเป็นจํานวนคน ที่ห้องพักรองรับได้จริง

ค่าของ <Occupancy> ต้องเป็นจำนวนบวก จำนวนเต็มระหว่าง 1 ถึง 99

หากคุณระบุองค์ประกอบนี้ทั้งใน <RoomBundle> และ <PackageData> ค่าใน <RoomBundle> จะมีความสำคัญเหนือกว่า

หมายเหตุ

<Occupancy> อาจมาพร้อมกับ <OccupancyDetails> ซึ่งระบุประเภทแขก (ผู้ใหญ่หรือเด็ก) โปรดดู <OccupancyDetails> สำหรับไวยากรณ์และ คำอธิบายขององค์ประกอบย่อย
<PackageID> Required string

รหัสที่ไม่ซ้ำกันสำหรับแพ็กเกจ ใช้รหัสนี้เพื่อจับคู่ ข้อมูลแพ็กเกจห้องพักที่มีบล็อก <Result> ใน การอัปเดตราคา ดูข้อมูลเพิ่มเติมได้ที่ ห้อง ข้อมูลเมตาของแพ็กเกจ

(คุณยังสามารถใช้รหัสนี้เพื่ออ้างอิงคำจำกัดความของแพ็กเกจห้องพักทั่วไปได้ด้วย ที่ใช้ในข้อความ Transaction รายการเดียวเมื่อกำหนดข้อมูลแพ็กเกจห้องพัก inline.)

<ParkingIncluded> Optional boolean แพ็กเกจห้องพักมีที่จอดรถฟรีหรือไม่ โดย หากไม่ใช่ ที่จอดรถ จะถือเป็นบริการที่มีค่าใช้จ่ายของโรงแรมนี้ ไม่ต้องระบุ ค่าขององค์ประกอบนี้สำหรับโรงแรมที่มีบริการที่จอดรถฟรี

ค่าที่ใช้ได้คือ 0 (หรือ false) และ 1 (หรือ true) ค่าเริ่มต้นคือ false

<PhotoURL> Optional Object (เหมือนกับ <PhotoURL> ใน <RoomData> แต่สำหรับแพ็กเกจ (เช่น รูปภาพอาหาร)
<Refundable> Optional Object แสดงข้อมูลราคาห้องพักที่ขอเงินคืนได้เต็มจำนวนหรือให้แบบฟรี การยกเลิก หากไม่ได้ระบุ ระบบจะไม่แสดงข้อมูลเกี่ยวกับการคืนเงิน นโยบายการคืนเงินที่ระดับ <PackageData> จะลบล้างนโยบายการคืนเงินที่ ระดับ <Result> นโยบายการคืนเงินที่ระดับ <Rates> จะลบล้าง นโยบายการคืนเงินที่ระดับ <PackageData> การกำหนดราคาแบบขอเงินคืนได้อาจ ผู้ใช้ผ่านตัวเลือกอื่นๆ โดยไม่ กำลังแก้ไขสคีมาข้อความ Transaction ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ นโยบายเกี่ยวกับราคาแบบขอเงินคืนได้

ตัวอย่างต่อไปนี้แสดง <Refundable> ที่มีชุดแอตทริบิวต์ทั้งหมด:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

หมายเหตุ: เราขอแนะนำให้ตั้งค่าแอตทริบิวต์ทั้งหมด ฟีด ระบบจะสร้างข้อความเตือนสถานะเมื่อมีแอตทริบิวต์อย่างน้อย 1 รายการ ไม่ได้ตั้งค่าไว้

หากไม่ได้ตั้งค่าแอตทริบิวต์ใดๆ ราคาจะไม่แสดงเป็น สามารถขอคืนเงินได้ แอตทริบิวต์ดังกล่าวมีดังนี้

  • available: (ต้องระบุ) ตั้งค่าเป็น 1 หรือ true เพื่อระบุว่าราคาห้องพักนี้อนุญาตให้ refund; มิเช่นนั้นให้ตั้งค่าเป็น 0 หรือ false
  • refundable_until_days: (ต้องระบุหาก available คือ true) ระบุ จำนวนวันก่อนเช็คอินที่สามารถขอเงินคืนเต็มจำนวนได้ ที่ขอ ค่าของ refundable_until_days ต้องเป็นจำนวนเต็มตั้งแต่ 0 ถึง 330
  • refundable_until_time: (แนะนำอย่างยิ่งหาก available คือ true) ระบุ ตามเวลาท้องถิ่นของโรงแรมที่ คำขอเงินคืนจะถูกนำมาใช้ โดยสามารถใช้ร่วมกับ refundable_until_days เพื่อระบุสำหรับ ตัวอย่างเช่น "ขอเงินคืนได้จนถึง 16:00 น. สองวันก่อนหน้า เช็คอิน" หากไม่ได้ตั้งค่า refundable_until_time ไว้ ค่าเริ่มต้นคือเที่ยงคืน

    ค่าของแอตทริบิวต์นี้จะใช้รูปแบบเวลา

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อตั้งค่าแอตทริบิวต์

  • หาก available หรือ refundable_until_days ไม่ใช่ ตั้งค่า ราคาจะไม่แสดงเป็นขอเงินคืนได้
  • หาก available คือ 0 หรือ false ระบบจะไม่สนใจแอตทริบิวต์อื่นๆ อัตราจะไม่แสดงเป็น สามารถขอคืนเงินได้แม้ว่าจะตั้งค่าแอตทริบิวต์อื่นเพียง 1 หรือทั้ง 2 รายการก็ตาม
<MembershipBenefits Included> Optional boolean ราคาห้องพักจะรวมสิทธิประโยชน์ของสถานะพิเศษสำหรับระยะเวลาการเข้าพัก รวม พารามิเตอร์ต่อไปนี้
  • ProgramName: ชื่อโปรแกรมสถานะพิเศษ
  • ProgramLevel: ระดับของโปรแกรม ดังตัวอย่างต่อไปนี้ "ทอง"
  • NightlyValue (optional): ค่าต่อคืน และสิทธิประโยชน์อื่นๆ
<CarRentalIncluded> Optional boolean ราคาห้องพักรวมถึงบริการเช่ารถฟรีตลอดระยะเวลาที่เข้าพัก
<MilesIncluded>&gt; Optional boolean ราคานี้รวมการสะสมไมล์ โดยพารามิเตอร์มีดังนี้
  • NumberofMiles: จำนวนไมล์ต่อแผนการเดินทาง
  • Provider: ให้บริการสะสมไมล์
<OnPropertyCredit> Optional boolean ราคาห้องพักรวมเครดิตสำหรับใช้ในที่พัก (F&B, รีสอร์ต, สปา ฯลฯ) พารามิเตอร์:
  • Amount: มูลค่าของเครดิตต่อแผนการเดินทางในท้องถิ่น สกุลเงิน
<AirportTransportationIncluded> Optional Object ราคาห้องพักนี้รวมบริการรถรับส่งไป/กลับจากสนามบินใกล้เคียงฟรี ฟิลด์ที่ไม่บังคับ แอตทริบิวต์ direction ระบุทิศทางของ การขนส่ง ค่าที่ถูกต้องประกอบด้วย
    from: บริการรถรับส่งจากสนามบินไปยัง ค่านี้เป็นค่าเริ่มต้นหากไม่ได้ระบุทิศทางไว้ to: บริการรถรับส่งจากสนามบิน round_trip: การเดินทางมีทั้งไปและกลับจาก สนามบิน

ตัวอย่าง

แพ็กเกจห้องพักเดี่ยว

ตัวอย่างต่อไปนี้ระบุแพ็กเกจห้องพักเดี่ยวที่มีอัตราการเข้าพัก 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> ในข้อความ Transaction เพื่อนำแผนการเดินทางออกได้ เนื่องจาก ตามที่อธิบายไว้ในการนำพื้นที่โฆษณาออก สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ข้อความ Transaction เพื่ออัปเดตราคาและ ความพร้อมจำหน่ายสินค้า การเพิ่มและอัปเดตสินค้าคงคลัง

ข้อความ Transaction รายการเดียวจะมีองค์ประกอบ <Result> กี่รายการก็ได้ ในข้อความต้องมีขนาดไม่เกิน 100 MB

ไวยากรณ์

องค์ประกอบ <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>

Attributes

องค์ประกอบ <Result> มีแอตทริบิวต์ต่อไปนี้

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
mergeable Optional boolean โดยค่าเริ่มต้น ราคาใหม่สำหรับคู่โรงแรมและแผนการเดินทางที่เฉพาะเจาะจงจะ จะเขียนทับราคาก่อนหน้า (ยังไม่หมดอายุ) ที่แสดงในแคชของ Google แอตทริบิวต์ที่ผสานได้ช่วยให้คุณจัดเก็บราคาเพิ่มเติมไว้ในแคชของ Google โดยไม่ลบข้อมูลราคาก่อนหน้า คำขอข้อมูลราคาแบบเรียลไทม์กับ การตอบกลับตามบริบทจะมีแอตทริบิวต์นี้ตั้งเป็น true เสมอ (โดยไม่คำนึงถึงการตอบกลับข้อความ Transaction ของคุณ)

องค์ประกอบลูก

องค์ประกอบ <Result> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<AllowablePointsOfSale> Optional Object หน้า Landing Page อย่างน้อย 1 หน้าที่มีสิทธิ์สำหรับ โรงแรม หน้า Landing Page คือเว็บไซต์ที่สามารถจัดการขั้นตอนการจองสำหรับ ผู้ใช้ปลายทาง เพื่อใส่หน้า Landing Page บางหน้าอย่างชัดเจน (และยกเว้น อื่นๆ) ให้เพิ่ม <AllowablePointsOfSale> อย่างน้อย 1 รายการ ที่ตรงกับองค์ประกอบ <PointOfSale> id ในไฟล์หน้า Landing Page

หากคุณไม่ใส่องค์ประกอบนี้ หน้า Landing Page ทั้งหมดที่กำหนดไว้ใน ระบบจะถือว่าไฟล์หน้า Landing Page มีสิทธิ์ใช้สำหรับการจอง ห้องแชท ดูข้อมูลเพิ่มเติมได้ที่ ไวยากรณ์ของไฟล์หน้า Landing Page

<Baserate> Optional float

ราคาห้องพักสำหรับการเข้าพัก ค่าขององค์ประกอบนี้ ควรสอดคล้องกับข้อมูลต่อไปนี้

  • สำหรับห้องส่วนตัว ให้กำหนดราคาสำหรับห้องพักแบบคู่ที่ถูกที่สุด ที่คุณนำเสนอ ที่นี่อนุญาตให้ใช้อัตราการเข้าพักที่สูงกว่าหากคุณไม่มี อัตราการเข้าพักสำหรับ 2 คนและบัญชีของคุณมีห้องพักที่ไม่ใช่แบบคู่ เปิดใช้อัตราต่างๆ แล้ว โปรดติดต่อเราเพื่อเปิดใช้ราคาสำหรับห้องพักที่ไม่ใช่แบบคู่ ระบบไม่อนุญาตให้ใช้อัตราการเข้าพักคนเดียวที่นี่ ต้องตั้งค่าภายใต้ <Rates>
  • สำหรับห้องที่แชร์ร่วมกัน ให้เว้นว่างไว้และใช้ <RoomBundle>
  • ค่านี้ควรเป็นราคาฐานรวมสำหรับทุกคืน ไม่ใช่ ต่อคืนโดยเฉลี่ย

เมื่อห้องไม่ว่างสำหรับแผนการเดินทาง ควรละเว้น <Baserate> หรือตั้งค่าเป็น -1 และ <Unavailable> ควรเป็น ที่ระบุ รวมถึงสาเหตุที่ทราบแล้วของการไม่พร้อมใช้งาน

หากต้องการนำแพ็กเกจห้องพักออก ให้ทำตามวิธีการในหัวข้อการนำแพ็กเกจห้องพักออก

<Baserate> ต้องไม่มีการจัดกลุ่มตัวเลข เช่น คอมมา (,) หรือจุด (.) แยกกันเสมอ เศษส่วนที่ใช้เครื่องหมายจุด (.) เป็นเครื่องหมายทศนิยม ตัวอย่างเช่น แสดง $1,200.40 เป็น:

<Baserate currency="USD">1200.40</Baserate>

องค์ประกอบ <Baserate> มีองค์ประกอบต่อไปนี้ แอตทริบิวต์ที่ไม่บังคับ:

  • all_inclusive: บูลีนที่ระบุว่าหากอัตรานี้ รวมภาษีและค่าธรรมเนียม โดยทั่วไปให้กำหนดค่านี้เป็น false สำหรับผู้ใช้ปลายทางในสหรัฐอเมริกาและแคนาดาและค่าจัดหา สำหรับ <Tax> และ <OtherFees> จากองค์ประกอบเหล่านี้ หากใช้ราคาแบบรวมทุกอย่าง คุณอาจไม่มีสิทธิ์ ปรากฏในรายชื่อหากราคาของคุณไม่ได้แยกภาษีออกจากกัน และค่าธรรมเนียมสำหรับผู้ใช้ในแคนาดา

    ขณะนี้ราคาแบบรวมทุกอย่างจะแสดงต่อผู้ใช้ในสหรัฐอเมริกา

    โดยทั่วไปแล้ว สำหรับผู้ใช้ปลายทางคนอื่นๆ ทั้งหมด คุณจะรวมภาษีและค่าธรรมเนียมต่างๆ ด้วย ในอัตราฐานและกำหนดค่าของ all_inclusive เป็น true ดูข้อมูลเพิ่มเติมได้ที่ นโยบายภาษีและค่าธรรมเนียม

    ค่าเริ่มต้นคือ false

  • currency: รหัสสกุลเงิน 3 ตัวอักษร สำหรับ เช่น USD สำหรับดอลลาร์สหรัฐ
<ChargeCurrency> Optional enum เวลาและตําแหน่งที่ผู้ใช้ชำระเงินสำหรับการจอง องค์ประกอบนี้สามารถ ให้ใช้ในข้อความ Transaction ใน<Result> สำหรับราคาโรงแรมหรือบล็อก <PackageData> สำหรับแพ็กเกจห้องพัก

ค่าที่ใช้ได้มีดังนี้

  • web: จะมีการเรียกเก็บเงินผู้ใช้ทางออนไลน์ในช่วงเวลา การจอง นี่คือค่าเริ่มต้น หน้า Landing Page จริงคือ ที่กำหนดโดย ไฟล์หน้า Landing Page และอาจได้รับผลกระทบจากสกุลเงินของผู้ใช้ สถานที่ตั้ง ภาษา หรือปัจจัยอื่นๆ
  • hotel: ระบบจะเรียกเก็บเงินจากผู้ใช้เมื่อเช็คอินที่ โรงแรม หากต้องชำระเงินตามสกุลเงินของโรงแรมเสมอ ให้ตั้งค่า ค่าของ <ChargeCurrency> เป็น hotel หน้า Landing Page จริงจะไม่ได้รับผลกระทบจาก สกุลเงินของผู้ใช้
  • deposit: มีการเรียกเก็บเงินบางส่วนจากผู้ใช้ทันที และจะมีการเรียกเก็บเงินส่วนที่เหลือในภายหลัง ซึ่งโดยปกติแล้ว เมื่อผู้ใช้เช็คเอาต์จากโรงแรม
  • installments: มีการเรียกเก็บเงินผู้ใช้เป็นเศษส่วนเริ่มต้น ของจำนวนเงินทั้งหมดที่ต้องชำระ และคาดว่าจะชำระยอดคงเหลือเป็นประจำ ในช่วงระยะเวลาหนึ่ง

ค่าเริ่มต้นคือ web

<Checkin> Required Date วันที่เช็คอินสำหรับแผนการเดินทางโดยใช้วันที่ ชุดค่าผสมขององค์ประกอบ <Nights> และ องค์ประกอบ <Checkin> ประกอบขึ้นเป็นแผนการเดินทาง
<Custom[1‑5]> Optional string ระบุช่องที่กำหนดเองที่คุณสามารถใช้เพื่อส่งข้อมูลเพิ่มเติม ที่เกี่ยวข้องกับโรงแรม คุณสามารถส่งผ่านค่าที่กำหนดเองได้สูงสุด 5 ค่าด้วยฟังก์ชัน ชื่อองค์ประกอบต่อไปนี้
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

องค์ประกอบ <Custom> ช่วยให้คุณส่งข้อมูลที่กำหนดเองได้ ตัวอย่างเช่น คุณสามารถระบุค่าในช่องนี้ซึ่งจะเป็น ที่ไฟล์หน้า Landing Page ใช้เพื่อสร้าง URL ที่กำหนดเองสำหรับ Landing Page ช่องที่กำหนดเองแต่ละช่องมีอักขระได้ไม่เกิน 200 ตัว สำหรับ ข้อมูลเพิ่มเติมที่ ไฟล์หน้า Landing Page

&lt;Custom&gt; องค์ประกอบที่ระบุไว้ใน <Rate> ไม่รับค่าไปยังองค์ประกอบ <RoomBundle> คุณควร กำหนด <Custom> แยกกันใน <RoomBundle> แต่ละรายการ

<ExpirationTime> Optional DateTime วันที่และเวลาที่ถือว่าราคาหมดอายุ (3 ชั่วโมง ขั้นต่ำ)

เราไม่แนะนำให้ระบุการประทับเวลาการหมดอายุ หากมี ไม่จำเป็นต่อโครงสร้างการกำหนดราคาของคุณ

Google จะไม่แสดงราคาใดๆ ที่หมดอายุ รวมถึงแผนการเดินทาง ที่มีราคาที่หมดอายุแล้วจะมีสิทธิ์สำหรับ การขอข้อมูลราคาแบบเรียลไทม์

<Nights> Required integer จำนวนคืนสำหรับแผนการเดินทาง ค่าของแอตทริบิวต์ องค์ประกอบ <Nights> ต้องเป็นจำนวนเต็มบวก ชุดค่าผสมของ <Nights> และ <Checkin> กำหนดแผนการเดินทาง
<OtherFees> Optional float ค่าธรรมเนียมอื่นๆ นอกเหนือจากอัตราฐานและภาษีที่มีผลต่อ ราคาสุดท้ายของห้องพัก องค์ประกอบ <OtherFees> ใช้เวลา แอตทริบิวต์ currency ที่ต้องระบุเพียงรายการเดียวซึ่งกำหนด รหัสสกุลเงิน 3 ตัวอักษรสำหรับค่าธรรมเนียม เช่น USD

ต้องระบุองค์ประกอบ <OtherFees> หาก <Baserate> มากกว่า 0

<Occupancy> Optional integer ระบุจำนวนผู้เข้าพักสูงสุดที่ได้รับอนุญาตสำหรับราคานี้ เมื่อ <Occupancy> ปรากฏโดยตรงภายใต้ <Result> ต้องระบุ 2 หรือมากกว่า <Occupancy> อาจ แสดงพร้อมกับ <OccupancyDetails> ซึ่งระบุ ประเภทของแขก (ผู้ใหญ่หรือเด็ก) หากไม่ได้ระบุประเภทแขก โดยถือว่าเป็นผู้ใหญ่ ปรึกษา <OccupancyDetails> สำหรับ ไวยากรณ์และคำอธิบาย ขององค์ประกอบย่อย หาก ไม่ได้ระบุองค์ประกอบ <Occupancy> อัตราการเข้าพักคือ เป็นค่าเริ่มต้น 2

หมายเหตุ: ติดต่อทีมสนับสนุนเพื่อเปิดใช้ฟีเจอร์นี้ ส่งราคาสำหรับห้องพักที่ไม่ใช่แบบคู่

<PackageID> Optional string รหัสที่ไม่ซ้ำกันของแพ็กเกจสำหรับแมปกับข้อมูลแพ็กเกจที่กำหนดไว้ล่วงหน้า นอกจากนี้ยังใช้สร้างตัวแปรของหน้า Landing Page สำหรับ PACKAGE-ID ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ ห้อง ข้อมูลเมตาของแพ็กเกจ
<Property> Required string รหัสของโรงแรมที่ได้รับผลกระทบจากข้อมูลที่เกี่ยวข้อง (ราคา แผนการเดินทาง แพ็กเกจห้องพัก หรือข้อมูลเมตา) ค่าขององค์ประกอบนี้ต้องเป็น สตริง ค่าขององค์ประกอบนี้ต้องตรงกับข้อมูล <id> ที่คุณกำหนดไว้ในฟีดข้อมูลโรงแรม
<Rates> Optional <Rates> คอนเทนเนอร์สำหรับบล็อก <Rate> อย่างน้อย 1 รายการ แต่ละ<Rate>ใน <Rates> จะกำหนดราคาห้องพัก/แผนการเดินทางอื่น ชุดค่าผสม

ใช้องค์ประกอบ <Rates> เมื่อมีหลายราคาสำหรับ ชุดค่าผสมของห้องพัก/แผนการเดินทางเดียวกัน หรือในกรณีที่ไม่อนุญาตให้ใช้ราคา ในระดับ <Result> ตัวอย่างเช่น คุณกำหนดพารามิเตอร์ ราคาสำหรับ ราคาสำหรับลูกค้าที่เข้าเกณฑ์ อัตราส่วนลดเฉพาะบุคคล ราคาสำหรับลูกค้าที่เข้าเกณฑ์ ในแพ็กเกจห้องพักหรืออัตราการเข้าพักที่แตกต่างกัน

หมายเหตุ: ภายใน <Result> อัตราการเข้าพักคนเดียวสามารถ ระบุได้ใน <Rates> เท่านั้น โปรดติดต่อเราเพื่ออนุญาต ราคาสำหรับห้องพักที่ไม่ใช่แบบคู่

<Refundable> Optional Object แสดงข้อมูลราคาห้องพักที่ขอเงินคืนได้เต็มจำนวนหรือให้แบบฟรี การยกเลิก หากไม่ได้ระบุ ระบบจะไม่แสดงข้อมูลเกี่ยวกับการคืนเงิน นโยบายการคืนเงินที่ระดับ <PackageData> จะลบล้างนโยบายการคืนเงินที่ ระดับ <Result> นโยบายการคืนเงินที่ระดับ <Rates> จะลบล้าง นโยบายการคืนเงินที่ระดับ <PackageData> การกำหนดราคาแบบขอเงินคืนได้อาจ ผู้ใช้ผ่านตัวเลือกอื่นๆ โดยไม่ กำลังแก้ไขสคีมาข้อความ Transaction ดูข้อมูลเพิ่มเติมเกี่ยวกับ นโยบายเกี่ยวกับราคาแบบขอเงินคืนได้

ตัวอย่างต่อไปนี้แสดง <Refundable> ที่มีชุดแอตทริบิวต์ทั้งหมด:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

หมายเหตุ: เราขอแนะนำให้ตั้งค่าแอตทริบิวต์ทั้งหมด ฟีด ระบบจะสร้างข้อความเตือนสถานะเมื่อมีแอตทริบิวต์อย่างน้อย 1 รายการ ไม่ได้ตั้งค่าไว้

หากไม่ได้ตั้งค่าแอตทริบิวต์ใดๆ ราคาจะไม่แสดงเป็น สามารถขอคืนเงินได้ แอตทริบิวต์ดังกล่าวมีดังนี้

  • available: (ต้องระบุ) ตั้งค่าเป็น 1 (หรือ true) เพื่อระบุว่าราคาห้องพักเป็น refund; หากตั้งค่าเป็น 0 (หรือ false)
  • refundable_until_days: (ต้องระบุหาก available คือ true) ระบุ จำนวนวันก่อนเช็คอินที่สามารถขอเงินคืนเต็มจำนวนได้ ที่ขอ ค่าของ refundable_until_days ต้องเป็นจำนวนเต็มตั้งแต่ 0 ถึง 330
  • refundable_until_time: (แนะนำอย่างยิ่งหาก available คือ true) ระบุ ตามเวลาท้องถิ่นของโรงแรมที่ คำขอเงินคืนจะถูกนำมาใช้ โดยสามารถใช้ร่วมกับ refundable_until_days เพื่อระบุสำหรับ ตัวอย่างเช่น "ขอเงินคืนได้จนถึง 16:00 น. สองวันก่อนหน้า เช็คอิน" หากไม่ได้ตั้งค่า refundable_until_time ไว้ ค่าเริ่มต้นคือเที่ยงคืน

    ค่าของแอตทริบิวต์นี้จะใช้รูปแบบเวลา

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อตั้งค่าแอตทริบิวต์

  • หาก available หรือ refundable_until_days ไม่ใช่ ตั้งค่า ราคาจะไม่แสดงเป็นขอเงินคืนได้
  • หาก available คือ 0 (หรือ false) ระบบจะไม่สนใจแอตทริบิวต์อื่นๆ อัตราจะไม่แสดงเป็น สามารถขอคืนเงินได้แม้ว่าจะตั้งค่าแอตทริบิวต์อื่นเพียง 1 หรือทั้ง 2 รายการก็ตาม
<RoomBundle> Optional <RoomBundle> คอนเทนเนอร์สำหรับข้อมูลเกี่ยวกับคำอธิบายทางกายภาพของห้องพักที่มีการกำหนดราคา การจัดแพ็กเกจสิ่งอำนวยความสะดวกและรายละเอียดนโยบายการซื้อสำหรับ โรงแรมและแผนการเดินทางที่ระบุ

โดยทั่วไปจะใช้องค์ประกอบนี้เพื่อกำหนดราคาสำหรับห้องพักพื้นฐานและ ห้องพักประเภทต่างๆ ภายในที่พักเดียวกัน แม้ว่าเป็นไปได้ หากต้องการกำหนดคำอธิบายแพ็กเกจห้องพักในบรรทัด คุณควรใช้สคริปต์ ข้อความธุรกรรมเพื่อระบุข้อมูลดังกล่าว Google จะจัดเก็บ ข้อมูลเมตาเก็บไว้ เพื่อให้อ้างอิงได้ โดยไม่ต้องทำซ้ำทั้งหมด การอัปเดตราคาในอนาคต

<RoomID> Optional string รหัสที่ไม่ซ้ำกันของห้องพักสำหรับแมปกับข้อมูลห้องพักที่กำหนดไว้ล่วงหน้า และ ที่ใช้เพื่อสร้างตัวแปรของหน้า Landing Page สำหรับ PARTNER-ROOM-ID ดูข้อมูลเพิ่มเติมได้ที่ ห้อง ข้อมูลเมตาของแพ็กเกจ
<Tax> Optional float ภาษีที่คำนวณสำหรับราคาสุดท้ายของห้องพัก องค์ประกอบ <Tax> ใช้แอตทริบิวต์ที่จำเป็นรายการเดียว currency ซึ่งกำหนดรหัสสกุลเงิน 3 ตัวอักษร เพื่อชำระภาษี เช่น USD ต้องระบุองค์ประกอบ <Tax> หาก <Baserate> มากกว่า 0

หากองค์ประกอบ <Baserate> "รวมทุกอย่าง" มีการตั้งค่าเป็น "จริง" อย่างชัดเจน แล้วตั้งค่านี้ จะระบุหรือไม่ก็ได้

<Unavailable> Optional Object ระบุว่าแผนการเดินทางไม่พร้อมให้จอง ทำหน้าที่เป็น เพื่อดูเหตุผลอย่างละเอียดที่แผนการเดินทางไม่พร้อมใช้งาน หนึ่ง เหตุผลของความไม่พร้อมใช้งานต่อไปนี้ขึ้นไปอาจซ้อนอยู่ใต้ แท็ก <Unavailable>:
  • <NoVacancy/>: ไม่มีห้องพักว่างขายแล้ว สำหรับการเข้าพัก 1 คืนขึ้นไป
  • <MinNightStay value=N/>: แผนการเดินทางอยู่ต่ำกว่า การเข้าพักขั้นต่ำ N คืนสำหรับวันที่เข้าพัก
  • <MaxNightStay value=N/>: แผนการเดินทางอยู่สูงกว่า จำนวนคืนเข้าพักสูงสุด N สำหรับวันที่เข้าพัก
  • <MinAdvancePurchase value=N/>: แผนการเดินทางเดิมคือ ต่ำกว่าระยะเวลาที่จองได้ล่วงหน้าก่อนถึงวันเข้าพักจริงซึ่งอยู่ที่ N สำหรับการเข้าพัก วันที่
  • <MaxAdvancePurchase value=N/>: แผนการเดินทางเดิมคือ เกินระยะเวลาการจองล่วงหน้าสูงสุดที่ N สำหรับการเข้าพัก วันที่
  • <ClosedToArrival/>: พร็อพเพอร์ตี้นี้ไม่อนุญาต เช็คอินในวันที่มาถึงของแผนการเดินทาง
  • <ClosedToDeparture/>: พร็อพเพอร์ตี้นี้ไม่อนุญาต ในวันออกเดินทางของแผนการเดินทาง
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: ที่พักปิดบางแห่ง หรือ ตลอดการเข้าพัก แอตทริบิวต์ที่แนะนำ first_open และ first_closed ระบุวันแรกที่มากกว่าหรือเท่ากับ วันที่ที่พักเปิดหรือปิดทำการ ตามลำดับ สำหรับที่พักที่ปิดหลังจากวันที่เข้าพัก first_open ควรเท่ากับวันที่มาถึงและfirst_closedควร คือวันที่ปิดพร็อพเพอร์ตี้ สําหรับที่พักที่ปิดไปแล้วในวันที่ วันที่มาถึง first_closed ควรเท่ากับวันที่มาถึง และ first_opened ควรเป็นวันที่ถัดไปที่ พร็อพเพอร์ตี้เปิดอยู่
  • <NotFetched/>: ราคาสำหรับแผนการเดินทางไม่ใช่ ที่มาจากแหล่งข้อมูลดาวน์สตรีม
  • <InvalidProperty/>: ตัวระบุพร็อพเพอร์ตี้ที่ขอ ไม่รู้จัก
  • <InvalidOccupancy/>: อัตราการเข้าพักที่ขอไม่ใช่ ที่พร็อพเพอร์ตี้รองรับ
  • <PriceIssue/>: ปัญหาเรื่องราคาที่ทำให้ ส่งไม่ได้
  • <InternalError reason=""/>: ข้อผิดพลาดบางอย่างที่ไม่ได้ระบุ เกิดขึ้น แอตทริบิวต์เหตุผลที่ไม่บังคับจะรายงานข้อผิดพลาดเป็นข้อความได้
  • <OtherRestriction restriction=""/>: แผนการเดินทางเดิมคือ ไม่พร้อมใช้งานเนื่องจากข้อจำกัดการจองบางอย่างที่ไม่มีการแจกแจง ไม่บังคับ แอตทริบิวต์การจำกัดช่วยให้รายงานข้อจำกัดเป็นข้อความได้

ตัวอย่าง

ตัวอย่างที่พักหลายรายการ

ตัวอย่างต่อไปนี้กำหนดแผนการเดินทาง 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 จัดเก็บไว้ จากนั้นคุณก็ใช้อ้างอิงได้ใน การอัปเดตราคาและพื้นที่โฆษณาที่ตามมา ดูข้อมูลเพิ่มเติมได้ที่ ข้อมูลเมตาของแพ็กเกจห้องพัก

ตัวอย่างแบบหลายราคา

ตัวอย่างต่อไปนี้ระบุแผนการเดินทางและที่พักรายการเดียวที่มีหลายรายการ อัตราการเข้าพักต่างๆ องค์ประกอบ <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 รายการที่ไม่มีข้อมูลห้องว่าง ที่ดึงมาจากแชแนลดาวน์สตรีม ช่วงเวลาหนึ่งวินาทีที่ต่ำกว่าค่าต่ำสุด การเข้าพักต่อคืนและจองไว้แล้วสำหรับวันที่ที่ระบุ ที่พักปิดในวันที่เข้าพัก แต่เปิดให้บริการในระหว่าง การเข้าพัก

<?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>

คอนเทนเนอร์สำหรับบล็อก <Rate> อย่างน้อย 1 รายการ แต่ละ<Rate>ใน <Rates> จะกำหนดราคาที่แตกต่างกันสำหรับชุดค่าผสมของห้องพักหรือแผนการเดินทาง

ใช้องค์ประกอบ <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> ก็จะรับค่าของตัวเองจากองค์ประกอบระดับบน เฉพาะ &lt;AllowablePointsofSale&gt; จะรับค่าไปยังองค์ประกอบ <RoomBundle>

ไวยากรณ์

องค์ประกอบ <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>

Attributes

องค์ประกอบ <Rates> มีแอตทริบิวต์ต่อไปนี้

แอตทริบิวต์ จำเป็นหรือไม่ คำอธิบาย
rate_rule_id Optional สำหรับ ราคาสำหรับลูกค้าที่เข้าเกณฑ์ รหัสนี้จะจับคู่ราคากับคำจำกัดความใน ไฟล์คำจำกัดความกฎเกี่ยวกับอัตรา จำนวนอักขระสูงสุดสำหรับช่องนี้คือ 40 อักขระ อักขระ

องค์ประกอบลูก

องค์ประกอบ <Rates> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<AllowablePointsOfSale> Optional Object หน้า Landing Page อย่างน้อย 1 หน้าที่มีสิทธิ์สำหรับ โรงแรม องค์ประกอบนี้จะใช้ไวยากรณ์เดียวกันกับแท็ก <AllowablePointsOfSale> ในวันที่ <Result>
<Baserate> Required float ราคาห้องพักสำหรับการเข้าพัก องค์ประกอบนี้ใช้ เป็นไวยากรณ์ <Baserate> ใน <Result>

หมายเหตุ: องค์ประกอบย่อย <Baserate> ใต้ ไม่สามารถกำหนด <Rate> ว่าไม่พร้อมใช้งาน

<ChargeCurrency> Optional enum เวลาและตําแหน่งที่ผู้ใช้ชำระเงินสำหรับการจอง องค์ประกอบนี้ใช้เมธอด ไวยากรณ์เดียวกับ <ChargeCurrency> ใน <Result>
<Custom[1‑5]> Optional string ช่องที่กำหนดเองที่คุณสามารถใช้เพื่อส่งข้อมูลเพิ่มเติมที่เชื่อมโยงด้วย โรงแรมไปยังหน้า Landing Page องค์ประกอบนี้จะใช้ไวยากรณ์เดียวกันกับแท็ก <Custom[1‑5]>ใน <Result> มีขีดจำกัด 200 อักขระต่อช่องที่กำหนดเอง ดูข้อมูลเพิ่มเติมได้ที่ ไฟล์หน้า Landing Page

หาก <Custom> จะอยู่ใน <Result> องค์ประกอบเหล่านี้จะไม่รับค่ามาใน <RoomBundle> และควรกำหนดแยกกันสำหรับแต่ละรายการ <RoomBundle> หรือจะรวมไว้ใน <PackageData> ก็ได้ ถ้า ที่จำเป็น

<ExpirationTime> Optional DateTime วันที่และเวลาที่ถือว่าราคาหมดอายุ ช่วงเวลานี้ ใช้ไวยากรณ์เดียวกันกับ <ExpirationTime>ใน <Result>
<Occupancy> Optional integer

ระบุจำนวนผู้เข้าพักสูงสุดที่ได้รับอนุญาตสำหรับราคานี้ หากไม่ จะถือว่าตรงกับอัตราของระดับบนสุด <Occupancy> อาจมาพร้อมกับ <OccupancyDetails>ซึ่งระบุประเภทของแขก (ผู้ใหญ่หรือ เด็ก) ดูข้อมูลเกี่ยวกับ <OccupancyDetails> สำหรับไวยากรณ์และคำอธิบายของ องค์ประกอบย่อย

<OtherFees> Required float ค่าธรรมเนียมอื่นๆ นอกเหนือจากอัตราฐานและภาษีที่มีผลต่อราคาสุดท้าย ของห้อง องค์ประกอบนี้จะใช้ไวยากรณ์เดียวกันกับ <OtherFees>ใน <Result>

หากองค์ประกอบ <Baserate> "รวมทุกอย่าง" มีการตั้งค่าเป็น "จริง" อย่างชัดเจน แล้วตั้งค่านี้ จะระบุหรือไม่ก็ได้

<Refundable> Optional Object แสดงข้อมูลราคาห้องพักที่ขอเงินคืนได้เต็มจำนวนหรือให้แบบฟรี การยกเลิก หากไม่ได้ระบุ ระบบจะไม่แสดงข้อมูลเกี่ยวกับการคืนเงิน นโยบายการคืนเงินที่ระดับ <PackageData> จะลบล้างนโยบายการคืนเงิน ที่ระดับ <Result> นโยบายการคืนเงินที่ระดับ <Rates> จะลบล้าง นโยบายการคืนเงินที่ระดับ <PackageData> การกำหนดราคาแบบขอเงินคืนได้อาจ ผู้ใช้ผ่านตัวเลือกอื่นๆ โดยไม่ กำลังแก้ไขสคีมาข้อความ Transaction ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ นโยบายเกี่ยวกับราคาแบบขอเงินคืนได้

ตัวอย่างต่อไปนี้แสดง <Refundable> ที่มีชุดแอตทริบิวต์ทั้งหมด:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

หมายเหตุ: เราขอแนะนำให้ตั้งค่าแอตทริบิวต์ทั้งหมด ฟีด ระบบจะสร้างข้อความเตือนสถานะเมื่อมีแอตทริบิวต์อย่างน้อย 1 รายการ ไม่ได้ตั้งค่าไว้

หากไม่ได้ตั้งค่าแอตทริบิวต์ใดๆ ราคาจะไม่แสดงเป็น สามารถขอคืนเงินได้ แอตทริบิวต์ดังกล่าวมีดังนี้

  • available: (ต้องระบุ) ตั้งค่าเป็น 1 (หรือ true) เพื่อระบุว่าราคาห้องพักเป็น refund; หากตั้งค่าเป็น 0 (หรือ false)
  • refundable_until_days: (ต้องระบุหาก available คือ true) ระบุ จำนวนวันก่อนเช็คอินที่สามารถขอเงินคืนเต็มจำนวนได้ ที่ขอ ค่าของ refundable_until_days ต้องเป็นจำนวนเต็มตั้งแต่ 0 ถึง 330
  • refundable_until_time: (แนะนำอย่างยิ่งหาก available คือ true) ระบุ ตามเวลาท้องถิ่นของโรงแรมที่ คำขอเงินคืนจะถูกนำมาใช้ โดยสามารถใช้ร่วมกับ refundable_until_days เพื่อระบุสำหรับ ตัวอย่างเช่น "ขอเงินคืนได้จนถึง 16:00 น. สองวันก่อนหน้า เช็คอิน" หากไม่ได้ตั้งค่า refundable_until_time ไว้ ค่าเริ่มต้นคือเที่ยงคืน

    ค่าของแอตทริบิวต์นี้จะใช้รูปแบบเวลา

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อตั้งค่าแอตทริบิวต์

  • หาก available หรือ refundable_until_days ไม่ใช่ ตั้งค่า ราคาจะไม่แสดงเป็นขอเงินคืนได้
  • หาก available คือ 0 (หรือ false) ระบบจะไม่สนใจแอตทริบิวต์อื่นๆ อัตราจะไม่แสดงเป็น สามารถขอคืนเงินได้แม้ว่าจะตั้งค่าแอตทริบิวต์อื่นเพียง 1 หรือทั้ง 2 รายการก็ตาม
<Tax> Required float ภาษีที่คำนวณสำหรับราคาสุดท้ายของห้องพัก ช่วงเวลานี้ ใช้ไวยากรณ์เดียวกันกับ <Tax> ในองค์ประกอบ <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>

ราคาสำหรับลูกค้าที่เข้าเกณฑ์หลายรายการ

ตัวอย่างต่อไปนี้กำหนดราคาฐานและราคาสำหรับลูกค้าที่เข้าเกณฑ์หลายรายการ ภายใน <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>

กำหนดราคาและความพร้อมให้บริการสำหรับแพ็กเกจห้องพักเป็นรายการย่อยของ <Result> ในข้อความ <Transaction> กำหนดองค์ประกอบแยกกันสำหรับแต่ละองค์ประกอบ ทั้งแพ็กเกจหรือแผนการเดินทาง หากต้องการนิยามแพ็กเกจและข้อกำหนดของ แพ็กเกจห้องพัก ให้ใช้ <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>

Attributes

องค์ประกอบ <RoomBundle> ไม่มีแอตทริบิวต์

องค์ประกอบลูก

องค์ประกอบ <RoomBundle> มีองค์ประกอบย่อยต่อไปนี้

องค์ประกอบย่อย จำเป็นหรือไม่ ประเภท คำอธิบาย
<Baserate> Required float กำหนดราคาของแพ็กเกจห้องพักสำหรับการเข้าพัก องค์ประกอบนี้ใช้ ไวยากรณ์เดียวกันกับ <Baserate> ใน <Result> โดยมีค่า ข้อยกเว้นต่อไปนี้
  • เมื่อห้องไม่ว่างสำหรับแผนการเดินทาง ให้นำ องค์ประกอบ <RoomBundle> ที่จะบ่งบอกว่าห้องไม่ว่าง พื้นที่โฆษณาของคุณนานขึ้น ดูข้อมูลเพิ่มเติมได้ที่ การนำแพ็กเกจห้องพักออก
<BreakfastIncluded> Optional boolean ระบุว่าแพ็กเกจห้องพักนี้รวมอาหารเช้าในราคาหรือไม่
<ChargeCurrency> Optional enum เวลาและตําแหน่งที่ผู้ใช้ชำระเงินสำหรับการจอง องค์ประกอบนี้ใช้ เป็น <ChargeCurrency> ใน <Result>

ค่าเริ่มต้นคือ web

<Custom[1‑5]> Optional string ช่องที่กำหนดเองสำหรับส่งข้อมูลเพิ่มเติมไปยังหน้า Landing Page สำหรับแพ็กเกจห้องพัก องค์ประกอบเหล่านี้ใช้ไวยากรณ์เดียวกันกับ <Custom[1-5]> ใน <Result> มีขีดจำกัดอยู่ที่ 200 รายการ อักขระต่อช่องที่กำหนดเอง ดูข้อมูลเพิ่มเติมได้ที่ ไฟล์หน้า Landing Page

หาก <Custom> จะอยู่ใน <Result> องค์ประกอบเหล่านี้จะไม่รับค่ามาใน <RoomBundle> และควรกำหนดแยกกันสำหรับแต่ละรายการ <RoomBundle> หรือจะรวมไว้ใน <PackageData> ก็ได้ ถ้า ที่จำเป็น

<InternetIncluded> Optional boolean หากแพ็กเกจห้องพักมีการเข้าถึงอินเทอร์เน็ตโดยไม่มีค่าใช้จ่าย ขณะที่แพ็กเกจอื่นๆ จะไม่รวมสิ่งอำนวยความสะดวกนั้น ไม่ต้องตั้งค่านี้ องค์ประกอบสำหรับแพ็กเกจห้องพักในโรงแรมที่ให้บริการอินเทอร์เน็ตฟรีแก่ทุกคน ห้องแชท องค์ประกอบนี้ใช้ไม่ได้กับอินเทอร์เน็ตแบบใช้สายหรือไร้สายในห้องพัก อินเทอร์เน็ตที่ไม่มีในห้องพัก
<Occupancy> Required integer ระบุจำนวนผู้เข้าพักสูงสุดที่ได้รับอนุญาตสำหรับราคานี้ ตัวอย่างเช่น ห้องสวีทขนาดใหญ่อาจรองรับแขกได้ 6 คน แต่ "แพ็กเกจฮันนีมูน" อนุญาตแขก 2 คนเท่านั้น

ค่านี้ต้องน้อยกว่าหรือเท่ากับค่า <Capacity> ซึ่งเป็นจำนวนคนที่ ที่ห้องพักรองรับได้จริง

เมื่อกำหนดอัตราการเข้าพักใน URL ของหน้า Landing Page ให้ใช้แอตทริบิวต์ ตัวแปร NUM-ADULTS และ NUM-CHILDREN ตาม ตามที่อธิบายไว้ในการใช้ ตัวแปรและเงื่อนไข ค่าเริ่มต้นคือ 2 ผู้ใหญ่และเด็ก 0 คน

ค่าของ <Occupancy> ต้องเป็นจำนวนบวก จำนวนเต็มระหว่าง 1 ถึง 99

หมายเหตุ

  • <Occupancy> สำหรับ <RoomBundle> ขอแนะนำว่าให้แจ้งว่าไม่เหมาะสม หากละเลย แสดงข้อผิดพลาด 1097
  • <Occupancy> มาจากออบเจ็กต์ข้อมูลในนี้ คำสั่งซื้อ: <RoomBundle> <PackageData> แล้วตามด้วย = <RoomData> หากไม่มีค่าปรากฏอยู่ในรายการใดเลย ค่าเริ่มต้นจะเป็น 2
  • <Occupancy> อาจมาพร้อมกับ <OccupancyDetails>, ซึ่งระบุประเภทของแขก (ผู้ใหญ่หรือเด็ก) หากประเภทแขก ไม่ได้ระบุ แต่จะถือว่าบุคคลนั้นเป็นผู้ใหญ่ ปรึกษา <OccupancyDetails> สำหรับไวยากรณ์และคำอธิบายขององค์ประกอบย่อย
  • เมื่อคุณตั้งค่า <Occupancy> ในทั้ง 2 ตำแหน่ง <RoomBundle> และ <PackageData> ซึ่งเป็นค่าใน <RoomBundle> จะมีความสำคัญเหนือกว่า
<OtherFees> Required float ค่าธรรมเนียมอื่นๆ นอกเหนือจากอัตราฐานและภาษีที่มีผลต่อ ราคาสุดท้ายของห้องพัก องค์ประกอบ <OtherFees> ใช้เวลา แอตทริบิวต์ currency ที่ต้องระบุเพียงรายการเดียวซึ่งกำหนด รหัสสกุลเงิน 3 ตัวอักษรสำหรับค่าธรรมเนียม ตัวอย่างเช่น ให้ใช้ USD สำหรับดอลลาร์สหรัฐ
<PackageID> Optional (recommended) string รหัสที่ไม่ซ้ำกันสำหรับข้อมูลแพ็กเกจ ใช้รหัสนี้เพื่อจับคู่ ข้อมูลแพ็กเกจห้องพักพร้อมข้อมูลที่ส่งใน <PackageData> สำหรับ ข้อมูลเพิ่มเติมที่ ห้อง ข้อมูลเมตาของแพ็กเกจ (คุณ คุณยังใช้รหัสนี้เพื่ออ้างอิงคำจำกัดความของแพ็กเกจห้องพักทั่วไปที่ใช้ได้ด้วย ในข้อความ Transaction รายการเดียวเมื่อกำหนดข้อมูลแพ็กเกจห้องพัก inline.)
<ParkingIncluded> Optional boolean แพ็กเกจห้องพักมีที่จอดรถฟรีหรือไม่ โดย หากไม่ใช่ ที่จอดรถ จะถือเป็นบริการที่มีค่าใช้จ่ายของโรงแรมนี้ ไม่ต้องระบุ ค่าขององค์ประกอบนี้สำหรับโรงแรมที่มีบริการที่จอดรถฟรี

ค่าที่ใช้ได้คือ 0 (หรือ false) และ 1 (หรือ true) ค่าเริ่มต้นคือ false

<RatePlanID> Optional string รหัสแพ็กเกจราคาจะแสดงถึงตัวระบุที่ไม่ซ้ำกันสำหรับ ทั้งห้องพักและแพ็กเกจ ตัวอย่างเช่น ระบุ ค่า <RoomID> ของ 5 และ a ค่า <PackageID> ของ ABC คุณสามารถใช้ค่า ช่อง 5-ABC สำหรับ <RatePlanID> เราขอแนะนำเป็นอย่างยิ่งให้ใช้ RatePlanID เป็นตัวแปรในการสร้างหน้า Landing Page แบบไดนามิก (เดิมคือจุดขาย)

ดูข้อมูลเพิ่มเติมได้ที่ การใช้ตัวแปรและ เงื่อนไข

<Rates> Optional <Rates> ราคาห้องพักที่ลบล้างค่าเริ่มต้นสำหรับแพ็กเกจห้องพักนี้ ช่วงเวลานี้ ใช้ไวยากรณ์เดียวกันกับ <Rates> ใน <Result>
<Refundable> Optional Object แสดงข้อมูลราคาห้องพักที่ขอเงินคืนได้เต็มจำนวนหรือให้แบบฟรี การยกเลิก หากไม่ได้ระบุ ระบบจะไม่แสดงข้อมูลเกี่ยวกับการคืนเงิน นโยบายการคืนเงินที่ระดับ <PackageData> จะลบล้างนโยบายการคืนเงินที่ ระดับ <Result> นโยบายการคืนเงินที่ระดับ <Rates> จะลบล้าง นโยบายการคืนเงินที่ระดับ <PackageData> การกำหนดราคาแบบขอเงินคืนได้อาจ ผู้ใช้ผ่านตัวเลือกอื่นๆ โดยไม่ กำลังแก้ไขสคีมาข้อความ Transaction ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ นโยบายเกี่ยวกับราคาแบบขอเงินคืนได้

ตัวอย่างต่อไปนี้แสดง <Refundable> ที่มีชุดแอตทริบิวต์ทั้งหมด:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

หมายเหตุ: เราขอแนะนำให้ตั้งค่าแอตทริบิวต์ทั้งหมด ฟีด ระบบจะสร้างข้อความเตือนสถานะเมื่อมีแอตทริบิวต์อย่างน้อย 1 รายการ ไม่ได้ตั้งค่าไว้

หากไม่ได้ตั้งค่าแอตทริบิวต์ใดๆ ราคาจะไม่แสดงเป็น สามารถขอคืนเงินได้ แอตทริบิวต์ดังกล่าวมีดังนี้

  • available: (ต้องระบุ) ตั้งค่าเป็น 1 (หรือ true) เพื่อระบุว่าราคาห้องพักเป็น refund; หากตั้งค่าเป็น 0 (หรือ false)
  • refundable_until_days: (ต้องระบุหาก available คือ true) ระบุ จำนวนวันก่อนเช็คอินที่สามารถขอเงินคืนเต็มจำนวนได้ ที่ขอ ค่าของ refundable_until_days ต้องเป็นจำนวนเต็มตั้งแต่ 0 ถึง 330
  • refundable_until_time: (แนะนำอย่างยิ่งหาก available คือ true) ระบุ ตามเวลาท้องถิ่นของโรงแรมที่ คำขอเงินคืนจะถูกนำมาใช้ โดยสามารถใช้ร่วมกับ refundable_until_days เพื่อระบุสำหรับ ตัวอย่างเช่น "ขอเงินคืนได้จนถึง 16:00 น. สองวันก่อนหน้า เช็คอิน" หากไม่ได้ตั้งค่า refundable_until_time ไว้ ค่าเริ่มต้นคือเที่ยงคืน

    ค่าของแอตทริบิวต์นี้จะใช้รูปแบบเวลา

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อตั้งค่าแอตทริบิวต์

  • หาก available หรือ refundable_until_days ไม่ได้ตั้งค่า ระบบจะไม่แสดงราคาห้องพักเป็นขอเงินคืนได้
  • หาก available คือ 0 (หรือ false) ระบบจะไม่สนใจแอตทริบิวต์อื่นๆ อัตราจะไม่แสดงเป็น สามารถขอคืนเงินได้แม้ว่าจะตั้งค่าแอตทริบิวต์อื่นเพียง 1 หรือทั้ง 2 รายการก็ตาม
<RoomID> Required string รหัสที่ไม่ซ้ำกันสำหรับข้อมูลห้องพัก ใช้รหัสนี้เพื่อจับคู่ ข้อมูลแพ็กเกจห้องพักพร้อมข้อมูลที่คุณส่งใน <RoomData> ดูข้อมูลเพิ่มเติมได้ที่ ข้อมูลเมตาของแพ็กเกจห้องพัก (คุณยังสามารถใช้รหัสนี้เพื่ออ้างอิง ข้อกำหนดห้องพักทั่วไปในข้อความ Transaction เดียวเมื่อกำหนด ข้อมูลห้องพักในบรรทัด)
<Tax> Required float ภาษีที่คำนวณสำหรับราคาสุดท้ายของห้องพัก องค์ประกอบ <Tax> ใช้แอตทริบิวต์ที่จำเป็นรายการเดียว currency ซึ่งกำหนดรหัสสกุลเงิน 3 ตัวอักษร เพื่อชำระภาษี เช่น ใช้ USD สำหรับดอลลาร์สหรัฐ

ตัวอย่าง

แพ็กเกจสำหรับอัตราการเข้าพักคนเดียว

ตัวอย่างต่อไปนี้กำหนดการตอบกลับด้วยแพ็กเกจห้องพักแบบเดี่ยว เมื่อผู้ใช้เลือก 1 ในเครื่องมือเลือกอัตราการเข้าพัก Google จะแสดงราคาต่ำสุด ราคาที่มีสิทธิ์โดยไม่คำนึงถึงอัตราการเข้าพัก

หากไม่มีราคาสำหรับอัตราการเข้าพักคนเดียว Google จะแสดง สำหรับห้องพักคู่ที่ต่ำที่สุด โปรดทราบว่าราคาสำหรับอัตราการเข้าพักคนเดียวไม่ใช่ มีการค้นหาแบบเรียลไทม์ว่ามีการแคชห้องพักแบบคู่หรือราคามากกว่าสำหรับ

ตัวอย่างนี้อ้างอิงข้อมูลเมตาของห้องพักและแพ็กเกจที่กำหนดไว้ล่วงหน้าด้วย องค์ประกอบ <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> ในข้อความ Transaction จะระบุจำนวนแขกสูงสุด สำหรับห้องพักหรือแพ็กเกจ <OccupancyDetails> อาจมีข้อมูลเพิ่มเติม เช่น จำนวนและประเภทของแขก (ผู้ใหญ่หรือเด็ก)

เมื่อ <Occupancy> และ <OccupancyDetails> ปรากฏในองค์ประกอบ <Rates> ของ <Result> หรือ <RoomBundle> หมายความว่าอัตราถูกจำกัดโดย รายละเอียดอัตราการเข้าพัก

ไวยากรณ์

เมื่อ <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 คอนเทนเนอร์สําหรับองค์ประกอบ <Child> อย่างน้อย 1 รายการ
<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> ใน<Rates> ของ <Result>

<?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>

แพ็กเกจห้องพักหลายรายการ

ตัวอย่างต่อไปนี้กำหนดอัตรา <RoomBundle> หลายรายการที่ จำกัดอัตราการเข้าพักสำหรับผู้ใหญ่ 2 คนและเด็ก 2 คน ตรงนี้ <OccupancyDetails> ปรากฏในองค์ประกอบ <Rates> ของ <RoomBundle>

<?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>