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. 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. 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. 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:

  • livemode es false, en GET /me y 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.created y, 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 /menu no descarga más y avisa con images_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.

HerramientaQué haceDónde
Pedidos de pruebaAl 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 pruebaUna 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 pedidosComo 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 negocioLos 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 pausaPausar 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 negocioDesconectar 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
CartaLa 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
EventosLos ú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
RestablecerBorra 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
EliminarElimina 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 pruebaToken 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 APIProbar 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 solicitudesCada 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 /events cuya 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, un menu.*.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, y store.resumed si 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.

Eso ya no es una prueba: 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.