أسعار مدة الإقامة (خسارة)

واجهة برمجة تطبيقات أسعار شركاء السفر

توفّر لك واجهة برمجة التطبيقات Travel PartnerPrices واجهة مريحة لإرسال الرسائل أسعار العقارات إلى Google.

الخدمة: travelpartnerprices.googleapis.com

للاتصال بهذه الخدمة، ننصحك باستخدام البرنامج الذي توفّره Google المكتبات. إذا كان يحتاج تطبيق إلى استخدام مكتباتك الخاصة للاتصال بهذه الخدمة، يُرجى الاتصال مدير الحساب الفني (TAM) للحصول على مستند الاكتشاف الخاصة بهذه الخدمة.

نقطة نهاية الخدمة

خدمة نقطة النهاية هي أساسي يحدد عنوان الشبكة لإحدى خدمات واجهة برمجة التطبيقات. خدمة واحدة قد تحتوي على عدة نقاط نهاية للخدمة. تتضمّن هذه الخدمة الخدمة التالية: نقطة النهاية وجميع معرفات الموارد المنتظمة (URI) المدرجة ذات صلة بنقطة نهاية الخدمة هذه:

https://travelpartnerprices.googleapis.com
الطُرق
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

يُرجى تحميل أسعار مدة الإقامة المقدَّمة لفندق محدّد.

يتطلب رسالة أسعار مرمّزة بتنسيق JSON (انظر أدناه) كبروتوكول HTTP نص الرسالة.

account_id: قيمة السلسلة هذه هي "رقم تعريف الحساب" القيمة المذكورة في صفحة "إعدادات الحساب" في "فندق" الوسط.

property_id: يجب أن تكون قيمة هذا العنصر عبارة عن سلسلة تتطابق مع رقم تعريف البيانات في خلاصة قائمة الفنادق.

مصادقة واجهة برمجة التطبيقات

تستخدم واجهة برمجة تطبيقات أسعار شركاء السفر بروتوكول OAuth 2.0 لتنفيذ ما يلي: بمصادقة تطبيقك بحيث يمكنك الوصول إلى واجهات برمجة التطبيقات.

للحصول على إرشادات الإعداد خطوة بخطوة، راجع إعداد OAuth الإصدار 2.0. هذه هي الإعدادات التعليمات المتعلّقة بواجهة برمجة التطبيقات مع "شريك السفر" لاحظ أن واجهة برمجة التطبيقات مع "شريك السفر" اختلاف واجهة برمجة تطبيقات أسعار شركاء السفر. لذا، في إرشادات الإعداد هذه، يجب استبدال "واجهة برمجة التطبيقات لأسعار شركاء السفر" بتسمية أي مكان "واجهة برمجة تطبيقات شريك السفر" المشار إليها.

الطلبات

البنية

تستخدم الرسالة 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 السلسلة.

أي رسالة مُرسَلة من خلال "requestTime" خلال آخر 24 يومًا تتم معالجة الساعات وتلك التي لم يتم تجاهلها.

تتم معالجة الرسائل بترتيب requestTime، بغض النظر عن ترتيب استلامها. على سبيل المثال، تعديل في السعر من خلال إضافة requestTime إلى 2019-05-03T14:09:00Z التي يتم استلامها بعد لبرنامج الرحلة نفسه باستخدام requestTime من يتم تجاهل 2019-05-03T14:10:00Z لصالح رسالة ذات طابع زمني لاحقًا.

يتطلب RFC 3339 أوقاتًا محددة بالكامل YYYY-MM-DDThh:mm:ss.SSZ المنطقة الزمنية مطلوبة، محددة كمعادلة موجبة أو سالبة للسمة hh:mm عن التوقيت العالمي المنسَّق (UTC) Z كاختصار للتوقيت العالمي المتفق عليه (UTC).

إنّ الثواني الكسرية اختيارية، ويمكن التعبير عنها بما يصل إلى بدقة نانو ثانية. على سبيل المثال، ترميز 2017-01-15T01:30:15.01-08:00 بعد 15.01 ثانية 15 كانون الثاني (يناير) 2017 الساعة 01:30 بتوقيت المحيط الهادئ.

propertyPrices 1 Object تمثّل هذه السمة أسعار أحد الفنادق. كل الأسعار في نطاق propertyPrices تنطبق على نفس الموقع.

هذا العنصر غير متكرّر. لإرسال أسعار مواقع متعددة، تحتاج إلى إجراء طلبات HTTP متعددة (طلب واحد على الأقل لكل موقع).

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 يتم تطبيق أسعار المنتجات على جميع تواريخ الوصول بين 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 المعرّف الفريد للغرفة التي يشير إليها هذا السعر. استخدام رقم التعريف هذا لمطابقة بيانات حزمة الغرف مع ما أرسلته في بيانات الغرف. لمزيد من المعلومات، راجع البيانات الوصفية لحِزمة الغرف
ratePlanId 0..1 string المعرّف الفريد لبيانات الحزمة التي يشير إليها هذا السعر. استخدام رقم التعريف هذا لمطابقة بيانات حِزمة الغرفة مع ما أرسلته في بيانات الحزمة. لمزيد من المعلومات، راجع البيانات الوصفية لحِزمة الغرف
occupancyPrices[] 1..n Object تمثّل هذه السمة أسعار الإقامة. كل الأسعار في نطاق occupancyPrices أن تنطبق على خاصية معينة أو تاريخ وصول أو مجموعة منتجات، لإشغالات مختلفة.
adults 1 integer الحد الأقصى لعدد الضيوف الذين يمكن حجزهم في كل غرفة، بما في ذلك البالغين والأطفال. ويتم تعيين هذه القيمة لجميع الأسعار في حقل occupancyPrices المقابل ويجب أن يكون موجبًا عدد صحيح بين 1 و99.

ملاحظة: يُرجى التواصل مع فريق الدعم لإرسال معلومات إشغال إلى أكثر من أربعة أشخاص بالغين.

prices[] 1..n Object أسعار مدة الإقامة تنطبق جميع الأسعار في نطاق prices على فندق محدد وتاريخ الوصول والمنتج والإشغال.
rateRuleId 0..1 string بالنسبة إلى الأسعار المشروطة، يطابق رقم التعريف هذا معدّلاً مع تعريف في ملف "تعريف قاعدة السعر". عدد الأحرف المسموح به لهذا الحقل هو 40 حرفًا.
currencyCode 1 string رمز العملة المكوَّن من ثلاثة أحرف والذي يمثّل rates وtaxes الواردة فيها. على سبيل المثال، "USD" للدولار الأمريكي.
rates[] 30 float تمثّل هذه السمة مكوّن السعر الأساسي لأسعار مدة الإقامة.

إذا تم تقديم قيمة taxes مقابلة، سيكون هذا السعر هو غير شامل للضرائب. ويكون السعر الإجمالي عبارة عن مجموع الأسعار السعر والضريبة.

تتجاوب القيمة في الفهرس n مع n+1 ومدة الإقامة.

يجب إرسال مجموعة LoS الكاملة البالغ عددها 30 سعرًا في آن واحد. إذا أرسلت أقل من 30، فستتم معالجة جميع أسعار LoS المقدمة والمعدلات المتبقية غير متاحة بما يصل إلى 30 دولار أمريكي. إذا كنت إذا كنت ترسل أكثر من 30، فسيتم تطبيق أي أسعار ترسلها بخلاف السعر الثلاثين انخفاض .

يجب تمثيل أطوال الإقامة غير المتاحة 0

taxes[] 30 float تمثّل هذه السمة العنصر الضريبي لأسعار مدة الإقامة.

تتجاوب القيمة في الفهرس n مع n+1 ومدة الإقامة.

fees[] 30 float تمثّل هذه السمة الرسوم الخاصة بمدة الإقامة.

تتجاوب القيمة في الفهرس n مع n+1 ومدة الإقامة.

مثال

الأسعار الضرائب بناءً على LOS

يوضّح المثال التالي ضبط الحد الأدنى لمدة الإقامة وهو 2. لتاريخ تسجيل وصول معين وعدم توفر تاريخ تسجيل وصول آخر. في حال ضبط startDate من 1/9/2023 بدون endDate، يعني ذلك: فإنك تحدد الأسعار لتاريخ واحد فقط ويمكنك حذف endDate

يتيح لك المصفوفة occupancyPrices التي تم ضبطها على 2 إمكانية تحديد أسعار مختلفة. لإشغالات مختلفة. لذلك، ما مِن أماكن شاغرة في الحدود المسموح بها في 04/09/2023 المتاحة في rates.

يتم احتساب المصفوفة taxes المعروضة بنسبة% 10 من المعدّل.

وتفرض المصفوفة fees المعروضة رسوم تنظيف بقيمة 50 دولار أمريكي لكل إقامة.

إذا لم يكن تاريخ تسجيل الوصول كاملاً ‐9/3/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}