ממשק API של Travel Partner Prices
ה-Travel Partner Prices API מספק ממשק RESTful לשליחה מחירי הנכסים אל Google.
שירות: Travelpartnerprices.googleapis.com
כדי להתקשר לשירות הזה, מומלץ להשתמש בלקוח ש-Google מספקת ספריות. אם צריך להשתמש בספריות שלך כדי לקרוא לשירות הזה, עליך ליצור קשר עם מנהל חשבונות טכני (TAM) לקבלת מסמך Discovery לשירות הזה.
נקודת קצה (endpoint) של שירות
שירות נקודת הקצה היא כתובת URL בסיסית שמציינת את כתובת הרשת של שירות API. שירות אחד יכולות להיות כמה נקודות קצה (endpoint) של שירות. השירות הזה כולל את השירות הבא נקודת הקצה וכל מזהי ה-URI שמפורטים ביחס לנקודת הקצה הזו של השירות:
https://travelpartnerprices.googleapis.com
שיטות | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
יש להעלות את מחירי השהייה שצוינו לנכס שצוין. נדרשת הודעת LoS עם קידוד לפי JSON (ראו בהמשך) בתור ה-HTTP גוף ההודעה.
|
אימות API
ב-Travel Partner Prices API נעשה שימוש ב-OAuth 2.0 כדי לאמת את האפליקציה כדי לקבל גישה לממשקי ה-API.
אפשר לקבל הוראות מפורטות להגדרה בהגדרת OAuth 2.0. אלה ההגדרות להוראות עבור Travel Partner API. שימו לב ש-Travel Partner API ל-Travel Partner Prices API יש ערכים שונים. בהוראות ההגדרה האלה, עליך להחליף את "Travel Partner Prices API" בכל מקום שבו 'Travel Partner API' מתייחס ל-.
בקשות
תחביר
ההודעה 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, הבהיר בפורמט RFC 3339 String. כל הודעה שנשלחה באמצעות ההודעות מעובדות לפי הסדר לפי הדרישות של 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 | מחירי המוצרים חלים על כל תאריכי ההגעה בין
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 | המזהה הייחודי של החדר שאליו מתייחס המחיר. כדאי להשתמש המזהה הזה, שיתאים לנתונים של חבילת החדר לנתונים ששלחת בנתוני החדר. מידע נוסף זמין במאמר המטא-נתונים של חבילת החדר. |
ratePlanId | 0..1 | string | המזהה הייחודי של נתוני החבילה שאליהם מתייחס המחיר. כדאי להשתמש המזהה הזה כך שיתאים לנתונים של חבילת החדר לנתונים ששלחת בנתוני ה-package. מידע נוסף זמין במאמר המטא-נתונים של חבילת החדר. |
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 שצוינו מעובדים בתור רגילה, והתעריפים הנותרים לא זמינים עד LoS 30. אם שולחים יותר מ-30,ולאחר מכן כל מחיר שנשלח מעבר למחיר ה-30 יהיה ירד . צריך לייצג משך שהייה לא זמין באמצעות
|
taxes[] | 30 | float | רכיב המס של מחירי משך השהייה.
הערך באינדקס |
fees[] | 30 | float | רכיב העמלה של מחירי משך השהייה.
הערך באינדקס |
דוגמה
מחירים מיסים על בסיס LOS
בדוגמה הבאה מוצגת הגדרה של משך שהייה מינימלי של 2
לתאריך צ'ק אין אחד והגדרה של חוסר זמינות לתאריך צ'ק אין אחר.
אם מגדירים את startDate
מ-1/9/2023 בלי endDate
, המשמעות היא
אתם מציינים את התעריפים לתאריך אחד בלבד, ואפשר להשמיט את
endDate
.
המערך occupancyPrices
שמוגדר לערך 2
מאפשר להגדיר קצבים שונים
לתפוסים שונים. לכן, אין מקום פנוי במגבלות של 04/09/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}
|