Strutturare i dati sulla disponibilità per le prenotazioni

Per visualizzare correttamente i tuoi slot nel flusso di prenotazione, devi inviare una mappatura accurata e aggiornata del tuo inventario. Il numero di posti disponibili può variare in modo significativo dopo una singola prenotazione a causa della natura dei ristoranti e della possibilità di unire tavoli o delle dimensioni del gruppo. Gli esempi riportati in questo documento ti guidano su come gestire e mappare correttamente l'inventario disponibile.

Di seguito sono riportati i parametri specificati in Availability definition:

  • party_size: il numero di persone che l'attività può ospitare in questa fascia oraria. I diagrammi in questo articolo mostrano i vari modi in cui puoi configurare le dimensioni del gruppo.
  • spots_open: il numero di tavoli attualmente disponibili per una specifica fascia oraria e per un determinato numero di persone.
  • spots_total: il numero totale di tabelle che il commerciante ha per questa configurazione, incluse le tabelle non disponibili.

Questi tre parametri lavorano insieme per creare una rappresentazione digitale della planimetria. party_size è il numero di persone che ogni tavolo può ospitare. Esiste una voce per ogni dimensione che una tabella può ospitare. spots_open e spots_total sono conteggi di tavoli che possono ospitare party_size.

Esempio di planimetria vuota

Immagina un ristorante con la seguente planimetria e nessuna prenotazione attiva:

Figura 1. Planimetria senza prenotazioni attive

Figura 1. Planimetria senza prenotazioni attive.

Di seguito sono riportati i valori per party_size, spots_open e spots_total:

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

Il feed Disponibilità per una fascia oraria presso questo commerciante è simile al seguente:

{
  "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
          }
        }
      ]
}

Esempio di planimetria con una prenotazione

Un ristorante con uno dei tavoli rotondi prenotati in precedenza è il seguente:

Figura 1. Planimetria con una prenotazione attiva

Figura 2. Planimetria con una prenotazione attiva.

Di seguito sono riportati i valori per party_size, spots_open e spots_total:

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

Il feed Disponibilità per una fascia oraria presso questo commerciante è simile al seguente:

{
  "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
          }
        }
      ]
}

Specificare la disponibilità di posti a sedere con il supporto delle tabelle combinate

Un ristorante può combinare i tavoli in molti modi per ospitare gruppi più grandi. Devi specificare spots_open e spots_total in modo da riflettere con precisione se puoi accettare gruppi di una determinata dimensione.

Di seguito è riportato un esempio di come specificare la combinazione delle tabelle. I tuoi feed potrebbero variare in base al metodo di calcolo utilizzato. È accettabile specificare spots_open e spots_total in modo che corrispondano alla logica della tua attività.

Se un ristorante consente di unire i tavoli per formare un gruppo più grande, puoi aggiornare spots_open e spots_total per riflettere questa modifica.

Ad esempio, un ristorante che può unire due tavoli piccoli per ospitare un gruppo di 7-10 persone:

Figura 1. Planimetria senza prenotazioni attive

Figura 3. Planimetria senza prenotazioni attive.

In caso di prenotazioni non attive, di seguito sono riportati i valori per party_size, spots_open e 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

Ora, con la stessa planimetria, viene effettuata una prenotazione per un gruppo di dieci persone che combina due tavoli piccoli.

Figura 1. Planimetria con una prenotazione attiva che si estende su due tavoli

Figura 4. Planimetria con una prenotazione attiva che occupa due tavoli.

Quindi, i valori di party_size, spots_open e spots_total sono i seguenti:

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