अनुरोध
सिंटैक्स
Transaction (Property Data) मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<OccupancySettings>
<MinOccupancy>min_number_of_occupants</MinOccupancy>
<MinAge>min_age_of_occupants</MinAge>
</OccupancySettings>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
</Caption>
<URL>photo_location</URL>
</PhotoURL>
<RoomFeatures>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_length"/>
</Bed>
<!-- Include with any additional beds. -->
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>[shared|private]</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>[smoking|non_smoking]</Smoking>
<BathAndToilet relation="[together|separate]">
<Bath bathtub="[false|true]" shower="[false|true]"/>
<Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<!-- (Optional) Defines the type of views from the room. -->
<!-- Example: <OceanView/> -->
</Views>
</RoomFeatures>
</RoomData>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<!-- Add Loyalty point information -->
<MilesIncluded>
<LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
<!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
<NumberOfMiles>integer</NumberOfMiles>
</MilesIncluded>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
तत्व और एट्रिब्यूट
लेन-देन (प्रॉपर्टी का डेटा) मैसेज में ये एलिमेंट और एट्रिब्यूट होते हैं:
| Element / @Attribute | आवृत्तियां | टाइप | ब्यौरा |
|---|---|---|---|
| Transaction | 1 | Complex element | एआरआई लागू करने पर, यह किसी मैसेज का रूट एलिमेंट होता है. यह एक प्रॉपर्टी के लिए, कमरे के टाइप और पैकेज तय करता है. |
| Transaction / @timestamp | 1 | DateTime | इस मैसेज को बनाने की तारीख और समय. |
| Transaction / @id | 1 | string | इस अनुरोध मैसेज के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, जवाब वाले मैसेज में दिखती है. a-z, A-Z, 0-9, _ (अंडरस्कोर), और - (डैश) का इस्तेमाल किया जा सकता है. |
| Transaction / @partner | 1 | string | यह मैसेज किस पार्टनर खाते के लिए है. यह स्ट्रिंग वैल्यू, Hotel Center के
खाते की सेटिंग वाले पेज पर मौजूद "पार्टनर की" वैल्यू होती है.
ध्यान दें: अगर आपके पास ऐसा बैकएंड है जो कई खातों के लिए फ़ीड उपलब्ध कराता है, तो इस वैल्यू को उसी खाते के लिए |
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | एक कंटेनर, जिसमें किसी एक प्रॉपर्टी के लिए कमरों के टाइप और पैकेज तय किए जाते हैं.
हमारा सुझाव है कि आप |
| Transaction / PropertyDataSet / @action | 0..1 | enum | कमरे के किराये की परिभाषाओं पर लागू किए जाने वाले अपडेट का टाइप. मान्य मान हैं:
इस एट्रिब्यूट की वैल्यू देना ज़रूरी नहीं है. अगर इसकी वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से इसकी वैल्यू |
| Transaction / PropertyDataSet / Property | 1 | string | प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, होटल सूची फ़ीड में <listing> एलिमेंट में
<id> का इस्तेमाल करके तय किए गए होटल आईडी से मेल खानी चाहिए. होटल आईडी, Hotel Center में भी दिखता है. |
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | किसी रूम के बारे में बताता है. ध्यान दें: |
| Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | कमरे के टाइप के लिए यूनीक आइडेंटिफ़ायर. इस वैल्यू को <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ>, और <OTA_HotelInvCountNotifRQ> मैसेज में मौजूद <StatusApplicationControl> एलिमेंट में InvTypeCode एट्रिब्यूट का इस्तेमाल करके रेफ़रंस किया जाता है. |
| Transaction / PropertyDataSet / RoomData / Name | 1 | Name | एक या इससे ज़्यादा भाषाओं में, चैट रूम की कैटगरी के नाम के लिए कंटेनर. |
| Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | यह टैग, किसी एक भाषा में रूम की कैटगरी का नाम बताता है. |
| Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | language एट्रिब्यूट में बताई गई भाषा में, कमरे की कैटगरी का नाम. |
| Transaction / PropertyDataSet / RoomData / Description | 1 | Name | एक या उससे ज़्यादा भाषाओं में कमरे की कैटगरी के ब्यौरे के लिए कंटेनर. |
| Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | किसी एक भाषा में कमरे की कैटगरी का ब्यौरा देता है. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | language एट्रिब्यूट में बताई गई भाषा में, कमरे की कैटगरी के बारे में जानकारी. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | दो अक्षरों वाला भाषा कोड. |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | <AllowablePackageID> एलिमेंट के लिए एक कंटेनर.
अगर अगर
|
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | यह उस रेट प्लान का PackageID तय करता है जिसे इस रूम टाइप के साथ जोड़ा जा सकता है. किराया प्लान, पैकेज, किराये, और उपलब्धता के आधार पर तय किया जाता है. PackageID
OTA_HotelRateAmountNotifRQ और OTA_HotelAvailNotifRQ मैसेज में मौजूद RatePlanCode से मेल खाता है.
|
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | किसी कमरे में ज़्यादा से ज़्यादा कितने वयस्क और बच्चे रह सकते हैं. यह वैल्यू, उन NumberOfGuests वैल्यू से ज़्यादा या उनके बराबर होनी चाहिए जिन्हें आपने किराये के साथ भेजा है.
ध्यान दें: अगर |
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | किसी कमरे में फ़िज़िकली
ठहर सकने वाले वयस्कों की ज़्यादा से ज़्यादा संख्या. यह वैल्यू, दर के साथ भेजी गई किसी भी NumberOfGuests वैल्यू से ज़्यादा या उसके बराबर होनी चाहिए.
|
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | कमरे में ज़्यादा से ज़्यादा कितने बच्चे रह सकते हैं.
|
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | ऐसी सेटिंग जिनसे किसी कमरे में लोगों के रहने की ज़रूरी शर्तों पर पाबंदी लगाई जा सकती है या उनमें बदलाव किया जा सकता है.
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> सभी चाइल्ड एलिमेंट शामिल करना ज़रूरी नहीं है. |
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | कमरे या अलग-अलग सुविधाओं वाले एक तरह के कमरे की फ़ोटो के लिए यूआरएल और कैप्शन (ज़रूरी नहीं). किसी कमरे या रूम बंडल के लिए, एक से ज़्यादा <PhotoURL> की जानकारी दी जा सकती है.
यह एलिमेंट, इन चाइल्ड एलिमेंट को लेता है:
<PhotoURL> <URL>http://www.example.com/image1.jpg</URL> <Caption> <Text text="A bright way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse pour profiter de votre tasse de thé." language="fr"/> </Caption> </PhotoURL> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures | 0..1 | <RoomFeatures> |
इसमें रूम की सुविधाओं के बारे में जानकारी होती है. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | इससे जापान के होटल के कमरे की स्टाइल के बारे में पता चलता है. मान्य मान हैं:
|
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | इसमें कमरे में मौजूद <Bed> की संख्या शामिल होती है. कृपया ध्यान दें कि यहां जैपनीज़ फ़्यूटॉन को नहीं गिना जाना चाहिए.
हर
<Bed> में ये चाइल्ड एलिमेंट होते हैं:
<Beds>
<Bed size="double">
<Width unit="cm" number="140"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed/> <!-- Size unknown -->
</Beds> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite | 0.. | enum | अगर यह कमरा सुइट है, तो यह एलिमेंट दें. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | अगर यह कमरा कैप्सूल रूम है, तो यह एलिमेंट दें. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | यह कमरा, मालिक या अन्य मेहमानों जैसे अन्य लोगों के साथ शेयर किया गया है या नहीं. मान्य वैल्यू shared और private हैं. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | इस एलिमेंट की वैल्यू तब दें, जब कमरा बाहर की ओर हो और उसमें दीवारें, प्लंबिंग, और तापमान कंट्रोल करने की सुविधा न हो. उदाहरण के लिए, होटल के कमरे आउटडोर लॉजिंग नहीं हैं. वहीं, कैंपसाइट आउटडोर लॉजिंग हैं, जहां मेहमान टेंट में ठहरते हैं. इसके अलावा, आरवी पार्क भी आउटडोर लॉजिंग हैं, जहां मेहमान अपने आरवी लाते हैं. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | अगर इस कमरे में व्हीलचेयर से जाया जा सकता है, तो यह एलिमेंट उपलब्ध कराएं. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | यह कमरा, धूम्रपान करने की अनुमति वाला कमरा है या धूम्रपान करने की अनुमति नहीं वाला कमरा है. मान्य वैल्यू non_smoking और smoking हैं. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | इस कुकी में, कमरे में मौजूद बाथटब और टॉयलेट के बारे में जानकारी होती है.
यह एट्रिब्यूट:
इस एलिमेंट में ये चाइल्ड एलिमेंट शामिल किए जा सकते हैं:
उदाहरण: <BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet
electronic_bidet="1"
mobility_accessible="1"/>
</BathAndToilet> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | अगर इस कमरे में खुली जगह में नहाने की सुविधा है, तो यह एलिमेंट शामिल करें. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | अगर इस कमरे में एयर-कंडिशनर है, तो यह एलिमेंट दें. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | अगर इस कमरे में बालकनी या बरामदा है, तो यह एलिमेंट दें. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | मान्य विकल्पों में ये शामिल हैं:
|
| Transaction / PropertyDataSet / PackageData | 0..n | PackageData | यह एक कंटेनर है. इसमें ऐसे एलिमेंट होते हैं जो किराये की सुविधाओं और शर्तों के बारे में बताते हैं. ये शर्तें, कमरे की जानकारी में शामिल नहीं होती हैं. ध्यान दें: |
| Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | इन मैसेज में मौजूद PackageID, OTA_HotelRateAmountNotifRQ और OTA_HotelAvailNotifRQ मैसेज में मौजूद RatePlanCode से मेल खाता है. |
| Transaction / PropertyDataSet / PackageData / Name | 1 | Name | एक या इससे ज़्यादा भाषाओं में पैकेज के नाम के लिए कंटेनर. |
| Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | इससे किसी पैकेज का नाम एक भाषा में पता चलता है. |
| Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | language एट्रिब्यूट में बताई गई भाषा में पैकेज का नाम. |
| Transaction / PropertyDataSet / PackageData / Description | 1 | Description | एक या उससे ज़्यादा भाषाओं में पैकेज के ब्यौरे के लिए कंटेनर. |
| Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | किसी एक भाषा में पैकेज के ब्यौरे के बारे में बताता है. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | language एट्रिब्यूट में बताई गई भाषा में पैकेज का ब्यौरा. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | दो अक्षरों वाला भाषा कोड. |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | <AllowableRoomID> एलिमेंट के लिए एक कंटेनर.
अगर अगर
|
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | इससे उस रूम टाइप का RoomID पता चलता है जिसे इस
किराया प्लान के साथ जोड़ा जा सकता है. कमरे का टाइप, <RoomData>
एलिमेंट में तय किया जाता है.
|
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | रेट प्लान या पैकेज के हिसाब से, पैकेज में लॉयल्टी पॉइंट की जानकारी जोड़ें. <PackageData> एलिमेंट में मौजूद <MilesIncluded> एलिमेंट की जानकारी दें. यह एलिमेंट, किराया प्लान तय करता है.
<MilesIncluded> में यह चाइल्ड एलिमेंट मौजूद है:
|
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | इससे किराये को पूरी तरह से रिफ़ंड किए जाने या रद्द किए जाने के तौर पर लिस्ट किया जा सकता है. अगर यह जानकारी नहीं दी जाती है, तो रिफ़ंड के बारे में कोई जानकारी नहीं दिखती.
ध्यान दें: हमारा सुझाव है कि आप सभी एट्रिब्यूट सेट करें. जब एक या उससे ज़्यादा एट्रिब्यूट सेट नहीं किए जाते हैं, तब फ़ीड की स्थिति के बारे में चेतावनी वाला मैसेज जनरेट होता है. अगर आपने कोई एट्रिब्यूट सेट नहीं किया है, तो किराया, रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा. एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:
|
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (ज़रूरी है) अगर किराये के हिसाब से पूरा रिफ़ंड दिया जा सकता है, तो इसे 1 या true पर सेट करें. अगर पूरा रिफ़ंड नहीं दिया जा सकता, तो इसे 0 या false पर सेट करें. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (अगर available true है, तो यह ज़रूरी है) इससे यह पता चलता है कि चेक-इन से कितने दिन पहले तक, पूरा रिफ़ंड पाने का अनुरोध किया जा सकता है. refundable_until_days की वैल्यू, 0 और 330 के बीच का कोई पूर्णांक होना चाहिए. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (अगर available true है, तो यह विकल्प इस्तेमाल करने का सुझाव दिया जाता है) इसमें होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी होती है. साथ ही, इसमें पूरे पैसे रिफ़ंड होने की बात शामिल होती है. इसे refundable_until_days के साथ जोड़ा जा सकता है. उदाहरण के लिए, यह बताने के लिए कि "चेक-इन से दो दिन पहले शाम 4:00 बजे तक रिफ़ंड की सुविधा उपलब्ध है". अगर refundable_until_time सेट नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात पर सेट हो जाती है. |
| Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | इससे पता चलता है कि इस तरह के कमरे के किराये में नाश्ता शामिल है या नहीं.
मान्य वैल्यू 0 (या false) और 1
(या true) हैं.
हमारा सुझाव है कि आप |
| Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | होटल के स्थानीय समय के हिसाब से, चेक-इन करने का सबसे पहला समय. समय 24:00 से कम होना चाहिए. |
| Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | होटल के स्थानीय समय के हिसाब से, चेक आउट करने का सबसे नया समय. |
| Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | इससे पता चलता है कि क्या कमरे के किराये में इंटरनेट की मुफ़्त सुविधा शामिल है. वहीं, अन्य कमरों में यह सुविधा शामिल नहीं है. इस एलिमेंट को ऐसे होटल के लिए सेट न करें जो सभी कमरों में इंटरनेट की सुविधा मुफ़्त में देता है. यह एलिमेंट, कमरे में मौजूद तार वाले इंटरनेट या मेहमानों के कमरों में उपलब्ध न होने वाले वायरलेस इंटरनेट पर लागू नहीं होता. मान्य वैल्यू 0 (या false) और 1 (या true) हैं.
|
| Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | इस पैकेज में शामिल खाने-पीने की चीज़ों के बारे में जानकारी होती है.
ज़रूरी नहीं है कि इन एट्रिब्यूट का इस्तेमाल किया जाए. इनका इस्तेमाल सिर्फ़ तब किया जाता है, जब भोजन के फ़िल्टर ( |
| Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | क्या कमरे के साथ पार्किंग की सुविधा बिना किसी शुल्क के मिलती है. ऐसा तब होता है, जब होटल में पार्किंग की सुविधा के लिए शुल्क लिया जाता है. अगर होटल में पार्किंग की सुविधा मुफ़्त है, तो इस एलिमेंट के लिए कोई वैल्यू न डालें.
मान्य वैल्यू 0 (या false) और 1 (या true) हैं. डिफ़ॉल्ट वैल्यू false है.
|
| Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (यह <RoomData> में मौजूद <PhotoURL> जैसा ही है, लेकिन यह पैकेज (जैसे, खाने की फ़ोटो) के लिए है.)
|
उदाहरण
कमरे और पैकेज का डेटा
यहां लेन-देन (प्रॉपर्टी का डेटा) मैसेज में, प्रॉपर्टी के कमरे और पैकेज के डेटा को तय करने का एक बुनियादी उदाहरण दिया गया है. overlay
एट्रिब्यूट का इस्तेमाल यह पक्का करने के लिए किया जाता है कि अगर कोई डेटा पहले से मौजूद है, तो
मौजूदा डेटा मिटा दिया जाए और उसकी जगह इस मैसेज में मौजूद डेटा को इस्तेमाल किया जाए:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<MilesIncluded>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
कमरे का टाइप जोड़ना
यहां मौजूदा <Transaction> डेटा में कमरे का टाइप और पैकेज जोड़ने का उदाहरण दिया गया है:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="delta">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_3</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_3</PackageID>
<Name>
<Text text="Non-Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="false"/>
</PackageData>
</PropertyDataSet>
</Transaction>
कमरे के टाइप हटाना
यहां मौजूदा कमरों के टाइप और पैकेज हटाने का तरीका बताया गया है. इस उदाहरण में, अगर "कमरे और पैकेज का डेटा" और "कमरे का टाइप जोड़ें" में मौजूद मैसेज, Google को पहले ही भेज दिए गए थे, तो Google को दिखाया गया मैसेज मिलने के बाद, King और Double रूम टाइप मौजूद नहीं रहेंगे. ध्यान दें कि पैकेज का डेटा हटाने से, पूरे रेट प्लान पर असर पड़ता है. यह असर, लेन-देन (प्रॉपर्टी का डेटा), OTA_HotelRateAmountNotifRQ, और OTA_HotelAvailNotifRQ मैसेज (एक ही PackageID वैल्यू को रेफ़रंस करके) में दिखता है. इसलिए, अन्य मैसेज टाइप का इस्तेमाल करके किए गए अपडेट में यह दिखाना पड़ सकता है कि PackageID_2 और PackageID_3 अब यहां तय नहीं किए गए हैं.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a queen bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
किराये के प्लान पर पाबंदी लगाना
यहां दिए गए उदाहरण में, <AllowablePackageIDs> एलिमेंट का इस्तेमाल करके, किसी कमरे के टाइप के लिए अनुमति वाले किराये के प्लान को सीमित करने का तरीका बताया गया है. इस उदाहरण में, Queen रूम टाइप (RoomID_2) को सिर्फ़ PackageID_1 के तौर पर पहचाने गए पैकेज और किराये के प्लान के साथ जोड़ा जा सकता है.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<AllowablePackageIDs>
<AllowablePackageID>PackageID_1</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
कमरे की क्षमता सीमित करना
कमरे की क्षमता पर पाबंदियां लगाने के लिए, <Capacity>, <AdultCapacity>, <ChildCapacity> एलिमेंट इस्तेमाल करने का तरीका यहां बताया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<Capacity>4</Capacity>
<AdultCapacity>4</AdultCapacity>
<ChildCapacity>3</ChildCapacity>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
</PropertyDataSet>
</Transaction>
डबल रूम टाइप (RoomID_1) में कुल चार मेहमान ठहर सकते हैं. इसके अलावा, इसमें चार वयस्क और तीन बच्चे हो सकते हैं. इस कमरे को बुक करने के लिए, क्षमता से जुड़ी तीनों ज़रूरी शर्तें पूरी होनी चाहिए. इस कॉन्फ़िगरेशन में, दो बेड वाले एक सामान्य कमरे को दिखाया गया है. हर बेड पर दो लोग सो सकते हैं. बच्चों की संख्या, कुल क्षमता से एक कम है, क्योंकि कमरे में कम से कम एक वयस्क का होना ज़रूरी है.
<RoomFeatures> और खाने के साथ ज़्यादा उदाहरण
JapaneseHotelRoomStyle की कोई डिफ़ॉल्ट वैल्यू नहीं होती.
किसी वैल्यू को शामिल न करने पर, एक्सएमएल में कोई गड़बड़ी नहीं होती. हालांकि, जब कोई व्यक्ति कमरे के स्टाइल या बेड के हिसाब से फ़िल्टर करता है, तब आपकी लिस्टिंग खोज के नतीजों में नहीं दिखती.
दो सिंगल बेड
यहां दिए गए उदाहरण में, <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>
दो डबल बेड
यहां western स्टाइल वाले ऐसे कमरे का उदाहरण दिया गया है जिसमें दो 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>
जैपनीज़ वेस्टर्न रूम, जिसमें बेड है
यहां king साइज़ के बेड वाले japanese_western स्टाइल के कमरे का उदाहरण दिया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
<Beds>
<Bed size="king"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
अगर पार्टनर के पास japanese_western
rooms में बेड की संख्या की जानकारी नहीं है, तो यहां दिया गया उदाहरण देखें:
<?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>
खाना
यहां दिए गए उदाहरण में, खाने-पीने की चीज़ों, फ़ोटो, और चेक-इन और चेक-आउट के समय के लिए, कमरे और पैकेज का मेटाडेटा तय किया गया है:
<?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>
जवाब
सिंटैक्स
TransactionResponse (Property Data) मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</TransactionResponse>
एलिमेंट और एट्रिब्यूट
TransactionResponse (Property Data) मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:
| Element / @Attribute | आवृत्तियां | टाइप | ब्यौरा |
|---|---|---|---|
| TransactionResponse | 1 | Complex element | यह रूट एलिमेंट है. इससे पता चलता है कि लेन-देन के अनुरोध का मैसेज मिला या नहीं. अगर मिला, तो उसमें कोई समस्या है या नहीं. |
| TransactionResponse / @timestamp | 1 | DateTime | इस मैसेज को बनाने की तारीख और समय. |
| TransactionResponse / @id | 1 | string | लेन-देन से जुड़े मैसेज का यूनीक आइडेंटिफ़ायर. |
| TransactionResponse / @partner | 1 | string | यह मैसेज किस पार्टनर खाते के लिए है. |
| TransactionResponse / Success | 0..1 | Success | इससे पता चलता है कि लेन-देन के मैसेज को बिना किसी चेतावनी, गड़बड़ी या समस्या के प्रोसेस किया गया है.
हर मैसेज में |
| TransactionResponse / Issues | 0..1 | Issues | यह एक कंटेनर है. इसमें लेन-देन के मैसेज को प्रोसेस करते समय हुई एक या उससे ज़्यादा समस्याओं की जानकारी होती है.
हर मैसेज में |
| TransactionResponse / Issues / Issue | 1..n | Issue | लेन-देन के मैसेज को प्रोसेस करते समय मिली किसी चेतावनी, गड़बड़ी या समस्या की जानकारी. इन समस्याओं के बारे में जानकारी, फ़ीड की स्थिति से जुड़ी गड़बड़ी के मैसेज में देखी जा सकती है. |
| TransactionResponse / Issues / Issue / @code | 1 | integer | समस्या के लिए आइडेंटिफ़ायर. |
| TransactionResponse / Issues / Issue / @status | 1 | enum | समस्या किस तरह की है. मान्य वैल्यू |
उदाहरण
पुष्टि हो गई
यहां लेन-देन के मैसेज को प्रोसेस करने के बाद मिला जवाब दिया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
समस्याएं
यहां लेन-देन वाले मैसेज का जवाब दिया गया है. हालांकि, गड़बड़ियों की वजह से इसे प्रोसेस नहीं किया जा सका.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</TransactionResponse>