📄 Documentación de Procesos – CatalogQR (Agnostic SaaS)
Este documento describe el flujo operativo de la plataforma CatalogQR, un ecosistema SaaS diseñado para la digitalización de inventarios y catálogos interactivos. El sistema es totalmente agnóstico, permitiendo que cualquier unidad de negocio (Retail, Servicios, Gastronomía, etc.) publique su oferta de manera profesional mediante códigos QR.
🏗️ Arquitectura y Actores
- Super Admin (Staff): Administra la plataforma y planes a nivel global.
- Merchant (Negocio): Entidad que gestiona su inventario y recibe órdenes.
- Customer (Público): Usuario final que interactúa con el catálogo vía QR.
🔄 Proceso 1: Ciclo de Vida de una Orden (End-to-End)
Este proceso describe el viaje desde que un cliente llega al establecimiento hasta que recibe su pedido.
- Ingreso y Autenticación de Ubicación:
- El Cliente escanea el código QR físico.
- Sistema: Captura el
slugdel negocio y opcionalmente eltable_number.
- Exploración del Catálogo:
- SvelteKit consulta la tabla
productsfiltrando porbusiness_id(Aislamiento RLS). - Decisión: ¿El producto tiene stock? Si no (
stock_quantity < 1), se muestra como “No disponible”.
- SvelteKit consulta la tabla
- Configuración del Carrito:
- El Cliente selecciona productos y define
extras(ej. ingredientes adicionales o tallas). - El sistema calcula el
subtotaldinámicamente usando los precios de la DB.
- El Cliente selecciona productos y define
- Checkout e Integración de Pagos (Wompi):
- Firma de Integridad: El backend genera un hash SHA-256 combinando:
referencia + monto + integridad_secret. - Redirect: Se abre el Widget de Wompi.
- Gateway: ¿Pago Exitoso?
- NO: El cliente regresa al carrito con un mensaje de error.
- SÍ: Wompi dispara un Webhook al endpoint
/api/webhooks/wompi.
- Firma de Integridad: El backend genera un hash SHA-256 combinando:
- Procesamiento de la Orden:
- Base de Datos: Se crea el registro en
ordersyorder_items. El estado inicial espendingopaidsegún el webhook. - Inventario: Se ejecuta el trigger
update_stock_on_orderpara descontar cantidades.
- Base de Datos: Se crea el registro en
- Notificación Multi-canal:
- WhatsApp: El sistema envía un mensaje automático al Merchant vía WAHA.
- Live Dashboard: El Merchant ve la orden aparecer en tiempo real (Supabase Realtime).
- Despacho y Cierre:
- El Merchant cambia el estado a
confirmed→in_delivery→delivered. - Cierre: El proceso termina cuando el estado es
delivered.
- El Merchant cambia el estado a
🎫 Proceso 2: Gestión de Soporte Técnico (SaaS Helpdesk)
Flujo interno para garantizar la continuidad operativa de los comercios.
- Detección de Incidencia: El Merchant encuentra un problema y accede al panel de soporte.
- Creación del Ticket:
- Ingresa
Sujeto,DescripciónyPrioridad(Baja, Media, Alta, Crítica). - DB: Inserción en
support_tickets.
- Ingresa
- Triage y Asignación:
- El Staff (Super Admin) recibe notificación y cambia estado a
in_progress. - Se crea un hilo en
support_messagespara comunicación directa.
- El Staff (Super Admin) recibe notificación y cambia estado a
- 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.
- Decisión: ¿Se requiere cambio de código o base de datos?
- Validación y Cierre:
- El Staff marca como
resolved. - El Merchant recibe email de confirmación (SMTP2GO).
- El Staff marca como
💳 Proceso 3: Onboarding y Configuración de Comercio
Flujo de entrada de un nuevo cliente al ecosistema SaaS.
- Registro de Identidad: El usuario crea su cuenta (
merchant_profiles). - Configuración del Tenant:
- Se define el
slugúnico y nombre del negocio (businesses). - Se vincula un Plan SaaS (ej. Pro, Premium) que define límites de productos.
- Se define el
- Aprovisionamiento de Pagos:
- El Merchant ingresa sus propias Keys de Wompi en el panel de configuración.
- El sistema valida la conectividad con la pasarela.
- Carga de Inventario:
- Creación de categorías y productos iniciales.
- Generación del Código QR Maestro con branding personalizado.
📊 Guía para Diagramación (BPMN / Swimlanes)
Si estás realizando el diagrama para tu actividad, te recomiendo usar estas Calles (Lanes):
- Cliente: Inicia el flujo, elige productos y paga.
- Sistema (CatalogQR): Procesa lógica, calcula subtotales y valida firmas.
- Pasarela (Wompi): Procesa la transacción bancaria.
- Merchant (Negocio): Recibe notificaciones y prepara el pedido.
- Staff (Soporte): Solo interviene en el Proceso 2.