Scelta di un formato di disponibilità
Esistono due modi per specificare i dati sulla disponibilità: (1) Spot aperti o (2) Ricorrenza. Scegli un solo metodo da utilizzare per tutti i commercianti e i servizi. Una volta selezionato un metodo, devi seguirlo per l'intera integrazione (feed, server di prenotazione e aggiornamenti in tempo reale).
Consulta questa guida per determinare quale formato di disponibilità è più adatto:
- Nel tuo sistema memorizzi la disponibilità come slot espliciti, ad esempio
8:00 - 8:30?
- Utilizza Spot aperti
- Nel tuo sistema, memorizzi la disponibilità in un formato ricorrente,
ovvero i commercianti hanno servizi che si verificano con frequenza costante
e con poche deviazioni? Ad esempio, gli slot si ripetono ogni 15 minuti dalle 9:00 alle 17:00 e è disponibile un solo posto per ogni incremento di 15 minuti.
- Utilizza Ricorrenza
- Per i servizi dei tuoi commercianti, possono esserci più di uno spazio aperto alla volta? Ad esempio, 30 posti liberi per un corso
- Utilizza Spot aperti
- Nessuno dei casi precedenti è applicabile?
- Utilizza Spot aperti
- Nota: sebbene l'utilizzo della ricorrenza sia più efficiente e possa comportare dimensioni del feed più piccole, se il tuo modello di dati non supporta la ricorrenza in modo nativo, non è consigliabile utilizzare la ricorrenza, poiché dovrai ricalcolare l'intera giornata di slot ricorrenti per ogni aggiornamento in tempo reale.
Posti aperti
Definizioni dei parametri:
- spot_open: il numero di posti attualmente disponibili per questa voce sulla disponibilità.
- spot_total: il numero totale di spot a disposizione del commerciante per questa configurazione, inclusi quelli non disponibili.
Il metodo Spot aperti indica esplicitamente la disponibilità di ogni slot e supporta il modello con più spot per lo stesso servizio. Questi due parametri interagiscono per creare una rappresentazione digitale della capacità del servizio.
Quando viene effettuata una prenotazione, il numero di spot_open deve diminuire di 1 tramite un aggiornamento in tempo reale (il numero di spot_total deve rimanere invariato). Quando spot_open è pari a 0, l'area non dovrebbe più essere visualizzata.
Servizi di esempio
Una lezione di yoga o un salone di bellezza hanno le seguenti planimetrie e non sono previste prenotazioni attive
Il feed di disponibilità per 2 slot presso questi commercianti avrebbe il seguente aspetto:
JSON
{ "availability": [ { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Esempi di servizi con una prenotazione
Ora un utente prenota uno degli spot. Quando viene effettuata una prenotazione, viene eseguito un aggiornamento in tempo reale per aggiornare la disponibilità. Questa prenotazione dovrebbe essere visibile nel successivo feed di disponibilità giornaliero. Per il feed della disponibilità di questi commercianti l'offerta di spot_open sarà diminuita del 1° per lo slot GMT del 1° settembre 2018 alle 16:00:00. Lo slot GMT del 1° settembre 2018 alle 20:00:00 rimane invariato.
Snippet di feed con una prenotazione
JSON
{ "availability": [ { "spots_total": 6, "spots_open": 5, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Ricorrenza
Definizioni dei parametri
- ricorrenza: la rappresentazione di slot di disponibilità che si ripetono in modo coerente.
- ripeti_until_sec: il timestamp UTC dell'ora di fine dell'ultimo slot in cui si ripete la disponibilità.
- ripeti_ogni_sec: il numero di secondi tra slot di disponibilità successivi. Ad esempio, se ripeti_ogni_sec = 1800 (30 minuti) e start_sec inizia alle 09:00, gli slot si ripeteranno ogni 30 minuti alle 09:00, alle 09:30, alle 10:00 e così via.
- Nota: non è necessario specificare spot_open e spot_total, poiché vengono entrambi considerati 1, a meno che non sia presente un'eccezione schedule_exception.
Il metodo della ricorrenza indica la disponibilità su base giornaliera per i servizi che si verificano a intervalli regolari, ad esempio un servizio che viene eseguito ogni 30 minuti ogni giorno dalle 9:00 alle 17:00. Con la ricorrenza, specifichi la durata dell'area, la prima volta nel giorno in cui si verifica l'area, la frequenza con cui l'area deve ripetersi e quando, nello stesso giorno, deve interrompersi. Nota: un nuovo insieme di slot ricorrenti deve essere specificato separatamente per ogni giorno. Se nell'intervallo di tempo è già stata prenotata un'area annuncio, devi specificare un'eccezione di pianificazione. Ad esempio, ripeti ogni mezz'ora dalle 9:00 alle 21:00 tranne dalle 11:00 alle 11:30. Ogni singolo servizio avrà le proprie eccezioni relative alla ricorrenza e alla programmazione.
Servizi di esempio
Un salone di bellezza ha la seguente planimetria e non ha prenotazioni attive
Il feed di disponibilità per 1 area annuncio presso questi commercianti avrebbe il seguente aspetto:
Snippet di feed:
JSON
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", # haircut "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT } } ] }
Esempi di servizi con una prenotazione
Ora immagina che una utente prenota un taglio di capelli con Sara alle 12:30. Quando viene effettuata una prenotazione, viene eseguito un aggiornamento in tempo reale per aggiornare la disponibilità. Questa prenotazione dovrebbe essere visibile nel successivo feed di disponibilità giornaliero. Il feed della disponibilità per questi commercianti prevede un'eccezione alla pianificazione tra le 12:30 e le 13:00 per un servizio della durata di 30 minuti.
Snippet di feed con una prenotazione:
JSON
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT }, "schedule_exception": [ { "time_range": { "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT } } ], } ] }