ठहरने की कुल अवधि (एलओएस) के हिसाब से तय की गई कीमत

Travel Partner Prices API

Travel Partner Prices API, आपको Google को प्रॉपर्टी के किराये भेजने के लिए RESTful इंटरफ़ेस उपलब्ध कराता है.

सेवा: travelpartnerprices.googleapis.com

इस सेवा को कॉल करने के लिए, हमारा सुझाव है कि आप Google की ओर से उपलब्ध कराई गई क्लाइंट लाइब्रेरी का इस्तेमाल करें. अगर आपके ऐप्लिकेशन को इस सेवा को कॉल करने के लिए, अपनी लाइब्रेरी का इस्तेमाल करना है, तो इस सेवा के लिए डिस्कवरी दस्तावेज़ पाने के लिए, अपने टेक्निकल खाता मैनेजर (टैम) से संपर्क करें.

सेवा का एंडपॉइंट

सेवा एंडपॉइंट एक बेस यूआरएल होता है. यह किसी एपीआई सेवा का नेटवर्क पता बताता है. एक सेवा के कई सेवा एंडपॉइंट हो सकते हैं. इस सेवा का एंडपॉइंट यह है. यहां दिए गए सभी यूआरआई, इस सेवा एंडपॉइंट से जुड़े हुए हैं:

https://travelpartnerprices.googleapis.com
तरीके
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

किसी प्रॉपर्टी के लिए, रुकने की अवधि के हिसाब से तय की गई कीमतों को अपलोड करें.

इसके लिए, एचटीटीपी मैसेज बॉडी के तौर पर, JSON कोड में बदला गया LoS की कीमतों का मैसेज (नीचे देखें) ज़रूरी है.

account_id: यह स्ट्रिंग वैल्यू, Hotel Center में खाता सेटिंग वाले पेज पर मौजूद "खाता आईडी" की वैल्यू होती है.

property_id: इस एलिमेंट की वैल्यू, एक स्ट्रिंग होनी चाहिए. यह स्ट्रिंग, आपके होटल सूची फ़ीड में मौजूद लिस्टिंग आईडी से मेल खानी चाहिए.

एपीआई की पुष्टि करना

Travel Partner Prices API, आपके ऐप्लिकेशन की पुष्टि करने के लिए OAuth 2.0 का इस्तेमाल करता है, ताकि आपको एपीआई ऐक्सेस करने की अनुमति मिल सके.

Travel Partner Prices API के लिए अनुमति पाने के लिए, OAUTH 2.0 सेटअप से जुड़े निर्देशों का पालन करें.

Travel Partners Prices API के लिए नया प्रोजेक्ट बनाते समय, आपको अपने नए Google Cloud Console प्रोजेक्ट का ऐक्सेस चालू करना होगा. यह Travel Partner API में दिए गए निर्देशों के जैसा ही है.

अपने प्रोजेक्ट को चालू करने के लिए, Travel Partner API में दिए गए चरणों को देखें. साथ ही, "Travel Partner API" के सभी इंस्टेंस को "Travel Partner Prices API" से बदलें.

Travel Partner Prices API का दायरा यह है: "https://travelpartnerprices.googleapis.com"

Travel Partner Prices API के लिए अपलोड पाथ यह है: "/travel/lodging/uploads/accounts/<account_id>/property_data"

अनुरोध

सिंटैक्स

LoS Prices मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

{
  "requestTime": YYYY-MM-DDTHH:mm:ss.SSSZ,
  "propertyPrices": {
    "arrivalDatePrices": [{
      "startDate": {
        "year": int
        "month": int
        "day": int
      }
      "endDate": {
        "year": int
        "month": int
        "day": int
      }
      "productPrices": [{
        "roomTypeId": "string"
        "ratePlanId": "string"
        "occupancyPrices": [{
          "adults": int
          "prices": [{
            "rateRuleId": "string"
            "currencyCode": "string"
            "rates": [night_1,night_2,...]
            "taxes": [night_1,night_2,...]
            "fees": [night_1,night_2,...]
          }]
        }]
      }]
    }]
  }
}

तत्व और एट्रिब्यूट

'ठहरने की अवधि के हिसाब से किराये' वाले मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:

एलिमेंट आवृत्तियां टाइप ब्यौरा
requestTime 1 string

यह वह समय है जब LoS Price मैसेज भेजा गया था. इसे RFC 3339 फ़ॉर्मैट वाली स्ट्रिंग के तौर पर दिखाया जाता है.

पिछले 24 घंटों में requestTime के साथ भेजे गए सभी मैसेज प्रोसेस किए जाते हैं. वहीं, जिन मैसेज को requestTime के साथ नहीं भेजा जाता उन्हें खारिज कर दिया जाता है.

मैसेज को requestTime के क्रम में प्रोसेस किया जाता है. भले ही, वे किसी भी क्रम में मिले हों. उदाहरण के लिए, अगर किसी यात्रा के लिए requestTime की वैल्यू 2019-05-03T14:09:00Z वाला किराया अपडेट, उसी यात्रा के लिए requestTime की वैल्यू 2019-05-03T14:10:00Z वाले मैसेज के बाद मिलता है, तो requestTime की वैल्यू 2019-05-03T14:09:00Z वाले अपडेट को खारिज कर दिया जाता है. ऐसा इसलिए किया जाता है, ताकि बाद में मिले मैसेज के टाइमस्टैंप के हिसाब से अपडेट किया जा सके.

आरएफ़सी 3339 के लिए, तारीख और समय की पूरी जानकारी YYYY-MM-DDThh:mm:ss.SSZ के तौर पर देना ज़रूरी है. टाइमज़ोन की जानकारी देना ज़रूरी है. इसे यूटीसी से पॉज़िटिव या नेगेटिव hh:mm ऑफ़सेट के तौर पर या यूटीसी के लिए Z शॉर्टहैंड के तौर पर बताया जाता है.

सेकंड के बाद के हिस्से की जानकारी देना ज़रूरी नहीं है. इसे नैनोसेकंड तक की सटीक जानकारी के साथ दिखाया जा सकता है. उदाहरण के लिए, 2017-01-15T01:30:15.01-08:00 15 जनवरी, 2017 को सुबह 1:30 बजे के बाद 15.01 सेकंड को दिखाता है.

propertyPrices 1 Object किसी प्रॉपर्टी के किराये की जानकारी. इस propertyPrices में मौजूद सभी कीमतें, एक ही प्रॉपर्टी पर लागू होती हैं.

इस एलिमेंट को दोहराया नहीं गया है. एक से ज़्यादा प्रॉपर्टी के लिए कीमतें भेजने के लिए, आपको कई एचटीटीपी अनुरोध करने होंगे. हर प्रॉपर्टी के लिए कम से कम एक अनुरोध करना होगा.

arrivalDayPrices[] 1..n Object पहुंचने की तारीख के हिसाब से किराये. इस arrivalDayPrices में दी गई सभी कीमतें, किसी खास प्रॉपर्टी पर लागू होती हैं. हालांकि, ये अलग-अलग तारीखों पर पहुंचने के लिए होती हैं.
startDate 1 Object productPrices, startDate और endDate के बीच की सभी तारीखों पर लागू होता है.

अगर आपको सिर्फ़ पहुंचने की एक तारीख (और तारीख की सीमा नहीं) बतानी है, तो startDate और endDate, दोनों में पहुंचने की तारीख डालें.

startDate.year 1 integer startDate का साल. यह 1 से 9999 के बीच होना चाहिए.
startDate.month 1 integer साल का महीना. यह वैल्यू 1 से 12 के बीच होनी चाहिए.
startDate.day 1 integer महीने का दिन. यह 1 से 31 के बीच की होनी चाहिए. साथ ही, यह साल और महीने के हिसाब से मान्य होनी चाहिए.
endDate 0..1 Object productPrices, startDate और endDate के बीच की सभी तारीखों पर लागू होता है.

अगर सिर्फ़ एक तारीख़ की जानकारी देनी है (तारीख़ की सीमा नहीं), तो endDate को शामिल न करें.

endDate.year 1 integer endDate का साल. यह 1 से 9999 के बीच होना चाहिए.
endDate.month 1 integer साल का महीना. यह वैल्यू 1 से 12 के बीच होनी चाहिए.
endDate.day 1 integer महीने का दिन. यह 1 से 31 के बीच की होनी चाहिए. साथ ही, यह साल और महीने के हिसाब से मान्य होनी चाहिए.
productPrices[] 1..n Object किसी प्रॉडक्ट की कीमतें. इस productPrices में दी गई सभी कीमतें, किसी खास प्रॉपर्टी और पहुंचने की तारीख के कॉम्बिनेशन पर लागू होती हैं. हालांकि, ये अलग-अलग प्रॉडक्ट के लिए होती हैं.
roomTypeId 0..1 string यह उस कमरे का यूनीक आईडी है जिसके लिए यह किराया दिखाया जा रहा है. इस आईडी का इस्तेमाल करके, रूम बंडल के डेटा को roomdata में भेजे गए डेटा से मैच करें. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.
ratePlanId 0..1 string यह पैकेज के डेटा का यूनीक आईडी होता है. यह किराया इसी डेटा से जुड़ा होता है. इस आईडी का इस्तेमाल करके, रूम बंडल के डेटा को पैकेजडेटा में भेजे गए डेटा से मैच करें. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.
occupancyPrices[] 1..n Object कमरे में रहने वाले लोगों के हिसाब से किराया. इस occupancyPrices में दी गई सभी कीमतें, किसी खास प्रॉपर्टी, पहुंचने की तारीख, और प्रॉडक्ट कॉम्बिनेशन पर लागू होती हैं. हालांकि, ये अलग-अलग लोगों के हिसाब से तय की जाती हैं.
adults 1 integer हर कमरे में वयस्कों और बच्चों के साथ-साथ, मेहमानों की ज़्यादा से ज़्यादा संख्या. यह वैल्यू, occupancyPrices फ़ील्ड में मौजूद सभी किराये के लिए सेट की जाती है. यह 1 से 99 के बीच की पॉज़िटिव पूर्णांक होनी चाहिए.

ध्यान दें: चार से ज़्यादा वयस्कों के लिए, सहायता टीम से संपर्क करें.

prices[] 1..n Object ठहरने की कुल अवधि के हिसाब से किराये. prices में मौजूद सभी कीमतें, किसी प्रॉपर्टी, पहुंचने की तारीख, प्रॉडक्ट, और ऑक्यूपेंसी के कॉम्बिनेशन पर लागू होती हैं.
rateRuleId 0..1 string शर्त के हिसाब से तय की गई दरों के लिए, यह आईडी आपकी Rate Rule Definition फ़ाइल में मौजूद किसी दर को परिभाषा से मैच करता है. इस फ़ील्ड में ज़्यादा से ज़्यादा 40 वर्णों का इस्तेमाल किया जा सकता है.
currencyCode 1 string तीन अक्षरों वाला मुद्रा कोड, जिसमें rates और taxes दिए गए हैं. उदाहरण के लिए, "USD" अमेरिकी डॉलर के लिए.
rates[] 30 float यह ठहरने की अवधि के हिसाब से तय किए गए किराये का मूल कॉम्पोनेंट है.

अगर taxes की वैल्यू दी गई है, तो इस दर में टैक्स शामिल नहीं होता. कुल किराया, तय किए गए किराये और टैक्स को मिलाकर बनता है.

इंडेक्स n पर मौजूद वैल्यू, n+1 दिनों के लिए ठहरने वाले मेहमानों के किराये के बारे में बताती है.

आपको एक बार में, 30 किराये का पूरा LoS सेट भेजना होगा. अगर आपने 30 से कम दिनों के लिए कीमत भेजी है, तो उपलब्ध कराई गई सभी कीमतों को सामान्य कीमत के तौर पर प्रोसेस किया जाएगा. साथ ही, बाकी दिनों के लिए कीमतें उपलब्ध नहीं होंगी. अगर आपने 30 से ज़्यादा कीमतें भेजी हैं,तो 30वीं कीमत के बाद भेजी गई सभी कीमतें हटा दी जाएंगी .

ठहरने की वे अवधियां जिनके लिए बुकिंग नहीं की जा सकती उन्हें 0 के साथ दिखाया जाना चाहिए.

taxes[] 30 float ठहरने की कुल अवधि के हिसाब से तय की गई कीमतों का टैक्स कॉम्पोनेंट.

इंडेक्स n पर मौजूद वैल्यू, n+1 दिनों के लिए ठहरने वाले मेहमानों के किराये के बारे में बताती है.

fees[] 30 float ठहरने की कुल अवधि के हिसाब से तय की गई कीमतों का शुल्क कॉम्पोनेंट.

इंडेक्स n पर मौजूद वैल्यू, n+1 दिनों के लिए ठहरने वाले मेहमानों के किराये के बारे में बताती है.

उदाहरण

एलओएस के आधार पर दरें और टैक्स

यहां दिए गए उदाहरण में, चेक-इन की एक तारीख के लिए, कम से कम दो रातें ठहरने की अवधि सेट करने और चेक-इन की दूसरी तारीख के लिए, उपलब्धता नहीं होने की जानकारी सेट करने का तरीका दिखाया गया है. अगर आपने 1 सितंबर, 2023 से startDate सेट किया है और endDate नहीं दिया है, तो इसका मतलब है कि आपने सिर्फ़ एक तारीख के लिए किराया तय किया है. ऐसे में, endDate को शामिल करना ज़रूरी नहीं है.

occupancyPrices ऐरे को 2 पर सेट करने से, अलग-अलग इस्तेमाल के लिए अलग-अलग किराये सेट किए जा सकते हैं. इसलिए, 09/04/23 को कोई सीट खाली न होने की वजह से, rates के लिए उपलब्ध सीटों की संख्या सीमित है.

दिखाया गया taxes कलेक्शन, किराये का 10% है.

यहां दिखाए गए fees कलेक्शन में, हर बार ठहरने पर 50 डॉलर का सफ़ाई शुल्क लिया जाता है.

अगर चेक-इन करने की पूरी तारीख &dash;3/9/2023 को कमरा उपलब्ध नहीं है, तो आपको तारीख साफ़ तौर पर भेजनी होगी. साथ ही, rates, taxes, और productPrices को हटाना होगा, ताकि यह पता चल सके कि अनुरोध की गई तारीख को कमरा उपलब्ध नहीं है.

{
  "requestTime": "2023-08-10T12:15:222",
  "propertyPrices": {
    "arrivalDatePrices": [
      {
        "startDate": {
          "year": 2023,
          "month": 9,
          "day": 1
        },
        "productPrices": [
          {
            "occupancyPrices": [
              {
                "adults": 2,
                "prices": [
                  {
                    "currencyCode": "USD",
                    "rates": [
                      0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "taxes": [
                      0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "fees": [
                      0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "startDate": {
          "year": 2023,
          "month": 9,
          "day": 3
        },
        "productPrices": [
          {
            "occupancyPrices": [
              {
                "adults": 2,
                "prices": [
                  {
                    "currencyCode": "USD",
                    "rates": [
                      0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "taxes": [
                      0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "fees": [
                      0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

जवाब का मुख्य भाग

अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.

JSON फ़ॉर्मैट में दिखाया गया है
        {
          "name": "string"
        }
        
फ़ील्ड
name बदलाव की गई PropertyPrices का संसाधन नाम. क्या फ़ॉर्म में:
accounts/{account}/properties/{property}.