12. Configuración general
Cubre stores (CRUD + StoreSettings: modo de negocio, cliente en POS, moneda, denominaciones, carta online, cámara, pantalla de cocina) y ai (config del motor de IA, no la conversación en sí — eso está en 11. Asistente IA). Los roles/permisos se prueban en 1. Autenticación y usuarios (AUTH-12 a AUTH-19), y los campos personalizados en 3. Catálogo de productos (CF-01/CF-02) — no se repiten aquí.
Historial de ejecución
| Ciclo | Fecha | Ejecutado por | Casos ejecutados | Resultado |
|---|---|---|---|---|
| 1 | — | — | — | Pendiente |
Tiendas
CP TDA-01: Crear segunda tienda para la misma empresa
- Resultado esperado: cada tienda tiene su propio
menu_slug, settings independientes, y aparece en el selector de tienda de toda la app.- Resultado obtenido: Pendiente.
CP TDA-02: Crear tienda con
menu_slugduplicado (igual al de otra tienda, misma o distinta empresa)
- Resultado esperado a verificar: el slug se usa en la URL pública (
/public/menu/:slug) — confirmar si hay unicidad forzada. Si dos tiendas de empresas distintas pudieran compartir el mismo slug, la carta online de una tapa la de la otra.- Resultado obtenido: Pendiente.
CP TDA-03: Subir logo con archivo no-imagen o excesivamente pesado
- Resultado esperado: mismo criterio que PROD-11/PROD-12 — rechazo claro por tipo/tamaño real.
- Resultado obtenido: Pendiente.
CP TDA-04: Desactivar la única tienda de la empresa
- Resultado esperado a verificar: ¿el sistema lo permite sin aviso, dejando a la empresa sin ninguna tienda operativa para vender? Debería al menos advertir.
- Resultado obtenido: Pendiente.
Modo de negocio
CP CFG-01: Cambiar
business_mode(ej. de “restaurante” a “retail”) con datos ya creados
- Resultado esperado a verificar: confirmar qué partes de la UI cambian (¿aparecen/desaparecen mesas, KDS, recetas?) y si productos/configuración ya creados bajo el modo anterior quedan en un estado inconsistente.
- Resultado obtenido: Pendiente.
POS — Cliente
CP CFG-02:
customerMode: "required"— intentar completar una venta sin cliente
- Resultado esperado: debe bloquear el cobro hasta elegir o crear un cliente.
- Resultado obtenido: Pendiente.
CP CFG-03:
customerMode: "never"— confirmar que ni siquiera aparece la opción de elegir cliente
- Resultado esperado: la UI del POS no debe mostrar el selector de cliente en absoluto.
- Resultado obtenido: Pendiente.
Moneda y denominaciones
CP CFG-04: Cambiar
currencyCode/currencyDecimalscon ventas ya registradas en la moneda anterior
- Resultado esperado a verificar: las ventas históricas, ¿se muestran recalculadas en la nueva moneda (incorrecto, sería una conversión falsa) o mantienen su valor numérico original con el nuevo símbolo (también cuestionable si cambia el número de decimales)? Documentar el comportamiento real — es un caso límite que puede confundir a un negocio que de verdad cambie de moneda.
- Resultado obtenido: Pendiente.
CP CFG-05: Denominaciones de efectivo — conteo de caja usando las denominaciones configuradas
- Resultado esperado: al cerrar caja, si la pantalla ofrece contar por denominación (billetes/monedas), la suma debe coincidir exactamente con el total ingresado manualmente como
closing_amount(ver CAJ-04).- Resultado obtenido: Pendiente.
Pantalla de cocina (KDS) — configuración
CP CFG-06: Activar
kdsEnabledy definirkdsTables(mesas)
- Resultado esperado: las mesas definidas deben aparecer como opciones al crear una venta
helddesde el POS.- Resultado obtenido: Pendiente.
CP CFG-07: Desactivar
kdsEnabledcon órdenesheldya pendientes en cocina
- Resultado esperado a verificar: ¿las órdenes pendientes siguen siendo accesibles para marcarlas como servidas, o quedan huérfanas al desactivar la pantalla de cocina?
- Resultado obtenido: Pendiente.
Carta online — configuración
CP CFG-08: Activar
onlineMenuy personalizarmenuPrimaryColor
- Resultado esperado: el color se refleja en
/public/menu/:slug.- Resultado obtenido: Pendiente.
CP CFG-09: Desactivar
onlineMenucon unslugque clientes ya tienen guardado/escaneado
- Resultado esperado: la URL debe mostrar un mensaje claro de “carta no disponible”, no un error técnico ni una carta vacía sin explicación.
- Resultado obtenido: Pendiente.
Cámara
CP CFG-10: Configurar cámara para escaneo de código de barras y escanear un producto con
barcoderegistrado
- Resultado esperado: debe encontrar el producto correcto en el POS.
- Resultado obtenido: Pendiente.
CP CFG-11: Escanear un código de barras que no corresponde a ningún producto
- Resultado esperado: mensaje claro de “no encontrado”, no un error silencioso.
- Resultado obtenido: Pendiente.
Motor de IA (configuración, no la conversación)
CP CFG-12: Configurar un proveedor de IA válido (ej. Ollama local) y guardar
- Resultado esperado: la API key se guarda encriptada; al volver a abrir la pantalla, se muestra enmascarada (
text_api_key_mask), nunca el valor real.- Resultado obtenido: Pendiente.
CP CFG-13: Configurar un modelo “simple” distinto al modelo principal (
simple_provider/simple_model)
- Resultado esperado: el chat debe poder usar el modelo ligero cuando el frontend envíe
simple: true— confirmar si hay alguna opción visible en el chat para elegirlo, o es solo interno.- Resultado obtenido: Pendiente.
CP CFG-14: Guardar configuración de IA con credenciales inválidas (API key incorrecta)
- Resultado esperado a verificar: ¿el backend valida la credencial contra el proveedor real al guardar, o solo la guarda y falla después, en medio de una conversación del chat? Si falla tarde, el mensaje de error que ve el usuario en el chat debe ser comprensible, no un error crudo del SDK del proveedor.
- Resultado obtenido: Pendiente.
Notas de usabilidad y sugerencias
Se completa durante la ejecución.