| id |
title |
type |
status |
priority |
module |
version |
created_date |
updated_date |
total_requirements |
implemented |
pending |
owner |
tags |
| RF-MCH-001 |
Requerimientos Funcionales MiChangarrito |
Requirement |
Approved |
P0 |
core |
1.1.0 |
2026-01-04 |
2026-01-10 |
20 |
15 |
5 |
Product Team |
| requerimientos |
| funcional |
| saas |
|
MiChangarrito - Requerimientos Funcionales
| Campo |
Valor |
| ID |
RF-MCH-001 |
| Tipo |
Requirement Specification |
| Estado |
Approved |
| Total Requisitos |
20 |
| Implementados |
15 (75%) |
| Pendientes |
5 |
| Version |
1.1.0 |
Indice de Requerimientos
| ID |
Nombre |
Prioridad |
Estado |
Epica |
| RF-001 |
Punto de Venta (POS) |
P0 |
Implementado |
MCH-004 |
| RF-002 |
Catalogo de Productos |
P0 |
Implementado |
MCH-003 |
| RF-003 |
Inventario |
P0 |
Implementado |
MCH-009 |
| RF-004 |
Sistema de Fiados |
P1 |
Implementado |
MCH-008 |
| RF-005 |
Clientes |
P1 |
Implementado |
MCH-014 |
| RF-006 |
Pedidos de Clientes |
P1 |
Implementado |
MCH-015 |
| RF-007 |
Asistente IA (LLM) |
P0 |
Implementado |
MCH-010 |
| RF-008 |
WhatsApp Business |
P0 |
Implementado |
MCH-011 |
| RF-009 |
Pagos y Suscripciones |
P0 |
Implementado |
MCH-005 |
| RF-010 |
Reportes y Analytics |
P1 |
Implementado |
MCH-021 |
| RF-011 |
Notificaciones |
P1 |
Implementado |
MCH-017 |
| RF-012 |
Modo Offline |
P1 |
Implementado |
MCH-022 |
| RF-013 |
Integraciones Terminal |
P0 |
Implementado |
MCH-005 |
| RF-014 |
Onboarding |
P1 |
Implementado |
MCH-006 |
| RF-015 |
Seguridad y Acceso |
P0 |
Implementado |
MCH-002 |
| RF-016 |
Programa de Referidos |
P2 |
Pendiente |
MCH-023 |
| RF-017 |
Soporte |
P2 |
Parcial |
- |
| RF-018 |
Audit Logs |
P1 |
Pendiente |
- |
| RF-019 |
Feature Flags |
P1 |
Pendiente |
- |
| RF-020 |
Rate Limiting |
P1 |
Pendiente |
- |
RF-001: Punto de Venta (POS)
| Campo |
Valor |
| ID |
RF-001 |
| Prioridad |
P0 |
| Estado |
Implementado |
| Epica |
MCH-004 |
RF-001.1: Registro de Ventas
- Agregar productos manualmente o por búsqueda
- Escanear código de barras (cámara del celular)
- Ajustar cantidad de productos
- Aplicar descuentos (porcentaje o monto fijo)
- Calcular total automáticamente
- Mostrar desglose de productos
RF-001.2: Métodos de Cobro
- Efectivo: Ingresar monto recibido, calcular cambio
- Tarjeta Mercado Pago: Conexión Bluetooth con terminal
- Tarjeta Clip: Conexión Bluetooth con terminal
- CoDi: Generar QR de cobro, esperar confirmación
- Transferencia SPEI: Mostrar CLABE virtual, confirmar manual
- Fiado/Crédito: Registrar deuda a cliente
RF-001.3: Tickets y Comprobantes
- Generar ticket digital (imagen/PDF)
- Enviar por WhatsApp al cliente
- Imprimir en impresora térmica Bluetooth (opcional)
- Historial de tickets
RF-001.4: Corte de Caja
- Corte parcial (sin cerrar día)
- Corte de día completo
- Resumen por método de pago
- Diferencia efectivo esperado vs real
- Enviar resumen por WhatsApp
Criterios de Aceptacion
Feature: RF-001 - Punto de Venta (POS)
Scenario: Registrar venta con efectivo
Given el usuario esta autenticado como dueno
And tiene productos en el carrito por $150 MXN
When selecciona "Efectivo" como metodo de pago
And ingresa $200 como monto recibido
Then el sistema calcula cambio de $50 MXN
And genera ticket de venta
And actualiza inventario
Scenario: Corte de caja
Given hay ventas registradas en el dia
When el usuario solicita "Corte de caja"
Then muestra resumen por metodo de pago
And calcula diferencia esperado vs real
And envia resumen por WhatsApp
RF-002: Catalogo de Productos
RF-002.1: Gestión de Productos
- Crear producto (nombre, precio, código de barras)
- Editar producto
- Eliminar/desactivar producto
- Categorizar productos
- Foto del producto (opcional)
- Precio de compra (para calcular margen)
RF-002.2: Importación de Productos
- Desde foto (OCR de lista de precios)
- Desde archivo Excel/CSV
- Desde templates predefinidos (Bimbo, Coca-Cola, etc.)
- Desde audio (transcripción y procesamiento IA)
- Copia de otro negocio similar (con permiso)
RF-002.3: Templates de Proveedores
- Bimbo: Pan, galletas, pastelitos
- Coca-Cola/FEMSA: Refrescos, jugos, agua
- PepsiCo: Sabritas, Gamesa, bebidas
- Modelo/Corona: Cervezas (donde aplique)
- Ricolino: Dulces, chocolates
- Genéricos: Productos básicos de abarrotes
- Giros específicos: Taquería, fonda, nevería
RF-002.4: Variantes y Presentaciones
- Mismo producto, diferentes tamaños
- Precios por presentación
- Código de barras por variante
RF-003: Inventario
RF-003.1: Control de Stock
- Stock actual por producto
- Stock mínimo configurable
- Alertas de stock bajo (WhatsApp y push)
- Historial de movimientos
RF-003.2: Entradas de Inventario
- Registro de compras a proveedor
- Entrada desde foto de nota/factura (OCR)
- Ajustes manuales (merma, robo, etc.)
RF-003.3: Predicción de Resurtido
- Análisis de ventas históricas
- Sugerencia de cuánto comprar
- Alertas proactivas: "En 3 días se te acaba la Coca"
RF-004: Sistema de Fiados/Crédito
RF-004.1: Registro de Fiados
- Fiar a cliente identificado
- Monto máximo de crédito por cliente
- Fecha límite de pago (opcional)
- Notas del fiado
RF-004.2: Gestión de Cobros
- Lista de fiados pendientes por cliente
- Total de fiados del negocio
- Marcar como pagado (parcial o total)
- Recordatorios automáticos por WhatsApp al cliente
RF-004.3: Historial
- Historial de fiados por cliente
- Clientes morosos
- Reporte de fiados
RF-005: Clientes
RF-005.1: Registro de Clientes
- Nombre, teléfono (WhatsApp)
- Dirección (para entregas)
- Notas
- Registro automático desde WhatsApp
RF-005.2: Historial de Cliente
- Compras realizadas
- Fiados pendientes y pagados
- Productos frecuentes
- Total gastado
RF-005.3: Comunicación
- Enviar mensaje por WhatsApp
- Notificaciones de promociones
- Recordatorios de fiado
RF-006: Pedidos de Clientes
RF-006.1: Recepción de Pedidos
- Cliente envía pedido por WhatsApp
- LLM interpreta y estructura el pedido
- Notificación push al dueño
- Vista de pedidos pendientes
RF-006.2: Procesamiento
- Aceptar/rechazar pedido
- Modificar pedido
- Confirmar disponibilidad de productos
- Calcular total
RF-006.3: Cobro de Pedido
- Link de pago (Stripe)
- Pago presencial con terminal
- Pago en efectivo al entregar
- CoDi
RF-006.4: Entregas a Domicilio
- Marcar pedido como "para entrega"
- Dirección del cliente
- Costo de envío configurable
- Estado: preparando, en camino, entregado
RF-007: Asistente IA (LLM)
| Campo |
Valor |
| ID |
RF-007 |
| Prioridad |
P0 |
| Estado |
Implementado |
| Epica |
MCH-010 |
RF-007.1: Canales de Comunicacion
- WhatsApp (principal)
- Chat in-app
- Comandos de voz (futuro)
RF-007.2: Capacidades para Dueño del Negocio
- Consultar ventas: "¿Cuánto vendí hoy/esta semana/este mes?"
- Consultar ganancias: "¿Cuál es mi utilidad de hoy?"
- Consultar inventario: "¿Cuántas Coca-Colas tengo?"
- Alertas: "¿Qué me falta por resurtir?"
- Predicciones: "¿Cuándo debo comprar más pan?"
- Registrar venta por chat: "Vendí 2 refrescos y una torta"
- Agregar producto: "Agrega un producto nuevo: Doritos a $18"
- Generar reportes: "Mándame el reporte de la semana"
- Configurar: "Cambia el precio de la Coca a $22"
RF-007.3: Capacidades para Clientes
- Identificación: Detectar que es cliente (no dueño)
- Consultar productos: "¿Tienen refrescos?"
- Hacer pedido: "Quiero 3 tacos y una Coca"
- Preguntar precios: "¿A cómo el kilo de tortilla?"
- Estado de pedido: "¿Ya está mi pedido?"
- Horarios: "¿A qué hora abren?"
RF-007.4: MCP Server - Herramientas
TOOLS DISPONIBLES:
# Ventas
- registrar_venta(productos, metodo_pago, cliente?)
- obtener_ventas(periodo, filtros?)
- generar_corte_caja()
- calcular_ganancias(periodo)
# Productos
- buscar_producto(query)
- crear_producto(datos)
- actualizar_producto(id, datos)
- obtener_precio(producto)
# Inventario
- consultar_stock(producto?)
- registrar_entrada(productos)
- obtener_alertas_stock()
- predecir_resurtido(producto?)
# Clientes
- buscar_cliente(telefono)
- crear_cliente(datos)
- historial_cliente(cliente_id)
- enviar_mensaje_cliente(cliente_id, mensaje)
# Fiados
- registrar_fiado(cliente_id, monto, descripcion)
- obtener_fiados(cliente_id?)
- marcar_fiado_pagado(fiado_id, monto?)
# Pedidos
- crear_pedido(cliente_id, productos)
- obtener_pedidos(estado?)
- actualizar_pedido(pedido_id, estado)
- enviar_link_pago(pedido_id)
# Reportes
- generar_reporte(tipo, periodo, formato)
- enviar_reporte_whatsapp(reporte, destino)
- exportar_excel(datos)
# Configuracion
- obtener_configuracion(clave?)
- actualizar_configuracion(clave, valor)
- obtener_horarios()
- actualizar_horarios(horarios)
Criterios de Aceptacion
Feature: RF-007 - Asistente IA (LLM)
Scenario: Dueno consulta ventas por WhatsApp
Given el usuario es el dueno del negocio
And el negocio tiene saldo de tokens > 0
When envia mensaje "Cuanto vendi hoy?"
Then el LLM detecta intencion de consulta de ventas
And ejecuta tool obtener_ventas(periodo="hoy")
And responde con total de ventas del dia
And descuenta tokens utilizados
Scenario: Cliente hace pedido por WhatsApp
Given el usuario es un cliente (no dueno)
When envia mensaje "Quiero 3 tacos y una coca"
Then el LLM detecta que es cliente
And detecta intencion de pedido
And estructura el pedido con productos
And notifica al dueno del negocio
And responde al cliente con confirmacion
Scenario: Sin saldo de tokens
Given el negocio tiene saldo de tokens = 0
When el dueno envia mensaje por WhatsApp
Then el sistema responde con mensaje de saldo agotado
And ofrece opciones de recarga
RF-008: WhatsApp Business
| Campo |
Valor |
| ID |
RF-008 |
| Prioridad |
P0 |
| Estado |
Implementado |
| Epica |
MCH-011 |
RF-008.1: Configuracion de Numero
RF-008.2: Detección de Rol
- Identificar si es dueño o cliente
- Dueño: Acceso completo a gestión
- Cliente: Solo consultas y pedidos
RF-008.3: Mensajes Automatizados
- Bienvenida
- Fuera de horario
- Confirmación de pedido
- Recordatorio de fiado
- Alertas de inventario
RF-008.4: Multimedia
- Recibir y procesar fotos (OCR)
- Recibir y transcribir audios
- Enviar tickets/reportes como imagen
- Enviar documentos PDF
RF-009: Pagos y Suscripciones
RF-009.1: Suscripción del Negocio
- Plan Changarrito ($99/mes)
- Plan Tiendita ($199/mes)
- Cambio de plan
- Cancelación
RF-009.2: Métodos de Pago de Suscripción
- Tarjeta (Stripe) - Recurrente
- OXXO (Stripe) - Referencia única
- Play Store In-App Purchase
- App Store In-App Purchase
RF-009.3: Paquetes de Tokens IA
- Compra de paquetes
- Visualización de saldo
- Historial de consumo
- Alertas de saldo bajo
RF-009.4: Facturación (Opcional)
- Solicitar factura
- Datos fiscales del negocio
- Descarga de facturas
RF-010: Reportes y Analytics
RF-010.1: Dashboard Web
- Ventas del día/semana/mes
- Gráficas de tendencia
- Productos más vendidos
- Comparativas de periodos
RF-010.2: Reportes Generables
- Ventas por periodo
- Inventario actual
- Productos por agotarse
- Fiados pendientes
- Ganancias y márgenes
- Cortes de caja históricos
RF-010.3: Formatos de Exportación
- PDF
- Excel
- Imagen (para WhatsApp)
RF-011: Notificaciones
RF-011.1: Push Notifications
- Nuevo pedido de cliente
- Fiado por vencer
- Stock bajo
- Pago recibido
RF-011.2: WhatsApp
- Resumen diario de ventas
- Alertas de inventario
- Recordatorios configurables
RF-011.3: Configuración
- Activar/desactivar por tipo
- Horarios de no molestar
- Frecuencia
RF-012: Modo Offline
RF-012.1: Funcionalidad Sin Internet
- Registrar ventas
- Consultar productos y precios
- Agregar productos al carrito
- Ver historial local
RF-012.2: Sincronización
- Automática al recuperar conexión
- Manual forzada
- Resolución de conflictos
- Indicador de datos pendientes
RF-013: Integraciones de Terminal
RF-013.1: Mercado Pago
- Pareado Bluetooth con terminal
- Envío de monto a cobrar
- Recepción de confirmación
- Manejo de errores/rechazos
RF-013.2: Clip
- Pareado Bluetooth con terminal
- Envío de monto a cobrar
- Recepción de confirmación
- Manejo de errores/rechazos
RF-013.3: CoDi
- Generación de QR
- Polling de confirmación
- Timeout y reintentos
RF-014: Onboarding
RF-014.1: Registro de Negocio
- Nombre del negocio
- Giro (abarrotes, comida, etc.)
- Ubicación (colonia, ciudad)
- Teléfono del dueño
RF-014.2: Configuración Inicial Guiada
- Vía WhatsApp con LLM
- Paso a paso en app
- Cargar productos iniciales
- Seleccionar templates
RF-014.3: Tutorial
- Primeros pasos interactivo
- Videos cortos
- Tips por WhatsApp los primeros días
RF-015: Seguridad y Acceso
RF-015.1: Autenticación
- Login con teléfono + OTP (SMS/WhatsApp)
- PIN de acceso rápido
- Biométrico (huella/face)
RF-015.2: Roles (Futuro)
- Dueño: Acceso total
- Empleado: Solo ventas
- Contador: Solo reportes
RF-015.3: Datos
- Encriptación en tránsito (HTTPS)
- Encriptación en reposo
- Backups automáticos
RF-016: Programa de Referidos
RF-016.1: Mecánica
- Código/link único por negocio
- Beneficio por referido: 1 mes gratis (ambos)
- Tracking de referidos
RF-016.2: Comunicación
- Compartir por WhatsApp
- Ver referidos activos
- Historial de beneficios
RF-017: Soporte
RF-017.1: Autoservicio
- FAQ en app
- Videos tutoriales
- Asistente IA para dudas
RF-017.2: Humano (Escalación)
- Chat con soporte (cuando IA no resuelve)
- Teléfono de emergencia
- Horario de atención
RF-018: Sistema de Audit Logs
| Campo |
Valor |
| ID |
RF-018 |
| Prioridad |
P1 |
| Estado |
Pendiente |
| Epica |
Pendiente de asignar |
| Referencia SaaS |
SAAS-008 (template-saas) |
RF-018.1: Registro de Eventos
- Log de acciones de usuario (login, logout, cambios)
- Log de operaciones de negocio (ventas, cambios de precio)
- Log de eventos de sistema (errores, integraciones)
- Metadata: timestamp, user_id, tenant_id, ip, action, details
RF-018.2: Consulta de Logs
- Filtros por fecha, usuario, tipo de accion
- Busqueda full-text en detalles
- Exportacion CSV/JSON
- Retencion configurable (90 dias default)
Criterios de Aceptacion
Feature: RF-018 - Audit Logs
Scenario: Registrar accion de venta
Given un usuario realiza una venta
When la transaccion se completa
Then se registra log con action="sale_created"
And incluye tenant_id, user_id, timestamp
And incluye detalles de la venta
Scenario: Consultar logs por fecha
Given existen logs de los ultimos 30 dias
When el admin filtra por fecha "2026-01-10"
Then muestra solo logs de esa fecha
And permite exportar a CSV
RF-019: Feature Flags por Plan
| Campo |
Valor |
| ID |
RF-019 |
| Prioridad |
P1 |
| Estado |
Pendiente |
| Epica |
Pendiente de asignar |
| Referencia SaaS |
SAAS-009 (template-saas) |
RF-019.1: Configuracion de Flags
- Flags globales (on/off para todos)
- Flags por plan (Changarrito vs Tiendita)
- Flags por tenant (override individual)
- UI de administracion para superadmin
RF-019.2: Evaluacion de Flags
- SDK para evaluar flag en backend
- Hook para evaluar flag en frontend
- Cache de evaluaciones
- Default values seguros
Criterios de Aceptacion
Feature: RF-019 - Feature Flags
Scenario: Feature habilitada por plan
Given el tenant tiene plan "Tiendita"
And feature "advanced_reports" esta habilitada para plan Tiendita
When el frontend evalua el flag
Then devuelve enabled=true
And muestra la funcionalidad
Scenario: Feature deshabilitada por plan
Given el tenant tiene plan "Changarrito"
And feature "advanced_reports" NO esta habilitada para plan Changarrito
When el frontend evalua el flag
Then devuelve enabled=false
And oculta la funcionalidad
And muestra mensaje de upgrade
RF-020: Rate Limiting por Plan
| Campo |
Valor |
| ID |
RF-020 |
| Prioridad |
P1 |
| Estado |
Pendiente |
| Epica |
Pendiente de asignar |
| Referencia SaaS |
SAAS-005 (template-saas) |
RF-020.1: Limites por Plan
| Limite |
Changarrito |
Tiendita |
| Transacciones/dia |
200 |
Ilimitadas |
| Productos |
500 |
5,000 |
| Tokens IA/mes |
500 base |
2,000 base |
| Storage (MB) |
100 |
500 |
| Usuarios |
1 |
3 |
RF-020.2: Enforcement
- Middleware de validacion en cada request
- Contadores en Redis
- Reset diario/mensual segun tipo
- Mensajes claros al alcanzar limite
- Upgrade path (link a subir plan)
Criterios de Aceptacion
Feature: RF-020 - Rate Limiting
Scenario: Tenant alcanza limite de transacciones
Given el tenant tiene plan "Changarrito"
And ha registrado 200 transacciones hoy
When intenta registrar transaccion 201
Then recibe error "Limite diario alcanzado"
And muestra opcion de upgrade a plan Tiendita
Scenario: Reset de limite diario
Given el tenant alcanzo limite ayer
When inicia nuevo dia (00:00 UTC)
Then el contador de transacciones se resetea a 0
And puede registrar nuevas transacciones
Referencias
Documentos Relacionados
Inventarios
Patrones de Referencia (template-saas)
| Patron |
Modulo |
| SAAS-008 |
Audit Logs (RF-018) |
| SAAS-009 |
Feature Flags (RF-019) |
| SAAS-005 |
Plans/Limits (RF-020) |
Sistema: SIMCO v3.7.0
Documento: RF-MCH-001 v1.1.0