איך יוצרים נתונים מובְנים של זמינות להזמנות

כדי שהמשבצות יוצגו בצורה תקינה בתהליך ההזמנה, אתם צריכים לשלוח מיפוי מדויק ומעודכן של המלאי. מספר המקומות הפנויים יכול להשתנות באופן משמעותי אחרי הזמנה אחת, בגלל האופי של מקומות לאירוח וסעודה והאפשרות להצטרף לשולחנות או לגודל הקבוצה. הדוגמאות במסמך הזה מראות איך לשמור על נתונים עדכניים של זמינות מלאי ולמפות אותם בצורה נכונה.

אלה הפרמטרים כפי שמצוין ב-Availability definition:

  • party_size: מספר האנשים שהעסק יכול לארח במשבצת הזמן הזו. בתרשימים במאמר הזה מוצגות הדרכים השונות שבהן אפשר להגדיר את גודל המשתתפים.
  • spots_open: מספר השולחנות שזמינים כרגע למשבצת זמינות ספציפית ולגודל קבוצה מסוים.
  • spots_total: המספר הכולל של הטבלאות שיש למוֹכר בהגדרה הזו, כולל הטבלאות שלא זמינות.

שלושת הפרמטרים האלה פועלים יחד כדי ליצור ייצוג דיגיטלי של תוכנית הקומה. ‫party_size הוא מספר האנשים שאפשר להושיב בכל שולחן. יש ערך לכל גודל שהטבלה יכולה להכיל. ‫spots_open ו-spots_total הם ספירות של טבלאות שיכולות להכיל את party_size.

דוגמה לתוכנית קומה ריקה

תארו לעצמכם מסעדה עם תוכנית הרצפה הבאה, ללא הזמנות פעילות:

Figure 1. תוכנית קומה ללא הזמנות פעילות

איור 1. תוכנית קומה ללא הזמנות פעילות.

הערכים של party_size, spots_open ו-spots_total הם:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1

פיד הזמינות של משבצת זמן אחת אצל המוכר הזה נראה כך:

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 4,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

דוגמה לתוכנית קומה עם הזמנה

הזמנה במסעדה לאחד מהשולחנות העגולים שהוזמנו קודם:

Figure 1. תוכנית קומה עם הזמנה פעילה אחת

איור 2. תוכנית קומה עם הזמנה פעילה אחת.

הערכים של party_size, spots_open ו-spots_total הם:

party_size spots_open spots_total
4 2 3
5 2 3
6 3 4
7 1 1
8 1 1

פיד הזמינות של משבצת זמן אחת אצל המוכר הזה נראה כך:

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

ציון זמינות של מקומות ישיבה במסעדות עם תמיכה בשולחנות משולבים

יש הרבה דרכים שבהן מסעדות יכולות לחבר שולחנות כדי לארח קבוצות גדולות יותר. צריך לציין את spots_open ואת spots_total באופן שמבטא בצורה מדויקת אם אפשר לקבל קבוצות בגודל מסוים.

הדוגמה הבאה ממחישה איך אפשר לציין שילוב של טבלאות. יכול להיות שהפידים שלכם יהיו שונים בהתאם לשיטת החישוב שבה אתם משתמשים. מותר לציין את spots_open ואת spots_total באופן שתואם ללוגיקה העסקית שלכם.

אם במסעדה אפשר לחבר בין שולחנות כדי להושיב קבוצה גדולה יותר, אתם יכולים לעדכן את spots_open וspots_total בהתאם.

לדוגמה, מסעדה שיכולה לחבר שני שולחנות קטנים כדי להושיב קבוצה של 7-10 אנשים:

Figure 1. תוכנית קומה ללא הזמנות פעילות

איור 3. תוכנית קומה ללא הזמנות פעילות.

אם אין הזמנות פעילות, אלה הערכים של party_size,‏ spots_open ו-spots_total:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1
9 1 1
10 1 1

עכשיו, באותו תרשים ישיבה, מתבצעת הזמנה לקבוצה של עשרה אנשים שיושבים בשני שולחנות קטנים.

Figure 1. תוכנית קומה עם הזמנה פעילה אחת שכוללת שני שולחנות

איור 4. תוכנית קומה עם הזמנה פעילה אחת שכוללת שני שולחנות.

אז הערכים של party_size,‏ spots_open ו-spots_total הם:

party_size spots_open spots_total
4 1 3
5 1 3
6 2 4
7 1 1
8 1 1
9 0 1
10 0 1