05 · ERP + POS + e-commerce
Grupo VJ
ERP, punto de venta y tienda online para una distribuidora de bebidas con dos sucursales.
Visitar grupovj.com.ar (abre en otra pestaña)- rutas de API documentadas con Swagger
- ~200
- modelos de datos
- 30
- sucursales y un depósito
- 2
El problema
Una distribuidora de bebidas de Córdoba vende a minoristas y mayoristas, tiene dos sucursales y un depósito, reparte a domicilio, fía con cuenta corriente y tiene que facturar electrónicamente ante ARCA. Todo eso se llevaba con herramientas separadas o a mano.
La solución
Una plataforma con dos caras sobre el mismo backend y la misma base: un ERP / punto de venta interno para administradores y empleados, y una tienda online pública. El stock, los precios y los pedidos están sincronizados en tiempo real entre las dos.
Features clave
- POS con escaneo de códigos con la cámara, precio minorista, mayorista o manual por ítem y varios métodos de pago en una misma venta (incluidos QR de Mercado Pago y Nación y cuenta corriente).
- Facturación electrónica: facturas A, B y C y notas de crédito por WSAA y WSFE, PDF con QR fiscal, remitos con CAI y cierre de caja imprimible.
- Worker independiente que reintenta las facturas caídas por AFIP y un cron que renueva los tokens.
- Inventario por ubicación (local / depósito) con transferencias, historial completo y combos cuyo stock se calcula desde sus componentes.
- Cuentas corrientes conciliadas: los abonos se aplican a las ventas para que la deuda coincida con el saldo real.
- Envíos con costo por kilómetro calculado con rutas reales de OpenRouteService desde la sucursal de origen.
- Tienda online con carrito, seguimiento de pedidos y edición mientras estén pendientes.
Desafíos técnicos
- Integración fiscal real con AFIP: firma de certificados con node-forge, tokens WSAA que vencen, numeración correlativa y reintentos tolerantes a fallos sin duplicar facturas.
- Stock de productos compuestos: el disponible de un combo sale del componente más escaso, también al editar ventas pendientes.
- Zona horaria de Argentina forzada en todo el backend para que reportes y cierres de caja den bien.
- Envíos con distancia real por calles, no en línea recta.
Resultado
En producción y con uso diario en el negocio: la venta en el mostrador, el stock, la facturación fiscal, las cobranzas, las compras y la venta online viven en un único sistema.
Stack
- Next.js
- TypeScript
- Express
- PostgreSQL
- Prisma
- ARCA/AFIP
- OpenRouteService
- Cloudinary


