📄 Documentación de Procesos – MenuQR

Este documento describe el flujo operativo de la plataforma MenuQR, un ecosistema SaaS para la digitalización de menús y catálogos de restaurantes mediante códigos QR.


🏗️ Arquitectura y Actores

  1. Staff / Super Admin: Administra la plataforma, planes y soporte a nivel global.
  2. Merchant (Negocio): Entidad que gestiona su menú, recibe y procesa órdenes.
  3. Customer (Público): Usuario final que interactúa con el menú vía QR.

🔄 Proceso 1: Ciclo de Vida de una Orden (End-to-End)

  1. Ingreso al Menú:

    • El Cliente escanea el código QR físico en el restaurante.
    • Sistema: Captura el slug del negocio y carga el menú desde /c/[slug].
  2. Exploración del Menú:

    • SvelteKit consulta la tabla products filtrando por business_id (Aislamiento RLS).
    • Los productos se agrupan por categorías con sort_order.
    • Productos sin stock se muestran como “No disponible”.
  3. Configuración del Carrito:

    • El Cliente selecciona productos y define cantidades y notas especiales.
    • El sistema calcula el subtotal dinámicamente usando los precios de la DB.
  4. Checkout e Integración de Pagos (Wompi):

    • Firma de Integridad: El backend genera un hash SHA-256 combinando: referencia + monto + integrity_secret.
    • Widget: Se abre el Widget de Wompi para el pago.
    • Gateway: ¿Pago Exitoso?
      • NO: El cliente regresa al carrito con un mensaje de error.
      • : Wompi dispara un Webhook al endpoint /api/wompi/webhook.
  5. Procesamiento de la Orden:

    • Base de Datos: Se crea el registro en orders y order_items. Estado inicial: pending.
    • Notificación sonora: El merchant escucha el sonido de nuevo pedido (Web Audio API).
    • Realtime: La orden aparece automáticamente en el Kanban del merchant.
  6. Gestión de la Orden (Kanban):

    • El Merchant mueve la orden por estados: pendingconfirmedin_deliverydelivered.
    • Puede editar items, datos del cliente, método de pago y dirección.
    • Puede aprobar o rechazar propuestas de cambio del cliente.
  7. Comunicación con el Cliente:

    • El Merchant usa plantillas predefinidas con wa.me para notificar estados por WhatsApp.
  8. Cierre:

    • El proceso termina cuando el estado es delivered o cancelled.

🎫 Proceso 2: Gestión de Soporte Técnico (SaaS Helpdesk)

  1. Detección de Incidencia: El Merchant encuentra un problema y accede al panel de soporte desde /dashboard/support.

  2. Creación del Ticket:

    • Ingresa Asunto, Descripción y Prioridad (Baja, Media, Alta, Crítica).
    • DB: Inserción en support_tickets.
  3. Triage y Asignación:

    • El Staff (Super Admin) recibe notificación y cambia estado a in_progress.
    • Se crea un hilo en support_messages para comunicación directa en tiempo real (Supabase Realtime).
  4. Resolución:

    • Decisión: ¿Se requiere cambio de código o base de datos?
      • SÍ: Se escala a Hotfix en Gitflow.
      • NO: Se resuelve mediante configuración o respuesta directa.
  5. Validación y Cierre:

    • El Staff marca como resolved.
    • El Merchant puede cerrar el ticket desde su lado.

💳 Proceso 3: Onboarding y Configuración de Comercio

  1. Registro de Identidad: El usuario crea su cuenta desde /register.

  2. Configuración del Negocio:

    • Se define el slug único, nombre, logo y datos del negocio (businesses).
    • Se asigna un Plan SaaS que define límites (categorías, productos, pedidos).
  3. Carga de Inventario:

    • Creación de categorías y productos iniciales desde /dashboard/catalog.
    • Generación del Código QR Maestro con tarjeta descargable desde /dashboard/qr.
  4. Configuración de Pagos (Opcional):

    • El Merchant puede ingresar sus propias Keys de Wompi en /dashboard/settings/payments para recibir pagos directos (B2C).
  5. Suscripción al SaaS:

    • El Merchant selecciona y paga un plan desde /dashboard/settings/billing usando el widget de Wompi.

📊 Guía para Diagramación (BPMN / Swimlanes)

Para diagramar los procesos, usar estas Calles (Lanes):

LaneResponsabilidad
ClienteEscanea QR, elige productos, paga
Sistema (MenuQR)Procesa lógica, calcula totales, valida firmas, notifica
Pasarela (Wompi)Procesa la transacción bancaria
Merchant (Negocio)Recibe órdenes, prepara pedidos, cambia estados
Staff (Soporte)Interviene solo en el Proceso 2 (tickets)

🔗 Documentación Relacionada