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