Garantías y Devoluciones Abrir demo
Caso de estudio · Aplicación web

Plataforma de Garantías y Devoluciones

Lleva cada garantía, devolución y flete desde que el cliente entrega el producto hasta que el caso se cierra, y deja claro quién debe actuar en cada paso.

  • JavaScript
  • Node.js
  • SQLite
  • 9 roles
  • 0 dependencias
  • Cloudflare Tunnel
Probar la demo interactiva Ver el recorrido La demo y todo el material usan datos ficticios.
9roles, cada uno con su propia bandeja
20estados de un caso y 8 ubicaciones físicas
≈ 88 milfacturas históricas consultables
0dependencias externas: JS puro, Node y SQLite
El reto

Una garantía no es un trámite de una sola persona

Involucra a la tienda, al centro de garantías, al técnico, a bodega, a contabilidad y, a veces, a un proveedor. Mientras tanto, el producto físico viaja y los paquetes llegan por transportadora.

Lo difícil de responder sin un sistema

  • ¿En qué paso va este caso y quién tiene que actuar ahora?
  • ¿Sigue vigente la garantía? ¿Y el plazo de retracto, que se cuenta en días hábiles?
  • ¿Lo que salió de la tienda es lo que llegó al centro?
  • ¿Cuántos paquetes llevan días sin abrirse?
  • ¿Quién autorizó esta excepción, y cuándo?

Cómo lo resuelve la plataforma

  • Una bandeja por rol: cada persona ve solo lo que le toca.
  • Dos ejes: estado del caso y ubicación física del producto. Se cierra solo cuando ambos terminan.
  • Políticas que avisan, no estorban: las excepciones se autorizan de forma explícita y quedan trazadas.
  • Papeles que acompañan al producto: comprobantes, relaciones y reportes listos para imprimir.
  • Bitácora completa de quién hizo qué y cuándo.
Recorrido de un caso

Un cambio mano a mano, visto por cinco personas

El mismo caso (G21-002) pasa de mano en mano. Cada clip es lo que ve y hace esa persona, con sus botones y su bandeja.

1
Asesor de punto físico

Registra la garantía con las políticas en vivo

Busca la compra con once filtros combinables. Mientras llena el formulario, la plataforma avisa si la garantía venció, si hace falta evaluación previa o si ya hay casos sobre ese producto. Nada se bloquea: lo que se sale de la política queda como excepción pendiente.

Estado: Ingresado
2
Asesor de punto físico

Entrega el cambio y arma la relación semanal

Registra el traslado y el serial de la unidad nueva, incluye el caso en la relación de envío al centro y registra el flete con su guía y transportadora. La relación se imprime con espacio de firma.

Estado: En tránsito al centro
3
Auxiliar de garantías

Concilia lo que llegó contra lo que se envió

Marca lo que realmente recibió; lo que falta queda como faltante y vuelve a la siguiente relación. Aprueba el ingreso (y, si corresponde, la excepción) y el caso avanza.

Estado: Solución completada
4
Técnico de garantías

Dictamina y define el destino del producto

Emite el reporte (apto o no apto) y decide si el producto va al proveedor o a bodega. Luego genera una relación de entrega por cada destinatario.

Ubicación: En relación de entrega
5
Auxiliar de bodega

Recibe el producto y el caso se cierra solo

Al confirmar la recepción, el producto queda finalizado. Como la solución comercial ya estaba completa, el caso pasa a Cerrado sin que nadie tenga que cerrarlo, y la bitácora conserva cada paso.

Estado: Cerrado

Ver el recorrido completo (1 min 32 s)

Más flujos

Todo lo demás que pasa alrededor del caso

Tres soluciones para toda garantía (cambio mano a mano, nota crédito y devolución de dinero), devoluciones por retracto, fletes, consulta de facturas y administración.

Nueve perfiles de acceso

En la demo se elige un perfil para recorrer la plataforma como cada rol. En la versión servidor el acceso es con usuario y contraseña.

Cada rol, su bandeja

Auxiliar de garantías, técnico (con casos en prioridad), contabilidad y atención al cliente ven únicamente lo que les corresponde.

Nota crédito y devolución de dinero

El reembolso necesita la autorización de atención al cliente antes de llegar a contabilidad, que registra la nota o el reembolso.

Devolución por retracto

Proceso corto, sin revisión técnica. Fuera del plazo (10 días hábiles) se puede aprobar como excepción, con trazabilidad.

Dictamen «no apto» con reporte para el cliente

La plataforma genera el reporte con el concepto técnico y las exclusiones de la política, listo para imprimir o guardar como PDF.

Documentos imprimibles

Comprobante de ingreso en dos copias, relaciones de envío y entrega con firmas, y cierre de cambio.

Control de fletes

Plazo máximo de 2 días hábiles para abrir cada paquete, con alertas en rojo, fotos de la apertura y asociación a uno o varios casos.

Consulta de factura y vigencia

Para cada producto: si la garantía y el retracto siguen vigentes, hasta qué fecha y qué trámites previos tiene.

Administración sin tocar código

Categorías, meses de garantía, usuarios, puntos, proveedores y todos los plazos y umbrales de las políticas son datos editables.

También en el celular

El menú se vuelve un cajón lateral y las tablas se desplazan horizontalmente, para usarla desde la tienda o la bodega.

Roles

Nueve perfiles, nueve vistas distintas

Solo los asesores, el auxiliar de garantías y el administrador ingresan casos. Contabilidad, bodega y atención al cliente ven únicamente sus pendientes.

Asesor punto físicoIngresa garantías y devoluciones en su local, entrega cambios y arma la relación semanal al centro.Ingresa casos
Asesor tienda virtualIngresa casos de ventas por internet; el producto llega directo al centro.Ingresa casos
Auxiliar de garantíasRecibe y aprueba ingresos, gestiona la solución con el local, cierra con el cliente y decide la disposición final.Ingresa garantías
Técnico de garantíasRevisa productos, emite el reporte técnico y define el destino de los aptos.
Auxiliar de bodegaGenera traslados de cambio, recibe productos aptos y aprueba devoluciones pendientes.
Auxiliar contableRegistra el número de la nota crédito o del reembolso.
Auxiliar atención al clienteAutoriza las devoluciones de dinero antes de pasarlas a contabilidad.
Auxiliar de proveedorClasifica los productos con falla, tramita con el proveedor y registra su respuesta.
AdministradorConfigura categorías, puntos, usuarios, proveedores y parámetros. Puede actuar en cualquier paso.Ingresa casos
Reglas de negocio

Las políticas se aplican mientras se escribe

Casi ninguna regla bloquea: la plataforma avisa y, cuando algo se sale de la política, exige que alguien con autoridad lo autorice y lo deja registrado.

ReglaQué hace al detectarla
Garantía vencida según la categoría del productoExcepción pendiente Permite ingresar
Producto con evaluación previa obligatoria (discos, memorias, pantallas o accesorios sobre un valor, cargadores originales)Exige aprobación técnica; no hay cambio inmediato
Tercer ingreso del mismo productoFuerza nota crédito
Nota crédito con más de 30 días desde la compraSolo procede si se confirma que no hay inventario para cambiar
Devolución de dineroAvisa que solo procede tras agotar las demás alternativas
Sello o serial distinto al de la facturaAdvierte
Más unidades que las facturadas, o serial ya usado en otro casoExcepción pendiente Permite ingresar
Retracto fuera de plazo (10 días hábiles desde la factura, +2 si hubo despacho)Excepción pendiente Permite solicitar
Paquete sin abrir pasados 2 días hábilesSe resalta en rojo en el panel y en el listado de fletes
Devolución en un punto distinto al de la compraBloquea Es la única regla bloqueante

Todos los plazos y umbrales son parámetros editables desde Administración.

Galería

32 capturas de pantalla

Pulsa una imagen para verla completa. Los originales están en capturas/ a 2880 px de ancho.

Por dentro

Arquitectura simple, decisiones deliberadas

Un solo archivo de interfaz, un servidor sin frameworks y una base SQLite: se despliega con un doble clic y se respalda con un comando.

Navegador (SPA)

  • index.html ≈ 1.400 líneas
  • JavaScript y CSS puros, sin build
  • Envía solo lo que cambió y resuelve conflictos

Servidor Node.js

  • Módulo http, sin frameworks
  • Sesiones, permisos por rol y consecutivos atómicos
  • Sincronización incremental cada 5 s

SQLite

  • node:sqlite integrado
  • Registros JSON con versión y secuencia
  • Adjuntos en disco; respaldo con VACUUM INTO

Publicado mediante un túnel de Cloudflare (cloudflared), sin abrir puertos en el equipo servidor.

Dos modos, mismo código

Abierto como archivo, funciona en modo local de demostración (datos de ejemplo en IndexedDB). Servido por el servidor, pasa a modo multiusuario con base compartida. La app detecta el modo preguntando a /api/me.

Concurrencia sin infraestructura

Versionado optimista por registro y un número de secuencia global. Si dos personas editan lo mismo, el servidor devuelve un conflicto y la pantalla se actualiza con lo último. Si alguien está escribiendo, la vista no se redibuja: aparece un aviso.

Histórico grande, navegador liviano

Las ≈ 88.000 facturas viven en el servidor con índices; el navegador las consulta con filtros y guarda en caché solo las que usa.

Consecutivos únicos

G21-001: G = garantía · 2 = punto · 1 = clasificación al ingreso · 001 = número asignado por el servidor, para que dos personas nunca reciban el mismo.

Seguridad

Contraseñas con scrypt y sal por usuario, comparación en tiempo constante, cookie HttpOnly, bloqueo tras 5 intentos fallidos, verificación de origen y permisos de escritura por colección y por rol validados en el servidor.

Límites conocidos

Las reglas de transición entre estados se validan en el navegador; el siguiente paso natural es moverlas al servidor. La sincronización es por consulta periódica, no en tiempo real.

PNG original