Travel Partner Prices API
Travel Partner Prices API یک رابط RESTful برای ارسال قیمت ملک به Google در اختیار شما قرار می دهد.
خدمات: travelpartnerprices.googleapis.com
برای تماس با این سرویس، توصیه می کنیم از کتابخانه های سرویس گیرنده ارائه شده توسط Google استفاده کنید. اگر برنامه شما نیاز به استفاده از کتابخانه های خود برای تماس با این سرویس دارد، با مدیر حساب فنی (TAM) خود تماس بگیرید تا سند کشف این سرویس را دریافت کنید.
نقطه پایان خدمات
نقطه پایانی سرویس یک URL پایه است که آدرس شبکه یک سرویس API را مشخص می کند. یک سرویس ممکن است چندین نقطه پایانی سرویس داشته باشد. این سرویس دارای نقطه پایانی سرویس زیر است و همه URI های فهرست شده مربوط به این نقطه پایانی سرویس هستند:
https://travelpartnerprices.googleapis.com
روش ها | |
---|---|
ingestLosPropertyPrices | POST /v1/accounts/ account_id /properties/ property_id :ingestLosPropertyPrices قیمت مدت اقامت ارائه شده را برای یک ملک مشخص بارگذاری کنید. به پیام قیمت های LoS رمزگذاری شده JSON (به زیر مراجعه کنید) به عنوان متن پیام HTTP نیاز دارد. |
API Authentication
Travel Partner Prices API از OAuth 2.0 برای احراز هویت برنامه شما استفاده می کند تا بتوانید به API ها دسترسی داشته باشید.
دستورالعملهای راهاندازی OAUTH 2.0 را برای دریافت مجوز برای Travel Partner Prices API خود دنبال کنید.
وقتی پروژه جدیدی برای Travel Partners Prices API ایجاد میکنید، باید دسترسی به پروژه کنسول Google Cloud جدید خود را فعال کنید که مشابه دستورالعملهای ارائه شده در Travel Partner API است.
به مراحل ارائه شده در Travel Partner API مراجعه کنید و برای فعال کردن پروژه خود، همه نمونه های "Travel Partner API" را با "Travel Partner Prices API" جایگزین کنید.
دامنه API Travel Partner Prices عبارت است از: "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 بیان می شود. هر پیامی که با پیامها به ترتیب RFC 3339 به زمانهای تاریخ کاملاً مشخص شده به عنوان ثانیه های کسری اختیاری هستند و ممکن است با دقت نانوثانیه بیان شوند. به عنوان مثال، |
propertyPrices | 1 | Object | قیمت یک ملک تمام قیمت های این propertyPrices قیمت ها برای همان ملک اعمال می شود.این عنصر تکرار نمی شود. برای ارسال قیمت برای چندین ملک، باید چندین درخواست HTTP (حداقل یک درخواست در هر ویژگی) ارائه دهید. |
arrivalDayPrices[] | 1..n | Object | قیمت برای تاریخ ورود همه قیمتها در این arrivalDayPrices قیمتها برای یک ملک خاص اعمال میشود، اما تاریخهای ورود متفاوت است. |
startDate | 1 | Object | productPrices برای تمام تاریخهای ورود بین 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.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 | شناسه منحصر به فرد اتاقی که این قیمت به آن اشاره دارد. از این شناسه برای مطابقت دادن دادههای Room Bundle با آنچه در دادههای اتاق ارسال کردهاید، استفاده کنید. برای اطلاعات بیشتر، به فراداده اتاق بسته مراجعه کنید. |
ratePlanId | 0..1 | string | شناسه منحصربهفرد برای دادههای بسته که این قیمت به آن اشاره دارد. از این شناسه برای مطابقت دادن دادههای Room Bundle با آنچه در دادههای بسته ارسال کردهاید استفاده کنید. برای اطلاعات بیشتر، به فراداده اتاق بسته مراجعه کنید. |
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 | جزء نرخ پایه قیمت مدت اقامت. اگر ارزش مقدار در شاخص شما باید مجموعه کامل LoS از 30 قیمت را در یک زمان ارسال کنید. اگر کمتر از 30 عدد ارسال کنید، تمام قیمتهای LoS ارائه شده به صورت عادی پردازش میشوند و نرخهای باقیمانده تا 30 لوس در دسترس نیستند. اگر بیش از 30 عدد ارسال کنید، هر قیمتی که فراتر از نرخ 30 ارسال میکنید کاهش مییابد. مدت اقامت غیرقابل دسترس باید با |
taxes[] | 30 | float | جزء مالیاتی قیمت مدت اقامت. مقدار در شاخص |
fees[] | 30 | float | جزء هزینه قیمت های مدت اقامت. مقدار در شاخص |
مثال
نرخ و مالیات بر اساس LOS
مثال زیر تنظیم حداقل مدت اقامت 2 را برای یک تاریخ ورود و تنظیم عدم دسترسی برای تاریخ ورود دیگر را نشان می دهد. اگر startDate
از 9/1/2023 بدون endDate
تنظیم کنید، به این معنی است که نرخها را فقط برای یک تاریخ مشخص میکنید و میتوانید endDate
حذف کنید.
آرایه occupancyPrices
که روی 2
تنظیم شده است به شما امکان می دهد نرخ های متفاوتی را برای اشغال های مختلف تعیین کنید. بنابراین، هیچ جای خالی در 09/04/23 محدودیت 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} . |