API de FlavosoPrimeros pasosNegocio de prueba
Negocio de prueba
Un restaurante gratuito solo para probar la API, gestionado desde la consola: pedir y reservar como cliente, responder como negocio, sincronizar la carta y seguir cada evento hasta tu app. Nunca puede convertirse en un negocio real.
Qué es un negocio de prueba
Un negocio de prueba es un restaurante en Flavoso que solo existe para la API. No cuesta nada, no necesita suscripción y, de forma predeterminada, está abierto las 24 horas. A efectos de la API cuenta como plan Pro: todas las rutas están disponibles, también las de reservas.
Cada cuenta tiene como máximo un negocio de prueba, y todas tus apps lo comparten. Incluye una carta de ejemplo con categorías, platos y un grupo de opciones, además de mesas. Lo gestionas desde la consola, en Negocio de prueba, en cinco pestañas: Negocio, Pedidos, Reservas, Carta y Eventos.
Crear y usar
- 1
Crear
«Crear negocio de prueba»: un clic y ya está. En el asistente de configuración es el segundo paso.
Consola › Negocio de prueba
- 2
Conectar la app
Con un token de prueba o mediante el flujo de OAuth, eligiendo el negocio de prueba. Solo a partir de ese momento se generan eventos: sin una app conectada con el permiso adecuado, no hay nadie escuchando.
- 3
Probar
Pedir y reservar como cliente, responder como negocio: hacer avanzar los pedidos, pausar, cambiar el horario, marcar platos como agotados. Cada cambio llega a tus apps conectadas como evento.
Consola › Negocio de prueba
Como un negocio real
Para tu app, el negocio de prueba se comporta como uno real: las mismas rutas, los mismos eventos, los mismos errores. Los pedidos y las reservas de prueba siguen el mismo camino que los de un cliente, y si haces avanzar un pedido en la consola, haces exactamente lo mismo que la cocina. Cada cambio llega a tu app como evento, por webhook o a través de GET /events. Hay tres diferencias:
livemodeesfalse, enGET /mey en cada evento. Un negocio de prueba nunca puede convertirse en un negocio real.- Los pagos online son simulados: un pedido de prueba que creas como pagado online desencadena
order.createdy, justo después,order.paid, sin proveedor de pagos y sin dinero de por medio. - El negocio de prueba guarda como máximo 50 imágenes de
image_url. Por encima de ese límite,PUT /menuno descarga más y avisa conimages_capped; al restablecerlo, se borran.
Las herramientas
Las pestañas del negocio de prueba en la consola hacen lo que, si no, harían los clientes, la cocina, la recepción y el panel. Se actualizan solas en cuanto algo cambia en el negocio de prueba, incluso cuando es tu app la que hace el cambio a través de la API.
| Herramienta | Qué hace | Dónde |
|---|---|---|
| Pedidos de prueba | Al azar, varios a la vez si quieres, o compuestos como los haría un cliente: platos con opciones, para recoger, a domicilio o en mesa, para ahora o por encargo, con propina si quieres. Desencadena order.created. | Consola › Negocio de prueba › Pedidos |
| Pagado online (simulado) | Una opción al componer un pedido: cuenta como pagado online al instante, sin proveedor de pagos y sin dinero de por medio. Desencadena order.created y, justo después, order.paid. | Consola › Negocio de prueba › Pedidos |
| Reserva de prueba | Una reserva como si la hiciera un cliente, a la hora elegida o a la próxima hora libre. Desencadena reservation.created. | Consola › Negocio de prueba › Reservas |
| Avanzar y cancelar pedidos | Como la cocina: aceptado, en preparación, listo, completado. Desencadena order.status_changed y, en una cancelación, además order.cancelled. | Consola › Negocio de prueba › Pedidos |
| Reservas como negocio | Los botones de recepción: confirmar, rechazar, llegó, se fue, no se presentó, cancelar, eliminar, asignar mesa; además, cancelar como cliente y adelantar a ahora. Desencadena reservation.updated con changed. Una reserva tomada por teléfono o un cliente sin reserva desencadena reservation.created. | Consola › Negocio de prueba › Reservas |
| Horarios y pausa | Pausar los pedidos online (de 15 minutos a 3 horas, con motivo) y volver a abrir, horario de apertura a partir de tres plantillas, cerrar hoy o mañana, activar y desactivar tipos de pedido y encargos. Desencadena store.paused, store.resumed y store.updated con changed. | Consola › Negocio de prueba › Negocio |
| Conexiones como negocio | Desconectar una app como lo haría el propietario del negocio, o quitarle permisos. Desencadena app.disconnected con el motivo owner, o app.scopes_changed. | Consola › Negocio de prueba › Negocio |
| Carta | La carta tal como GET /menu se la muestra a una app, con los identificadores de esa app. Marcar platos y opciones como agotados y volver a ofrecerlos, cambiar precios. Desencadena menu.product.updated y menu.option.updated. Además, todo para la sincronización. | Consola › Negocio de prueba › Carta |
| Eventos | Los últimos 30 eventos y, por app, qué hizo su webhook con ellos y si los ha recogido. Consulta Seguir los eventos. | Consola › Negocio de prueba › Eventos |
| Restablecer | Borra pedidos y reservas y restaura la carta de ejemplo y los ajustes. Las mesas y las conexiones se mantienen. Consulta Restablecer. | Consola › Negocio de prueba › Negocio |
| Eliminar | Elimina el negocio de prueba con todo su contenido; los tokens de prueba de tus apps dejan de funcionar. Puedes crear uno nuevo en cualquier momento. | Consola › Negocio de prueba › Negocio |
| Crear token de prueba | Token de acceso y token de actualización para el negocio de prueba, sin flujo de OAuth: el de acceso es válido durante una hora y el de actualización, 180 días; la consola muestra los dos una sola vez. Si le quitaste permisos a la app como negocio, la conexión los recupera y se notifica con app.scopes_changed. | Consola › App › Credenciales |
| Explorador de API | Probar cualquier operación contra el negocio de prueba, con solicitud y respuesta. Los cuerpos de ejemplo usan identificadores y horarios de tu negocio de prueba, por ejemplo la próxima hora libre para POST /reservations. | Consola › App › Explorador de API |
| Registro de solicitudes | Cada solicitud de tu app; en el negocio de prueba, con el cuerpo de la solicitud y de la respuesta. | Consola › App › Registro |
| «Enviar un evento de prueba» y «Reenviar» | Enviar un evento de cualquier tipo a tu webhook, con datos del negocio de prueba; repetir una entrega. En total, como máximo 10 veces por minuto y app. | Consola › App › Webhooks |
Más sobre las herramientas de tu app en Herramientas.
Seguir los eventos
La pestaña Eventos muestra los últimos 30 eventos del negocio de prueba. Para cada app conectada indica qué hizo su webhook con ellos (entregado, esperando el siguiente intento, fallido u omitido, con el motivo) y si la app ya los ha recogido con GET /events.
- Sobre: una fila se despliega y muestra el evento exactamente como lo recibe la app elegida.
- Reenviar: volver a enviar una entrega, con el mismo identificador de evento.
- Enviar al webhook: enviar al webhook de una app un evento sin entrega, por ejemplo uno anterior a la configuración del webhook o de un tipo al que no está suscrito.
- Recoger desde aquí: copiar la llamada
GET /eventscuya respuesta empieza exactamente con este evento.
Puedes hacer como máximo diez envíos por minuto y app, sumando los de «Reenviar» y «Enviar un evento de prueba» en Webhooks. Los eventos de prueba y ping nunca aparecen en GET /events; la pestaña lo indica donde corresponde.
Restablecer
«Restablecer el negocio de prueba» borra todos los pedidos y reservas, vuelve a crear la carta de ejemplo, pone fin a una pausa, borra los días especiales y devuelve el horario, los tipos de pedido, los tiempos de preparación, los encargos, el pedido mínimo, las propinas, la zona de reparto y las reservas a su estado inicial. Las imágenes descargadas de image_url se borran. Las mesas y las conexiones se mantienen.
- La carta genera los mismos eventos que con «Restablecer la carta»: cada objeto borrado, un
menu.*.deleted; cada objeto nuevo, unmenu.*.created. Así, una caja que replica la carta ve que los platos con sus identificadores ya no existen. - Si cambian el horario, los días especiales, los tiempos de preparación, los tipos de pedido, los encargos o el pedido mínimo, llega
store.updated, ystore.resumedsi había una pausa en curso. - Los pedidos y reservas borrados no generan ningún evento.
Puedes restablecer como máximo cinco veces cada diez minutos, contando también «Restablecer la carta».
Distinguir entre prueba y real
livemode está en GET /me y en cada evento. En el negocio de prueba es false, en cualquier negocio real true. Compruébalo allí donde tu app haga algo real: un pedido de prueba no debe acabar en ninguna caja real.
// 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);
}Probar con un negocio real
Incluso antes de la aprobación, tu app puede conectarse también con negocios de los que tú mismo eres propietario. Está pensado para la prueba final con la carta real.
livemode es true, los clientes reciben mensajes y una pausa cierra los pedidos online reales.¿Algo no ha quedado claro? Escribe a support@flavoso.com e indica el identificador de X-Request-Id. Así podremos encontrar tu solicitud en el registro.