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