| Proyecto: | MercariX POS & Control de Inventario |
| Metodología de Desarrollo: | Scrum / Desarrollo Ágil de Software |
| Versión de Documento: | 1.0.0 Pro |
| Fecha de Emisión: | Agosto 2026 |
| Estado: | Aprobado y Verificado en Producción |
El presente documento especifica los requerimientos funcionales, requerimientos no funcionales y el backlog de historias de usuario con sus respectivos criterios de aceptación para el sistema de ventas e inventario MercariX POS.
| Código | Nombre del Requerimiento | Descripción Funcional | Prioridad |
|---|---|---|---|
| RF-01 | Autenticación y Roles | El sistema debe autenticar usuarios (email/password) y restringir vistas según el rol (Administrador o Auxiliar de Caja). | Alta |
| RF-02 | Apertura de Caja | El sistema debe exigir registrar un monto base inicial en efectivo antes de permitir procesar cualquier venta. | Alta |
| RF-03 | Lector de Código de Barras | La terminal POS debe capturar códigos de barras en un campo con autofocus y agregar ítems al carrito instantáneamente. | Alta |
| RF-04 | Multi-Método de Pago | Permitir cobros en Efectivo (con devuelta), Nequi 📲 (con # de referencia) y FIAR (Crédito). | Alta |
| RF-05 | Categorización de Inventario | Clasificar productos en categorías: Comestibles, Pastas, Accesorios, Belleza, Aseo, Fotografía, Papelería, Electrónica. | Media |
| RF-06 | Autogeneración de Barcodes | Generar código EAN/Code128 único de 12 dígitos (770...) y permitir visualizar/imprimir la etiqueta de código de barras. |
Alta |
| RF-07 | Control de Cupo de Fiados | Validar que las ventas a crédito no superen el cupo de endeudamiento configurado para el cliente. | Alta |
| RF-08 | Abonos y Alerta "Al Día" | Permitir abonar a la deuda de un cliente. Si el saldo restante llega a $0 COP, desplegar el modal "¡El usuario está al día!". | Alta |
| RF-09 | Cierre y Arqueo de Caja | Calcular el efectivo esperado, comparar con el contado en cajón, determinar diferencia/faltante e imprimir comprobante. | Alta |
| RF-10 | WhatsApp Notificaciones (Día 30) | Generar mensajes de cobro personalizados vía WhatsApp e integrar un Cron Job para el día 30 de cada mes. | Media |
| RF-11 | Dashboard de Ganancias Netas | Calcular utilidad neta real como (Precio Venta - Precio Costo) * Cantidad y alertar productos en stock crítico. |
Alta |
| RF-12 | Comprobante de Venta Impreso | Generar e imprimir el recibo de venta detallando ítems, método de pago y referencia Nequi si aplica. | Alta |
| Código | Atributo | Descripción Técnica del Requerimiento |
|---|---|---|
| RNF-01 | Rendimiento | Las respuestas de las APIs REST en PHP no deben superar los 200ms de latencia en peticiones locales. |
| RNF-02 | Seguridad | Las contraseñas de usuario deben encriptarse mediante algoritmos de hash seguros (Bcrypt / PASSWORD_DEFAULT). |
| RNF-03 | Usabilidad | La interfaz debe utilizar diseño oscuro moderno (Dark Mode), tipografía limpia y contraste accesible. |
| RNF-04 | Disponibilidad | El sistema debe funcionar de manera autónoma en servidor local WampServer sin dependencia obligatoria de internet externa. |
| RNF-05 | Compatibilidad | Garantizar renderizado correcto en navegadores modernos: Google Chrome, Microsoft Edge, Mozilla Firefox y Brave. |
| RNF-06 | Impresión PDF | Los módulos de recibos, arqueos de caja y manuales deben contar con reglas CSS @media print para salida limpia a PDF. |
Como cajero o administrador del negocio,
Quiero registrar el monto inicial en efectivo al iniciar mi turno de trabajo,
Para que el sistema controle el dinero recaudado y me permita procesar ventas de forma segura.
🔓 Caja Abierta ($100.000).
Como cajero de MercariX POS,
Quiero escanear códigos de barras con la pistola lectora,
Para que los productos se agreguen automáticamente al carrito sin buscarlos manualmente.
770123456789, entonces el producto se agrega al carrito y el campo se limpia para la siguiente lectura.
Como cliente o cajero,
Quiero seleccionar Nequi como método de pago e ingresar el número de comprobante,
Para que la venta quede registrada como dinero electrónico y no genere descuadres en el efectivo físico.
📲 Nequi e ingreso la referencia M12345678, entonces la factura se procesa con éxito y el recibo impreso detalla "Ref. Nequi: M12345678".
Como cliente frecuente de MercariX POS,
Quiero llevar mercancía fiada a mi cuenta registrada,
Para que pueda pagarla o abonarla posteriormente según mi cupo aprobado.
FIAR, entonces el sistema exige seleccionar cliente.Como administrador de inventario,
Quiero autogenerar un código de barras único para un nuevo producto,
Para que el producto tenga su etiqueta EAN/Code128 lista para imprimir y etiquetar.
⚡ Autogenerar, entonces se genera un código único de 12 dígitos iniciando por 770....
Como cobrador de cartera,
Quiero registrar los abonos de los clientes fiados,
Para que su deuda se reduzca y el sistema me alerte cuando quede en cero.
Como cajero al terminar mi turno,
Quiero realizar el arqueo de caja registrando el dinero contado,
Para que el sistema audite la concordancia entre las ventas realizadas y el dinero en cajón.
Como administrador del negocio,
Quiero enviar recordatorios automáticos de cobro por WhatsApp a los deudores los días 30 de cada mes,
Para que los clientes reciban su mensaje de corte mensual y realicen sus abonos a tiempo.
📱 Enviar Mensaje), entonces se abre la API de WhatsApp con el mensaje personalizado formateado en su número telefónico.
| Requerimiento Funcional | Historia de Usuario Asociada | Módulo de Código Implementado |
|---|---|---|
| RF-01 (Autenticación) | HU-01 (Control de Turno) | backend/api/auth.php, AuthContext.jsx |
| RF-02 (Apertura de Caja) | HU-01 (Control de Turno) | backend/api/cash_session.php, CashSessionModal.jsx |
| RF-03 (Lector Barcode) | HU-02 (Escaneo Rápido) | frontend/src/pages/PosTerminal.jsx |
| RF-04 (Multi-Método Pago) | HU-03 (Nequi), HU-04 (Fiado) | backend/api/sales.php, PosTerminal.jsx |
| RF-06 (Autogenerador Barcodes) | HU-05 (Autogeneración Barcodes) | backend/api/products.php, BarcodeVisualizer.jsx |
| RF-08 (Abonos & Alerta Al Día) | HU-06 (Abonos & Celebración) | backend/api/credit.php, UpToDateAlert.jsx |
| RF-09 (Cierre & Arqueo) | HU-07 (Arqueo Auditoría) | backend/api/cash_session.php, CashSessionModal.jsx |
| RF-10 (WhatsApp Día 30) | HU-08 (Recordatorios WhatsApp) | backend/api/whatsapp.php, CreditManager.jsx |
Firma Analista de Requerimientos / Product Owner
Firma Cliente / Gerencia MercariX POS