API di FlavosoPrimi passiLocale di prova
Locale di prova
Un ristorante gratuito solo per provare l'API, gestito dalla console: ordinare e prenotare come cliente, rispondere come locale, sincronizzare il menu e seguire ogni evento fino alla tua app. Non può mai andare online.
Che cos'è un locale di prova
Un locale di prova è un ristorante su Flavoso che esiste solo per l'API. Non costa nulla, non richiede abbonamento e di base è aperto giorno e notte. Per l'API vale come piano Pro: tutti gli endpoint sono disponibili, prenotazioni comprese.
Ogni account ha al massimo un locale di prova, e tutte le tue app lo condividono. Include un menu di esempio con categorie, piatti e un gruppo di opzioni, più alcuni tavoli. Lo gestisci nella console, in Locale di prova, in cinque schede: Locale, Ordini, Prenotazioni, Menu ed Eventi.
Creare e usare
- 1
Crea
«Crea locale di prova»: un clic ed è pronto. Nell'assistente di configurazione è il secondo passo.
Console › Locale di prova
- 2
Collega l'app
Con un token di prova o con il flusso OAuth, scegliendo il locale di prova. Solo allora vengono generati eventi: senza un'app collegata con il permesso adatto, nessuno è in ascolto.
- 3
Prova
Ordina e prenota come cliente, rispondi come locale: fai avanzare gli ordini, metti in pausa, cambia gli orari, segna i piatti come esauriti. Ogni modifica arriva come evento alle tue app collegate.
Console › Locale di prova
Come un locale reale
Per la tua app il locale di prova si comporta come un locale reale: stessi endpoint, stessi eventi, stessi errori. Ordini e prenotazioni di prova seguono lo stesso percorso di quelli di un cliente, e far avanzare un ordine nella console ha lo stesso effetto che in cucina. Ogni modifica arriva alla tua app come evento, via webhook o tramite GET /events. Ci sono tre differenze:
livemodeèfalse, inGET /mee in ogni evento. Un locale di prova non può mai andare online.- I pagamenti online sono simulati: un ordine di prova che crei come pagato online genera
order.createde subito dopoorder.paid, senza fornitore di pagamento e senza denaro. - Il locale di prova conserva al massimo 50 immagini da
image_url. Oltre questo limitePUT /menunon ne scarica altre e avvisa conimages_capped; reimpostarlo le elimina.
Gli strumenti
Le schede del locale di prova nella console fanno ciò che altrimenti farebbero clienti, cucina, accoglienza e dashboard. Si aggiornano da sole appena qualcosa cambia nel locale di prova, anche quando è la tua app a fare la modifica tramite l'API.
| Strumento | Cosa fa | Dove |
|---|---|---|
| Ordini di prova | A caso, anche più di uno alla volta, oppure composti come farebbe un cliente: piatti con opzioni, asporto, consegna o al tavolo, subito o in preordine, con mancia se vuoi. Genera order.created. | Console › Locale di prova › Ordini |
| Pagato online (simulato) | A scelta per un ordine composto: vale subito come pagato online, senza fornitore di pagamento e senza denaro. Genera order.created e subito dopo order.paid. | Console › Locale di prova › Ordini |
| Prenotazione di prova | Una prenotazione come la farebbe un cliente, all'orario scelto o al prossimo libero. Genera reservation.created. | Console › Locale di prova › Prenotazioni |
| Far avanzare e annullare gli ordini | Come la cucina: accettato, in preparazione, pronto, concluso. Genera order.status_changed, un annullamento anche order.cancelled. | Console › Locale di prova › Ordini |
| Prenotazioni come locale | I pulsanti dell'accoglienza: conferma, rifiuta, arrivato, andato via, non presentato, annulla, elimina, assegna un tavolo; inoltre annulla come cliente e anticipa ad adesso. Genera reservation.updated con changed. Una prenotazione presa al telefono o un cliente senza prenotazione genera reservation.created. | Console › Locale di prova › Prenotazioni |
| Orari e pausa | Mettere in pausa gli ordini online (da 15 minuti a 3 ore, con un motivo) e riaprire, orari di apertura da tre modelli, chiudere oggi o domani, attivare e disattivare tipi di ordine e preordine. Genera store.paused, store.resumed e store.updated con changed. | Console › Locale di prova › Locale |
| Collegamenti come locale | Scollegare un'app come farebbe il suo titolare, o toglierle permessi. Genera app.disconnected con il motivo owner, oppure app.scopes_changed. | Console › Locale di prova › Locale |
| Menu | Il menu come GET /menu lo mostra a un'app, con i suoi identificativi. Segnare piatti e opzioni come esauriti e offrirli di nuovo, cambiare i prezzi. Genera menu.product.updated e menu.option.updated. In più, tutto per la sincronizzazione. | Console › Locale di prova › Menu |
| Eventi | Gli ultimi 30 eventi e, per ogni app, cosa ne ha fatto il suo webhook e se li ha recuperati. Vedi Seguire gli eventi. | Console › Locale di prova › Eventi |
| Reimposta | Cancella ordini e prenotazioni e ripristina il menu di esempio e le impostazioni. Tavoli e collegamenti restano. Vedi Reimpostare. | Console › Locale di prova › Locale |
| Elimina | Elimina il locale di prova con tutto il suo contenuto; i token di prova delle tue app smettono di funzionare. Puoi crearne uno nuovo in qualsiasi momento. | Console › Locale di prova › Locale |
| Crea token di prova | Token di accesso e token di aggiornamento per il locale di prova, senza flusso OAuth: il token di accesso vale un'ora, quello di aggiornamento 180 giorni; la console li mostra entrambi una sola volta. Se hai tolto permessi all'app come locale, il collegamento li riottiene, segnalato con app.scopes_changed. | Console › App › Credenziali |
| Esploratore API | Prova ogni operazione sul locale di prova, con richiesta e risposta. I corpi di esempio usano identificativi e orari del tuo locale di prova, ad esempio il prossimo orario libero per POST /reservations. | Console › App › Esploratore API |
| Registro delle richieste | Ogni richiesta della tua app, per il locale di prova con i corpi di richiesta e risposta. | Console › App › Registro |
| «Invia un evento di prova» e «Rinvia» | Invia al tuo webhook un evento di qualsiasi tipo, con i dati del locale di prova; ripete una consegna. In tutto al massimo 10 volte al minuto per app. | Console › App › Webhook |
Di più sugli strumenti della tua app in Strumenti.
Seguire gli eventi
La scheda Eventi mostra gli ultimi 30 eventi del locale di prova. Per ogni app collegata indica cosa ne ha fatto il suo webhook (consegnato, in attesa del prossimo tentativo, fallito o saltato, con il motivo) e se l'ha già recuperato con GET /events.
- Busta: una riga si apre e mostra l'evento esattamente come lo riceve l'app scelta.
- Invia di nuovo: invia ancora una consegna, con lo stesso identificativo di evento.
- Invia al webhook: invia al webhook di un'app un evento senza consegna, ad esempio uno precedente alla configurazione del webhook o di un tipo a cui non è iscritto.
- Recupera da qui: copia la chiamata
GET /eventsla cui risposta inizia esattamente con questo evento.
Al massimo dieci invii al minuto per app, contando «Rinvia» e «Invia un evento di prova» in Webhook. Gli eventi di prova e ping non compaiono mai in GET /events; la scheda lo indica nel punto giusto.
Reimpostare
«Reimposta il locale di prova» cancella tutti gli ordini e le prenotazioni, ricrea il menu di esempio, termina una pausa, cancella i giorni speciali e riporta orari di apertura, tipi di ordine, tempi di preparazione, preordine, ordine minimo, mance, zona di consegna e prenotazioni come alla creazione. Le immagini scaricate da image_url vengono eliminate. Tavoli e collegamenti restano.
- Il menu genera gli stessi eventi di «Reimposta il menu»: ogni oggetto cancellato con
menu.*.deleted, ogni nuovo conmenu.*.created. Una cassa che rispecchia il menu vede così che i piatti con i suoi identificativi non ci sono più. - Se cambiano orari, giorni speciali, tempi di preparazione, tipi di ordine, preordine o ordine minimo, arriva
store.updated, estore.resumedse c'era una pausa in corso. - Per ordini e prenotazioni cancellati non arriva alcun evento.
Puoi reimpostare al massimo cinque volte in dieci minuti, contando anche «Reimposta il menu».
Distinguere prova e reale
livemode compare in GET /me e in ogni evento. Nel locale di prova è false, in ogni locale reale true. Controllalo nel punto in cui la tua app fa qualcosa di reale: un ordine di prova non deve finire in nessuna cassa reale.
// Test and live share one API, one address and one token format. livemode tells them apart.
const me = await fetch("https://api.flavoso.com/v1/me", {
headers: { Authorization: `Bearer ${accessToken}` },
}).then((r) => r.json());
if (!me.livemode) console.log(`Connected to the test restaurant "${me.tenant.name}"`);
// In the webhook handler: never book a test order into a real till
export function handleEvent(event) {
if (!event.livemode) return handleTestEvent(event);
return handleLiveEvent(event);
}Provare con un locale reale
Già prima dell'approvazione la tua app si collega anche ai locali di cui sei tu stesso titolare. È pensato per l'ultima prova con un menu reale.
livemode è true, i clienti ricevono messaggi e una pausa ferma la vera ricezione degli ordini.Qualcosa non è chiaro? Scrivi a support@flavoso.com indicando l'identificativo di X-Request-Id. Così troviamo la tua richiesta nel registro.