Alérgenos
En la pantalla de bienvenida del buffet, el cliente puede declarar qué alérgenos tiene (los 14 obligatorios de la normativa europea EU FIC). La carta esconde automáticamente todos los platos que contengan esos alérgenos. Además queda un campo de texto libre para cualquier dato extra que la cocina deba saber.
Cómo funciona
- El cliente escanea el QR de la mesa.
- Pulsa el toggle "¿Alergias o restricciones?" en la pantalla de bienvenida.
- Marca uno o más alérgenos del grid (🌾 Gluten, 🦐 Crustáceos, 🥚 Huevos, 🐟 Pescado, 🥜 Cacahuetes, 🫘 Soja, 🥛 Leche, 🌰 Frutos secos, 🥬 Apio, 🟡 Mostaza, ⚪ Sésamo, 🍷 Sulfitos, 🌿 Altramuces, 🐚 Moluscos).
- Opcionalmente añade nota libre ("alérgico al kiwi", "contaminación cruzada").
- Empieza el buffet. La carta no muestra los platos que contengan los alérgenos marcados.
Cómo se marca cada plato con sus alérgenos
Cada plato de tu carta tiene un campo Alérgenos (en Admin → Carta → editar plato) donde marcas los alérgenos que contiene. Si no lo configuras, el plato no se filtrará — siempre será visible.
«Contiene» vs «Puede contener (trazas)»
En Admin → Carta → editar plato hay dos selectores de alérgenos, siguiendo el Reglamento UE 1169/2011:
- Alérgenos (contiene) — los que el plato lleva como ingrediente. Si el plato tiene receta, Mesero los calcula solos desde los ingredientes; si no tiene receta, los marcas a mano. Estos sí filtran: el buffet esconde y la cocina rechaza los platos que contengan un alérgeno declarado por el cliente.
- Puede contener (trazas) — contaminación cruzada (se elabora en una cocina donde también se manipula ese alérgeno). Es siempre manual y «Recalcular todo» nunca lo borra. Se muestra como un aviso «⚠ puede contener» (p. ej. en el pedido online); no esconde el plato en el filtro del buffet — un cliente con intolerancia leve no se queda sin opciones por una traza.
Cambiar los alérgenos a mitad de buffet
Si el cliente se da cuenta de que se olvidó un alérgeno, puede tocar el chip de alergia desde el menú y modificar la selección. La carta se actualiza al instante y los nuevos filtros se aplican al instante a la cocina — las rondas siguientes ya no admitirán platos prohibidos.
Bloqueo de seguridad en el servidor
El filtro no es sólo cosmético: el servidor también verifica cada ronda justo antes de enviarla a cocina. Si por cualquier motivo un plato con el alérgeno marcado llega al pedido (carta caché vieja, tablet desactualizada, intento manipulado), la ronda se rechaza con un mensaje claro y la cocina no la ve.
- Error
allergen_conflict(HTTP 409) con la lista de platos bloqueados y el ID del alérgeno responsable. - El cliente ve un toast: "Algunos platos contienen alérgenos marcados — refresca el menú o ajusta los filtros".
- No se cobra nada extra ni se cierra la sesión — basta con que el cliente quite el plato y vuelva a enviar.
Este doble check (cliente esconde + servidor rechaza) es lo que cumple RGSAA / EU FIC sin depender del front-end.
Lo que ve la cocina
Cada comanda del buffet incluye los alérgenos declarados como nota visible — además del texto libre — en la cabecera, antes de los items. Ejemplo de comanda impresa:
┌─────────────────────────────────┐
│ 🍱 Mesa 5 · R3 · 4 comensales │
│ ⚠ ALERGIA: Soja, Frutos de │
│ cáscara · "celíaco, sin │
│ contaminación" │
│ ─────────────────────────────── │
│ 2x Beef Fried Rice │
│ 1x Sesame Chicken │
└─────────────────────────────────┘
Los nombres de los alérgenos se imprimen en el idioma principal del restaurante (es/en/ca/ja/zh). El KDS pinta una franja roja por encima del ticket cuando hay alergia declarada, así cocina lo ve sin tener que leer la línea entera.
¿Cobras menos al filtrar?
No. El cubierto se cobra igual independientemente de cuántos platos elija el cliente. El filtro es una medida de seguridad — evita que un cliente con alergia toque por error un plato peligroso. Tampoco le quita la opción de pedir libremente del resto de la carta.
Trazabilidad
Cada cambio de alérgenos en una sesión se guarda con timestamp en la sesión del buffet. Si un cliente reclama, puedes consultar exactamente qué declaró y a qué hora — útil para responder con rapidez en incidentes alimentarios.
Carta sin alérgenos marcados
Si tu carta es nueva y aún no has marcado los 14 alérgenos en cada plato, el filtro siempre verá "ningún alérgeno" y no esconderá nada. Eso es menos seguro que tener todo marcado. Te conviene programar una sesión de 30 min con tu chef y rellenar los alérgenos plato a plato (o pedir importación CSV a soporte si tu carta es grande).