סקירה כללית
הודעת המחירים (OTA_HotelRateAmountNotifRQ) מגדירה את מחירי הלילה לכל שילוב של סוג חדר ותוכנית מחירים, לטווחים ספציפיים של תאריכים. במסגרת הודעת המחיר, Google תומכת בתמחור לפי תפוסה, ומאפשרת לציין תעריפים שונים ללילה בהתאם למספר המקסימלי של האורחים המיועדים.
בקטעים הבאים מוסבר איך להתחיל להוסיף ולעדכן מחירים ולשלוח הודעת מחיר, ומופיעים בהם הנחיות כלליות, דוגמה בסיסית ותרחישים מעשיים.
אופן הפעולה של שיעור ההתאמה
כשהמשתמשים מבקשים נתונים לגבי תפוסה ספציפית, המחיר שמוצג להם תלוי באופן שבו הגדרתם את המחירים בהודעת המחיר. בקטע הזה מוסבר איך המערכת מתאימה את הבקשות האלה של המשתמשים למחירים שלכם, בהתאם לתפוסה של הבקשה ולמחירים שהגדרתם.
עקרונות מרכזיים
שיעור שהוגדר לשיעור תפוסה מסוים חל על כל שיעורי התפוסה הנמוכים יותר, אלא אם הוגדר אחרת.
בקשות לשיעורי תפוסה גבוהים מאלה שהוגדרו נחשבות כבקשות שלא ניתן למלא.
התמחור לפי תפוסה חל גם על תמחור לפי תאריך וגם על מודלים של תמחור לפי משך השהייה (LOS) שמתוארים בהמשך. כלומר, אפשר לציין מחירים לכל מספר אורחים. אם לא קיים מחיר לשהייה עם מספר מסוים של אורחים, המערכת משתמשת במחיר לשהייה עם מספר האורחים הגבוה הבא. אפשר גם להגדיר חיובים על אורחים נוספים ועל ילדים באמצעות התגים
AdditionalGuestAmountsאוExtraGuestCharges, שמוגדרים בהתאם לקיבולת של החדר.
הטבות ודוגמאות
- יעילות
אם יש כמה תפוסות עם אותו סכום תעריף, לא צריך להגדיר תעריף לכל תפוסה. כדי לפשט את ההודעות, אפשר להגדיר רק את ערך התפוסה הכי גבוה שנתמך על ידי סוג החדר ותוכנית המחירים. התעריף הזה יוצג למשתמשים בכל מקרה שבו מספר האורחים קטן מהערך שהגדרתם או שווה לו.
דוגמה: המחירים של סוג חדר וחבילת מחירים זהים למספר האורחים מ-1 עד 4. משתמשים בהודעת התעריף כדי להגדיר תעריף אחד לתפוסה מקסימלית של 4 אנשים. משתמשים שמחפשים חדרים ליחיד, לזוג או לשלושה אנשים יראו את אותו המחיר. משתמשים שמחפשים דירוג של 5 ומעלה לא יראו את המחירים.
- שליטה
אפשר לציין במפורש תעריפים שונים לתפוסות חלופיות. אם רוצים לשלוט יותר באופן שבו Google מתאימה בקשות לשיעורי תפוסה, אפשר לשלוח תעריף שונה לכל ערך תפוסה.
דוגמה: אם הגדרתם תעריפים לחדרים ל-3 אנשים ולחדרים ליחיד, בחיפושים של חדרים ליחיד יוצג התעריף לחדר ליחיד, בחיפושים של חדרים לזוג יוצג התעריף לחדר ל-3 אנשים, ובחיפושים של חדרים ל-4 אנשים ומעלה לא יוצגו תעריפים.
דוגמאות נוספות לתרחישים שקשורים לשיעורים זמינות במאמרים איך עושים את זה.
רכיבי חובה ורכיבים אופציונליים
בהפניה ל-XML מופיעים תיאורים של הרכיבים הנדרשים והאופציונליים. פרטים על מאפיינים ורכיבי צאצא מופיעים במאמר רכיבי תמחור ומאפיינים.
תחביר וסכימות
כדאי להשתמש בדוגמה של תחביר המחירים כהפניה כשיוצרים את הודעת המחירים, כדי לוודא שהפורמט נכון.
אפשר להשתמש בכלי XML של צד שלישי, כמו xmllint, כדי לאמת את הפידים באמצעות הסכימות שפורסמו לפני ששולחים אותם ל-Google. מידע על סכימת הודעות המחיר זמין במאמר סכימות של מודעות להזמנת חדרים.
מודלים של תמחור
תמחור לפי תאריך
זהו מודל התמחור הרגיל שמשמש לרוב הנכסים. מודל התמחור per-date מבוסס על הגדרת תעריפים שמסוכמים לפי תאריכי השהייה כדי להגיע למחיר כולל. במודל הזה, כל המחירים שמופיעים ברכיב Rate מתייחסים לטווח תאריכי שהייה שצוין ברכיב <StatusApplicationControl>.
תמחור לפי משך השהייה
מודל התמחור לפי משך השהייה מבוסס על תעריפים שמוגדרים לשילוב של תאריך הגעה ומשך שהייה. התעריפים שמוגדרים במודל התמחור לפי משך השהייה הם ליום. לדוגמה, אם שולחים מחיר של 100 $ לשהייה של 3 לילות, המחיר הכולל מחושב כך: 3x$100=$300.
כדי להשתמש במודל התמחור לפי משך השהייה, צריך לציין את הערך RatePlanType="26" ברכיבי StatusApplicationControl. צריך גם להגדיר את המאפיינים RateTimeUnit ו-UnitMultiplier ברכיבי Rate בקובץ ה-XML. כתוצאה מכך, כל המחירים שמופיעים ברכיב Rate יחולו על הזמנות שהוגדרו לפי תאריכי ההגעה שצוינו ברכיב <StatusApplicationControl> ולפי הערך של משך השהייה שצוין ברכיב UnitMultiplier.
אתם יכולים להשתמש גם במודלים של תמחור לפי תאריך וגם במודלים של תמחור לפי משך השהייה בחשבון אחד, אבל כל נכס צריך להשתמש רק במודל תמחור אחד. כשמטמיעים תמחור לפי משך השהייה, חשוב לזכור את הנקודות הבאות:
- כשמשתמשים בתמחור לפי משך שהייה, המערכת לא משלבת בין תעריפים של משכי שהייה שונים. לדוגמה, מחיר לשהייה של 3 לילות לא ישולב עם מחיר לשהייה של לילה אחד כדי לקבוע מחיר לשהייה של 4 לילות. צריך לציין במפורש את המחיר לשהייה של 4 לילות.
- המחיר ללילה אחד בתמחור לפי משך שהייה לא משמש כמחיר ללילה בודד בתמחור לפי תאריך.
- בכל נכס צריך להשתמש רק בתמחור לפי משך השהייה או בתמחור לפי תאריך, בהתאם לאופן שבו התעריפים מוצגים במערכת שלכם.
כדי להפעיל בחשבון שלכם תמחור לפי משך השהייה, צריך לשלוח בקשה דרך מנהל החשבון הטכני או לפנות אלינו.
הנחיות או פעולות
- תמחור לפי תאריך
Delta: הוספה או עדכון של המחירים לכל תפוסה רק לשילובי סוג החדר, תוכנית המחירים ותאריכי השהייה שצוינו ב-<StatusApplicationControl>.- כברירת מחדל, עדכוני שערים מתבצעים באמצעות הפעולה
Delta. - עדכון של
Deltaלא משנה את המחירים הקודמים ששמורים לשיעורי תפוסה אחרים. לדוגמה, אם ציינתם תעריפים לחדרים ליחידים ולחדרים זוגיים, ואתם שולחיםDeltaעדכון תעריפים לחדר ליחיד, התעריף לחדר זוגי יישאר ללא שינוי.
- כברירת מחדל, עדכוני שערים מתבצעים באמצעות הפעולה
Overlay: מחיקת כל התעריפים הקיימים לכל מספר אורחים בסוג החדר, בתוכנית התמחור ובתאריכים שצוינו ב-<StatusApplicationControl>והחלפתם בתעריפים חדשים. לדוגמה, אם ציינתם תעריפים לחדרים ליחידים ולזוגות, ואתם שולחים עדכוןOverlayלחדר ליחיד, Google תסיר את כל התעריפים הקודמים (גם לחדרים ליחידים וגם לזוגות) ורק התעריף לחדר ליחיד יישאר אחרי העדכון.
Remove: מחיקת כל המחירים הקיימים לכל תפוסה עבור סוג החדר, תוכנית המחירים והתאריכים שצוינו ב-<StatusApplicationControl>.- תמחור לפי משך השהייה
Delta: הוספה או עדכון של מחירים לפי ערך LOS רק לשילובי סוג החדר, תוכנית המחירים ותאריכי הצ'ק-אין שצוינו ב-<StatusApplicationControl>. הפונקציה מחליפה את כל המחירים לכל חדר שמשויכים לערכי משך השהייה המעודכנים.- כברירת מחדל, עדכוני שערים מתבצעים באמצעות הפעולה
Delta. - עדכון של
Deltaלא משנה תעריפים קודמים ששמורים במערכת למשכי שהייה אחרים. לדוגמה, אם ציינתם מחירים לשהייה של לילה אחד ולשהייה של שני לילות, ואתם שולחים עדכון מחיריםDeltaלשהייה של לילה אחד, המחירים לשהייה של שני לילות לא ישתנו. - עדכון
Deltaמחליף את כל שיעורי התפוסה שאוחסנו בעבר עבור משך השהייה שצוין. לדוגמה, אם הגדרתם תעריפים לחדרים ליחידים ולזוגות לשהייה של לילה אחד, ואתם שולחיםDeltaעדכון תעריפים לשהייה של לילה אחד עם תעריף רק לחדרים ליחידים, התעריף לחדרים זוגיים יוסר.
- כברירת מחדל, עדכוני שערים מתבצעים באמצעות הפעולה
Overlay: מחיקת כל המחירים הקיימים לכל מספר אורחים לשהייה, סוג החדר, תוכנית המחירים ותאריכי הצ'ק-אין שצוינו ב-<StatusApplicationControl>והחלפתם במחירים חדשים. לדוגמה, אם ציינתם מחירים לשהייה של לילה אחד ולשהייה של שני לילות, ואתם שולחים עדכון של שהייה של לילה אחד, Google תסיר את כל המחירים הקודמים (גם לשהייה של לילה אחד וגם לשהייה של שני לילות) ורק המחיר לשהייה של לילה אחד יישאר אחרי העדכון.Overlay
Remove: מחיקה של כל המחירים הקיימים לכל תקופות השהייה של סוג החדר, תוכנית המחירים ותאריכי הצ'ק-אין שצוינו ב-<StatusApplicationControl>.- בעיות שקשורות למיסים
אם המיסים והעמלות פשוטים, אפשר לציין את הסכום הכולל באמצעות התג
AmountAfterTax. אי אפשר להציג ב-AmountAfterTaxמיסים מורכבים, כמו מיסים ועמלות שחלים על כל השהייה (ולא על כל לילה).באופן כללי, Google ממליצה להשתמש ב-
TaxFeeInfoולא ב-AmountAfterTax.אם אפשר, כדאי לכלול את
AmountBeforeTax(גם אם מציינים אתAmountAfterTax), כי בלוקאלים מסוימים (לדוגמה, ארה"ב) המחיר שמוצג כברירת מחדל הוא המחיר לפני מס.צריך לכלול את כל המיסים והעמלות שהמשתמש צריך לשלם (מע"מ, מס על שהייה, עמלות ניקיון, מס עירוני וכו'), גם אם התשלום לא מתבצע בזמן ההזמנה או לא משולם ישירות למקום האירוח.
דוגמה
בקטע הזה מופיעה דוגמה בסיסית להודעה עם בקשת דירוג, שכוללת רכיבים נדרשים ואופציונליים. אחרי שמכינים את הקובץ, צריך לשלוח אותו ל-Google באמצעות הודעת POST לנקודת הקצה הבאה:
https://www.google.com/travel/hotels/uploads/property_data
מידע נוסף על שליחת ההודעה זמין במאמר בנושא שליחת הודעות.
במאפיין HotelCode, משתמשים במזהה המלון הייחודי שבו השתמשתם במערכת שלכם כדי לזהות את הנכס. הערך הזה צריך להיות זהה למזהה המלון שצוין באמצעות התג <id> בתוך הרכיב <listing> בפיד רשימת המלונות.
במאפיינים <PackageID> ו-<RoomID>, צריך להשתמש באותם מזהים שבהם אתם משתמשים במערכת שלכם לתוכניות תמחור ולסוגי חדרים (בהתאמה). חשוב מאוד שהנתונים יהיו עקביים עם הנתונים במערכת שלכם, כדי לוודא ש-Google מציגה את המחירים והנתונים שלכם בצורה נכונה.
בדוגמה הזו מוסבר איך מגדירים תעריפים באמצעות פעולת Delta:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2022-02-25T20:50:37-05:00"
Version="3.0"
NotifType="Delta">
<POS><Source><RequestorID ID="partner_key" /></Source></POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="2022-12-01"
End="2022-12-31"
InvTypeCode="RoomID"
RatePlanCode="PackageID" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
<BaseByGuestAmt NumberOfGuests="2" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
<BaseByGuestAmt NumberOfGuests="3" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
<BaseByGuestAmt NumberOfGuests="4" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</OTA_HotelRateAmountNotifRQ>
מדריכים
בקטע הזה מפורטים פתרונות לתרחישים שבהם אתם עשויים להיתקל כשאתם שולחים הודעות על תעריפים.
דוגמאות להוספה, להסרה ולעדכון של תעריפים מופיעות במאמר דוגמאות לתעריפים.
תרחיש 1: איך משנים את התמחור לפי תפוסה
תיאור
בעבר, המחירים ללילה הוגדרו רק לחדרים זוגיים (שחלים גם על חדרים ליחידים), אבל עכשיו יש מחיר זול יותר לחדרים ליחידים.
פתרון
שולחים את שיעור התפוסה החדש באמצעות העדכון המוגבל לטווח Delta שמוגדר כברירת מחדל. הערך החדש הזה לא משפיע על שיעור התפוסה 2.
תרחיש 2: איך מחליפים את המחירים לכל תפוסה בנכס
תיאור
בעבר הגדרתם תעריפים לחדרים עם 1 עד 4 אורחים, אבל עכשיו התעריפים תקפים רק לחדרים עם אורח אחד או שניים.
פתרון
משתמשים ב-NotifType="Overlay" כדי להחליף את כל שיעורי התפוסה של נכס מסוים, סוג חדר, תוכנית מחירים ותאריכים. במקרה כזה, הפעולה Overlay תציג את המחירים לחדרים עם תפוסה של 1 ו-2.
תרחיש 3: איך מגדירים את אותו מחיר לכמה רמות תפוסה
תיאור
אפשר למכור לקבוצה עם פחות אנשים מחיר שמתאים לתפוסה מסוימת. במקרה כזה, אפשר לפשט את ההודעות ולשלוח רק את עדכון המחיר הרלוונטי לשיעור התפוסה המקסימלי.
פתרון
אם יש לכם מחיר זהה לכמה מספרים של אורחים, צריך להגדיר את הערך הגבוה ביותר של מספר האורחים שנתמך על ידי סוג החדר והתוכנית למחירים, והמערכת תשתמש אוטומטית בערך הזה למספרים נמוכים יותר של אורחים. כלומר, אם המחיר ללילה זהה ל-1 עד 6 אורחים, לא צריך לחזור על אותו מחיר ללילה, אלא רק להגדיר אותו ל-6 אורחים.