📋 Resumen general
Este es un sistema de Punto de Venta (POS) diseñado para operar en terminales locales. Funciona desde el navegador web y no requiere conexión a internet para las operaciones diarias.
Las principales áreas del sistema son:
- / — Pantalla de venta (POS principal)
- /admin — Panel de administración (productos, categorías, cajeros, etc.)
- /panel — Dashboard de analítica de ventas
- /ayuda — Esta página de ayuda
🕐 Abrir / cerrar jornada
Antes de realizar ventas, es necesario abrir una jornada (turno). La jornada registra quién opera la caja y el efectivo inicial.
Abrir jornada
- En la pantalla del POS, haz clic en el botón Abrir Jornada que aparece en el centro.
- Selecciona el cajero de la lista.
- Ingresa el monto de efectivo inicial en la caja (fondo).
- Confirma para iniciar la jornada.
Cerrar jornada
- Haz clic en el ícono de jornada en la barra inferior.
- Ingresa el efectivo de cierre contado en la caja.
- Opcionalmente agrega notas del turno.
- Confirma el cierre. El sistema calculará automáticamente: total de ventas, transacciones, efectivo esperado y la diferencia.
💡 Tip: El efectivo esperado se calcula como: fondo inicial + pagos en efectivo recibidos − vueltos entregados.
🛒 Agregar productos al pedido
Hay varias formas de agregar productos al carrito:
Desde el catálogo
- Selecciona una categoría en la parte superior de la pantalla.
- Haz clic en el producto deseado en la grilla.
- El producto se agrega al carrito a la derecha.
Buscar productos
Usa la barra de búsqueda (🔍) en la parte superior para buscar por nombre. Los resultados se filtran en tiempo real.
Código de barras
Si tienes un lector de código de barras, simplemente escanea el producto. El campo de código de barras está siempre activo y detecta automáticamente la lectura.
💡 Tip: No necesitas hacer clic en ningún campo para escanear. El sistema captura automáticamente las lecturas del escáner.
🧾 Gestión del carrito
El carrito muestra el pedido actual a la derecha de la pantalla.
- Cambiar cantidad: Usa los botones + y − junto a cada producto.
- Duplicar ítem: Útil para productos configurables, duplica la configuración exacta.
- Eliminar ítem: Haz clic en el botón de eliminar (🗑️) del producto.
- Limpiar carrito: Usa el botón Limpiar en el encabezado del carrito para vaciar todo.
👤 Asociar cliente a la venta
Debajo del número de pedido hay un campo para asociar un cliente a la venta.
- Escribe el nombre o RUT del cliente (mínimo 2 caracteres).
- Se mostrará una lista de sugerencias de clientes registrados en el sistema.
- Selecciona el cliente de la lista usando el mouse o las teclas ↑ ↓ y Enter.
- Si el cliente no está registrado, puedes escribir su nombre manualmente como referencia.
Al seleccionar un cliente registrado, su ID queda vinculado a la venta para gestión futura y promociones. Los clientes VIP se marcan con una etiqueta especial.
Para quitar la selección, haz clic en el botón ✕.
💰 Cobrar la venta
Cuando el pedido esté listo, procede al cobro:
Pago rápido
En la barra inferior hay botones de pago rápido:
- 💵 Efectivo: Abre el diálogo de pago en efectivo donde ingresas el monto recibido. El sistema calcula el vuelto.
- 💳 Débito / Crédito: Procesa el pago por el monto exacto inmediatamente.
Pago mixto
Usa el botón Checkout para acceder al formulario de pago mixto donde puedes combinar varios métodos de pago en una sola venta.
⚠️ Importante: Debe haber una jornada abierta para poder cobrar ventas.
El ícono de engranaje ⚙️ en la esquina superior derecha abre el menú de configuración con las siguientes opciones:
- 🖥️ Pantalla: Tamaño de la grilla de productos, mostrar/ocultar botón "Todos".
- 📦 Catálogo: Mostrar/ocultar precios, mostrar SKU.
- 🔧 Sistema: Respaldo de base de datos.
- 🔗 Navegación: Accesos directos a Admin, Panel de ventas y Ayuda.
Tema claro / oscuro
Haz clic en el ícono de 🌙 / ☀️ en la esquina superior derecha para alternar entre tema claro y oscuro. La preferencia se guarda automáticamente.
🔧 Panel de administración
Accede desde /admin o desde el menú de configuración → Navegación → Admin.
El panel tiene un menú lateral con las siguientes secciones:
📦 Productos
Gestión completa de productos: crear, editar, eliminar. Cada producto tiene nombre, SKU, código de barras, precio, costo, categoría, tasa de impuesto, color y estado activo/inactivo.
El sistema soporta tres tipos de producto, según cómo se vendan en el POS:
- Simple — un ítem único con precio fijo (ej. una bebida, un alfajor).
- Configurable — un ítem cuyo precio o variante depende de modificadores (ej. tamaño, sabor).
- Compuesto — un ítem armado en el POS combinando un producto base obligatorio + adicionales opcionales (ej. un helado con sabor + toppings).
🟢 Crear un producto simple
Es el caso más común. El producto se vende tal cual, con un precio fijo.
- Ve a Admin → Productos.
- En el formulario "Nuevo Producto", completa los campos:
- Nombre *: nombre visible en el POS.
- SKU *: código interno único.
- Categoría *: a qué categoría pertenece.
- Tipo: selecciona Simple.
- Precio: precio de venta (sin decimales en CLP).
- Costo: opcional, para reportes de margen.
- Código de barras: opcional, para lectura con escáner.
- Tasa IVA: ej. 1900 = 19%, 0 = exento.
- Stock inicial: cantidad física al momento de crear.
- Color: color del botón en el POS.
- Activo: marcar para que aparezca en el POS.
- Haz clic en Crear Producto.
💡 Tip: Si el producto se vende por código de barras (escáner), completa el campo Código de barras. Si se vende por balanza, asocia el SKU con el PLU configurado en Configuración → Balanza.
🔵 Crear un producto configurable
Un producto configurable tiene grupos de modificadores (ej. "Tamaño", "Sabor") con opciones que pueden ajustar el precio. Al agregarlo al carrito, el cajero elige las opciones.
- Crea primero el producto como en el caso simple, pero selecciona Tipo: Configurable.
- El precio base es el precio mínimo (sin modificadores). Las opciones pueden sumarle valor.
- Guarda el producto. Después abre Editar para definir los modificadores.
- En la edición, agrega grupos de modificadores:
- Nombre del grupo: ej. "Tamaño", "Sabor", "Acompañamiento".
- Mín / Máx: cuántas opciones del grupo se deben elegir (ej. 1/1 obligatorio uno, 0/3 hasta tres opcionales).
- Orden: secuencia en la que se muestran al cajero.
- Para cada grupo, agrega opciones:
- Nombre: ej. "Pequeño", "Mediano", "Grande".
- Ajuste de precio: monto que se suma (o resta, con valor negativo) al precio base.
- Por defecto: si la opción viene preseleccionada.
Ejemplo: Café configurable con base $1.500.
- Grupo "Tamaño" (1/1): Pequeño +$0, Mediano +$500, Grande +$1.000.
- Grupo "Leche" (0/1): Sin leche +$0, Almendras +$400, Avena +$400.
💡 Tip: Si Mín=1 y Máx=1 el cajero está obligado a elegir exactamente una opción del grupo. Si Mín=0 el grupo es totalmente opcional.
🟣 Crear un producto compuesto
Un producto compuesto (también llamado "master") se arma combinando productos reales: una base obligatoria tomada de una categoría, más adicionales opcionales tomados de otra categoría. Es ideal para productos como helados (vaso + sabores + toppings).
Pre-requisito: primero debes crear las categorías y productos que harán de base y de adicionales.
- Ve a Admin → Categorías y crea las categorías auxiliares con su rol:
- Una categoría con rol composition_base (ej. "Sabores Helado"). Sus productos serán las bases válidas.
- Una categoría con rol composition_addon (ej. "Toppings"). Sus productos serán los adicionales.
- En Admin → Productos, crea los productos que irán dentro de cada categoría auxiliar (ej. "Chocolate", "Vainilla" en Sabores; "Maní", "Salsa de fresa" en Toppings). Estos sí son productos simples con su propio precio.
- Crea el producto compuesto:
- Tipo: Compuesto.
- Categoría: la categoría visible donde aparecerá en el POS (ej. "Helados").
- Precio: el precio del envase / cargo base. Los sabores y toppings suman su propio precio al total.
- Categoría base (
composite_base_cat_id): la categoría con rol composition_base.
- Categoría adicionales (
composite_addon_cat_id): la categoría con rol composition_addon.
- Guarda. Al tocar el producto en el POS se abrirá un asistente que pide elegir la base y luego permite agregar adicionales antes de mandarlo al carrito.
Ejemplo completo: "Vaso Doble"
- Categoría "Sabores Helado" (rol composition_base) → productos: Chocolate ($1.500), Frutilla ($1.500), Vainilla ($1.500).
- Categoría "Toppings" (rol composition_addon) → productos: Maní ($300), Salsa Manjar ($400), Granas ($200).
- Producto "Vaso Doble" (tipo Compuesto, precio base $500, base = Sabores, addons = Toppings).
- El cajero arma el producto: Vaso Doble + Chocolate + Frutilla + Maní = $500 + $1.500 + $1.500 + $300 = $3.800.
⚠️ Importante: Las categorías base y adicionales deben tener su rol correctamente asignado. Sin ese rol, el POS no abrirá el asistente de armado.
🏷 Categorías
Organiza los productos en categorías. Cada categoría tiene nombre, color y orden de visualización.
👤 Cajeros
Administra los cajeros que operan el sistema. Cada cajero tiene nombre, PIN de acceso y estado activo/inactivo.
🎫 Descuentos y promociones
Configura promociones con diferentes tipos: porcentaje de descuento, monto fijo, y condiciones especiales. Las promociones se aplican automáticamente según las reglas configuradas.
📊 Inventario
Controla el stock de productos. Puedes ajustar cantidades y ver el historial de movimientos de inventario.
👥 Clientes
Registro de clientes con nombre, RUT, email, teléfono y marcador VIP. Los clientes registrados aparecen en la búsqueda inteligente del POS.
🕐 Jornadas
Historial completo de jornadas con estado, cajero, fechas, fondo inicial, ventas, transacciones, efectivo esperado, efectivo de cierre y diferencia.
📊 Panel de ventas (Dashboard)
Accede desde /panel. Muestra analítica de ventas con:
- KPIs: Total ventas, ingresos, ticket promedio, descuentos, artículos vendidos.
- Gráficos: Tendencia diaria, métodos de pago, ventas por día de semana, ventas por hora, productos más vendidos.
- Tablas: Top productos y detalle de promociones aplicadas.
- Filtro de fechas: Hoy, esta semana, este mes, este año, o rango personalizado.
🧾 Historial de ventas
Desde el POS, accede al historial de ventas para ver las ventas recientes, reimprimir boletas y exportar datos.
💾 Respaldo de datos
El sistema genera respaldos automáticos de la base de datos SQLite. También puedes crear un respaldo manual desde:
- Menú ⚙️ → Sistema → Respaldo BD
Los respaldos se guardan en la carpeta bk/ con marca de tiempo.
⚠️ Importante: Realiza respaldos periódicos, especialmente antes de actualizaciones del sistema.
FRUZCO CHILE S.A. — Sistema POS v1.0