Soporte
Cómo pedir ayuda
Micaela la construye un equipo pequeño, así que escribes directamente a quien conoce el producto por dentro. No hay formularios ni niveles de escalamiento.
Antes de escribir
Muchas dudas frecuentes ya están resueltas con su causa y su solución.
Ver solución de problemasIntegrar con tus sistemas
El contrato completo de los tres servicios, generado del código fuente.
Ir a la referencia de la APIQué incluir en tu mensaje
Con estos cuatro datos casi siempre se resuelve en la primera respuesta:
- La pantalla donde pasa, y la tienda o el producto concreto si aplica.
- Qué esperabas que ocurriera y qué ocurrió en su lugar.
- El mensaje de error completo, si apareció alguno.
- La fecha y hora aproximada: con eso ubicamos el evento en la auditoría.
Si tienes permiso de administrador, la pantalla de Auditoría registra cada acción con su usuario, su resultado y su detalle técnico. Suele responder sola la pregunta de «quién cambió esto».
Empezar
Qué es Micaela
Micaela calcula, tienda por tienda y producto por producto, cuánto hay que pedir hoy para no quedarse sin mercancía ni acumular inventario muerto. El motor es DDMRP (Demand Driven MRP): en vez de un mínimo/máximo fijo, cada ítem tiene un amortiguador de tres zonas que se recalcula con la demanda real.
La plataforma se organiza en siete grupos de pantallas, que son los mismos del menú lateral:
Pedidos
Sugerido de reposición de CEDI a tienda, carrito por tienda y analítica del proceso.
Compras
Sugerido de compra al proveedor desde el CEDI, órdenes de compra y forecast de venta/compra.
Inteligencia
Copiloto conversacional sobre tus datos y motor de pronóstico que recalcula los amortiguadores.
Datos
Conexión al ERP, datasets sincronizables y cargue de archivos planos.
Configuración
Parámetros del amortiguador, bloques que se piden por estiba y fechas especiales.
Administración
Geografía, tiendas, productos, buffers, usuarios, roles, auditoría y licencia.
Plataforma
Gestión de licencias de todas las empresas cliente. Solo para el proveedor.
Cada ítem del menú está atado a un permiso de página. Si no ves una pantalla que aparece en este manual, es porque tu rol no tiene ese permiso o porque la funcionalidad no está incluida en la licencia de tu compañía. En la sección Roles predefinidos está el detalle de qué ve cada rol.
Todas las imágenes son de la aplicación real ejecutándose con la compañía de demostración. Haz clic en cualquiera para verla ampliada.
Empezar
Conceptos DDMRP
Todo lo que hace la plataforma se apoya en cinco ideas. Vale la pena leerlas una vez: los nombres se repiten en cada pantalla.
El amortiguador y sus zonas
Cada combinación de producto + tienda (o producto + CEDI, en compras) tiene un amortiguador con tres zonas apiladas. La suma de las tres es el nivel objetivo (Top of Green), que es a donde el sugerido busca llevar el inventario.
Seguridad. Cubre la variabilidad de la demanda durante el lead time. Entrar aquí es riesgo real de quiebre.
Consumo durante el lead time. Estar aquí es normal: es la señal de que toca reponer.
Tamaño de lote y frecuencia de pedido. Define cada cuánto se pide y cuánto.
Por encima del nivel objetivo. No es una zona DDMRP: es la señal de sobre-inventario.
Posición de inventario
Es lo que la plataforma compara contra las zonas. No es el stock físico: incluye lo que ya viene en camino.
Posición = existencia en tienda + en tránsito
En el sugerido verás dos semáforos por línea: el buffer actual (con la posición de hoy) y el buffer posterior al pedido (sumando lo que estás pidiendo). El segundo cambia en vivo mientras editas la cantidad, y es la forma de ver si tu ajuste manual deja el ítem donde debería.
Estados que muestra la interfaz
| Estado | Cuándo aparece | Qué significa para el analista |
|---|---|---|
| Sin parámetro | El nivel objetivo es cero o no está calculado. | El ítem no tiene amortiguador. Revisa Parametrización de buffers. |
| Crítico | Posición dentro de la zona roja. | Quiebre inminente. Es lo primero que hay que despachar. |
| Alerta | Posición en la zona amarilla. | Hay que reponer. Es el estado normal de un ítem que rota. |
| Óptimo | Posición en la zona verde. | Cubierto. Normalmente no necesita pedido. |
| Exceso | Entre el nivel objetivo y 1,5 veces el objetivo. | Sobra inventario. Evita pedir más. |
| Sobre-stock | Más de 1,5 veces el nivel objetivo. | Inventario inmovilizado. Candidato a traslado o promoción. |
ADU y variabilidad
El ADU (Average Daily Usage) es la demanda diaria promedio que el motor aprende del historial de ventas. El CV (coeficiente de variación) mide qué tan errática es esa demanda. Entre los dos determinan el tamaño de las zonas: más demanda o más variabilidad, amortiguador más grande.
El ADU sale del historial de ventas. Si nunca cargaste ventas, los amortiguadores arrancan en cero y el sugerido no propone nada. Cárgalas en Cargar datos o sincronízalas desde el ERP en Datos maestros.
Cascada de parámetros
Los factores del cálculo se resuelven en cascada: global → categoría → producto. Lo más específico gana. Además, la Parametrización de buffers permite fijar valores por nivel geográfico (empresa, zona, región, minirregión o tienda).
Empezar
Unidades de pedido
Un mismo producto se pide de formas distintas según cómo se mueva físicamente. La plataforma calcula siempre en unidades de inventario y después convierte a la unidad operativa que elijas por línea.
| Unidad | Qué es | Dónde está disponible |
|---|---|---|
| UI | Unidad de inventario. Es la unidad interna del cálculo y la que siempre se envía al ERP. | Siempre. No se elige: es el resultado. |
| UE | Unidad de empaque (caja). Es la unidad por defecto del sugerido. | Pedidos y compras. Siempre disponible. |
| Estiba | Pallet completo. Se calcula con el factor de estiba del producto. | Solo si el producto paletiza (tiene factor de estiba). |
| Media estiba | Medio pallet. | Solo en pedidos y solo si el producto admite media. Nunca se propone por defecto: la decide el analista. |
| Peso (kg) | Cantidad en kilos, convertida a UI con el peso por unidad. | Pedidos y compras, si el producto maneja peso. |
Qué unidad se propone por defecto
- En pedidos: estiba si el producto paletiza y además es de alta rotación (clase AA o A) o su bloque está marcado como «bloque de estiba» en Parámetros globales. En cualquier otro caso, UE.
- En compras: estiba si el producto paletiza; si no, peso cuando maneja peso; si no, UE. La estiba de compra siempre es completa.
Redondeo por umbral
Al pasar de UI a estibas la cantidad casi nunca da exacta. El sistema aplica un umbral (por defecto configurado a nivel de empresa, con posibilidad de anularlo por producto): si el sobrante supera el umbral, se sube a la siguiente estiba; si no, se recorta. Cuando el ítem está en zona roja crítica y el redondeo lo dejaría en cero, se fuerza la unidad mínima. Pasa el cursor sobre la celda Estiba / media para ver el desglose del redondeo de esa línea.
Empezar
Ingreso y sesión
Hay tres formas de entrar:
- Correo y contraseña. La contraseña tiene mínimo 8 caracteres. El ojo del campo permite verla mientras la escribes.
- Google o Microsoft (SSO). Los botones solo se habilitan si el administrador configuró las credenciales del proveedor en el backend. Si no, aparecen deshabilitados con la explicación.
- Enlace desde la app principal. Si llegas embebido desde otra aplicación corporativa, la sesión se canjea automáticamente y entras sin volver a autenticarte.
Tras entrar, la plataforma carga tus permisos y arma el menú. El avatar del encabezado muestra tus iniciales y desde ahí se cierra la sesión.
«No se pudo conectar con el servidor» significa que el backend no responde, no que tus datos estén mal. «Credenciales inválidas» sí es usuario o contraseña incorrectos.
Empezar
Términos y condiciones
Cuando el proveedor publica una versión nueva de los términos, la plataforma bloquea todas las escrituras hasta que la firmes. Puedes seguir consultando información, pero no registrar cambios. Al intentar guardar algo, el sistema te lleva a esta pantalla.
- Lee el documento. El botón de aceptar permanece deshabilitado hasta que te desplaces al final del texto.
- Pulsa Acepto la versión X. Queda registrada la firma con fecha.
- Vuelves automáticamente a la pantalla donde estabas.
La pantalla también se puede abrir a mano para releer el documento vigente. En ese caso muestra qué versión firmaste y cuándo. Si estás al día, el único botón es Volver a trabajar.
A propósito no existe la opción de posponer: mientras no firmes, ninguna acción de escritura funciona en toda la plataforma.
Empezar
Avisos de licencia
Bajo el encabezado puede aparecer una franja permanente con el estado del licenciamiento. Es informativa, pero cambia lo que puedes hacer.
| Aviso | Situación | Efecto |
|---|---|---|
| Rojo | Licencia vencida, suspendida, cancelada o no configurada. | Modo solo lectura: puedes consultar, no guardar. |
| Ámbar (demo) | Licencia de tipo demo activa. | Indica los días que quedan. |
| Ámbar (por vencer) | Faltan 15 días o menos para el vencimiento. | Recordatorio de renovación. |
Además, la licencia decide qué funcionalidades están habilitadas (Pedidos, Compras, Pronóstico, Copiloto, Datos maestros, Parámetros DDMRP). Una funcionalidad no licenciada no aparece en el menú aunque tu rol tenga el permiso. Consulta el detalle en Mi licencia.
General
Inicio
La pantalla de aterrizaje. Resume el estado del abastecimiento y ofrece los accesos que más se usan a diario.
Qué muestra
- Accesos rápidos al sugerido de pedidos, al carrito (con líneas y valor actuales) y a los parámetros DDMRP.
- Estado de buffers. Una barra con el reparto de los amortiguadores entre quiebre, reponer, óptimo y exceso, calculado con los buffers reales de la compañía.
- Tu compañía. Conteos de productos, tiendas, pedidos (con los pendientes), órdenes de compra y usuarios.
- Productos recientes. Las últimas seis referencias del maestro, con categoría y precio.
- Insights con IA y accesos rápidos a cargar datos, parámetros, reportes y copiloto.
El reparto de buffers y el conteo de productos en riesgo salen de datos reales. En cambio, los indicadores Nivel de servicio (OTIF) y Precisión del pronóstico, junto con los textos de las tarjetas de insights, son valores representativos: todavía no hay un endpoint de KPIs que los alimente. Para cifras operativas confiables usa Analítica de pedidos y Analítica de compras.
Pedidos
Analítica de pedidos
El tablero de control del proceso de reposición. Va primero en el menú del módulo a propósito: se mira antes de entrar a operar el sugerido.
Bloques del tablero
| Bloque | Qué responde |
|---|---|
| Tarjetas KPI | Cifras clave del período con miniatura de tendencia y variación contra el período anterior. La flecha y el color indican si el movimiento es favorable. |
| Evolución de pedidos y valor | Combinación de barras (valor pedido) y línea (unidades) sobre doble eje. |
| Estado de buffers | Dona con el reparto de referencias por zona. |
| Flujo neto del buffer | Evolución del flujo neto con las bandas verde, amarilla y roja de fondo y la línea de reposición. |
| Pedidos por prioridad | Dona con el reparto de pedidos según la prioridad DDMRP. |
| Cobertura del buffer | Días de demanda cubiertos. |
| Quiebres de buffer | Total del período con tendencia. |
| Exactitud de reabastecimiento | Medidor de aguja con el porcentaje de acierto. |
| Tiempo de reposición | Lead time promedio ponderado, con tendencia. |
| Referencias críticas | Tabla por referencia: % de pedidos urgentes, cobertura actual, estado del buffer, último pedido y lead time real. |
| Desempeño de proveedores | OTIF por proveedor, pedidos a tiempo sobre totales y lead time promedio. |
La granularidad de las series (diaria, semanal o mensual) la define la consulta que alimenta el tablero; la carga inicial es diaria.
Pedidos
Sugerido de pedidos
La pantalla central de la operación diaria. Responde una sola pregunta — qué le pido hoy a esta tienda — y deja ver el porqué de cada cifra. Toda la matemática DDMRP se calcula en el servidor; aquí se revisa, se ajusta y se envía.
El flujo, paso a paso
- Elige la región y la tienda en los selectores del encabezado. Al cambiar de tienda se recarga el sugerido y se limpia la selección.
- Filtra para acotar el trabajo: por bloque, categoría, clase de rotación, días de inventario o «solo con pedido».
- Revisa cada línea. Compara el buffer actual con el posterior al pedido; expande las que no cuadren para ver de dónde sale la cifra.
- Ajusta las cantidades donde el criterio comercial lo pida, y excluye lo que no va.
- Envía al carrito. Si hay líneas seleccionadas se envían solo esas; si no hay ninguna seleccionada, se envía todo el sugerido con cantidad mayor que cero.
El encabezado: contexto y cifras del pedido
Arriba a la izquierda, el código y el nombre de la tienda con su ruta geográfica (zona · región — minirregión); a la derecha, los dos selectores y el botón Enviar al carrito. Debajo, cinco tarjetas que resumen el pedido y que responden al filtro activo, no al catálogo completo:
| Tarjeta | Qué cuenta | Para qué sirve |
|---|---|---|
| Ítems en portafolio | Referencias visibles con el filtro actual. | El tamaño del trabajo que tienes enfrente. |
| Con pedido | Cuántas de esas llevan cantidad mayor que cero. | Si es muy inferior al portafolio, casi todo está cubierto. |
| Unidades a pedir | Total en unidades de inventario. | El volumen que va a mover el despacho. |
| Valor estimado | Cantidad × precio, sumado. | El costo del pedido antes de enviarlo. |
| Estado del amortiguador | Cuántas referencias hay en cada zona: roja, amarilla, verde y exceso. | La foto de salud del surtido de esa tienda. |
Filtros
Se combinan entre sí y afectan tanto a la tabla como a las cinco tarjetas:
- Bloque y Categoría — para trabajar por sección de la góndola.
- Pareto — clase de rotación. Útil para atender primero AA y A.
- Días de inventario — bajo (menos de 3 días), medio (entre 3 y 7) o alto (más de 7).
- Solo con pedido — esconde todo lo que el sistema no propone pedir.
- Buscar PLU o ítem — texto libre sobre código y descripción.
El botón Excluir, a la derecha, se activa cuando hay líneas seleccionadas con las casillas.
Columnas de la tabla
La tabla tiene dos grupos: Información ítem (el estado de hoy) y Pedido hoy (lo que se va a pedir, sobre fondo destacado).
| Columna | Grupo | Qué es |
|---|---|---|
| PLU | Ítem | Código del producto. |
| Nombre del ítem | Ítem | Descripción del producto. |
| Categoría | Ítem | Categoría comercial. |
| UE | Ítem | Unidad de empaque del producto. |
| Bloque | Ítem | Agrupación operativa. La etiqueta es configurable por empresa. |
| Pareto | Ítem | Clase de rotación (AA, A, B, C por defecto). La etiqueta y las clases son configurables. |
| Días inv. actual | Ítem | Cobertura en días con la existencia de hoy. |
| Existencia tienda | Ítem | Stock físico en la tienda. |
| Cant. ofc. despacho | Ítem | Cantidad ya oficializada para despacho. |
| En tránsito | Ítem | Mercancía en camino a la tienda. |
| Cantidad UE | Pedido | Cantidad a pedir en unidades de empaque. Cuando la línea se pide en estiba, esta cifra queda derivada de las estibas y no se edita directamente. |
| Unidades | Pedido | Equivalente en unidades de inventario. Es lo que llega al ERP. |
| Estiba / media | Pedido | Selector de unidad operativa y el control de cantidad en esa unidad, con el equivalente en UI debajo. |
| Días con pedido | Pedido | Cobertura resultante si se pide esa cantidad. |
| Fecha de entrega | Pedido | Cuándo llegaría a la tienda. |
| Buffer actual | Pedido | Semáforo con la posición de hoy. |
| Buffer pos. pedido | Pedido | Semáforo con la posición tras el pedido. Cambia en vivo al editar. |
Al final de cada fila hay dos botones: el globo de diálogo, que abre la explicación del sugerido, y la flecha, que despliega el detalle del ítem.
Las filas no vienen alfabéticas ni por código: llegan ordenadas por estado del amortiguador — primero lo crítico, después la alerta, y así — y dentro de cada estado, por volumen de mayor a menor. Trabajar de arriba hacia abajo es atender primero lo que está a punto de quebrarse.
Editar cantidades y cambiar de unidad
Cada línea tiene un control de más/menos y un campo numérico. Al modificar una cantidad respecto al sugerido original aparece la marca editado, y el tooltip muestra cuál era el valor propuesto. Los días de cobertura y el semáforo posterior se recalculan al instante.
El desplegable de la columna Estiba / media ofrece solo las unidades que el producto admite. Al cambiarla, el sistema vuelve a proponer la cantidad en esa unidad aplicando el redondeo por umbral; al volver a UE se restaura el sugerido original de la línea. Bajo el control se lee siempre el equivalente en UI, que es lo que viaja al ERP.
El detalle del ítem
Es la parte que explica el número. Se abre con la flecha del final de la fila y muestra, para ese producto y esa tienda, de dónde sale el sugerido. La cabecera indica el ítem y la ventana de análisis usada para los promedios (8 días en el ejemplo).
Abastecimiento en estibas
Solo aparece si el producto paletiza. Muestra primero los factores del maestro y luego la conversión completa, que se lee de izquierda a derecha:
| Dato del ejemplo | Qué significa |
|---|---|
factores UA 12 · estiba 30 · media 15 | Una unidad de agrupación trae 12 UI; una estiba son 30 UA; una media, 15 UA. |
Sugerido 624 UI | Lo que pide el cálculo DDMRP, antes de redondear a una unidad transportable. |
→ 4 medias estibas | La unidad operativa elegida y la cantidad ya redondeada. |
(4 × 180 UI = 720 UI al ERP) | El desglose: 180 UI por media estiba (12 × 15), y el total que recibe el ERP. |
umbral 25% | El umbral de redondeo aplicado. Por encima de él se sube a la siguiente unidad; por debajo se recorta. |
Cuando corresponde, la línea añade una marca: mínimo forzado (zona roja) si el redondeo habría dejado en cero un ítem crítico, u omitido si el sugerido no alcanza la unidad mínima. Si el producto se maneja por peso, en lugar de este bloque —o además de él— aparece Compra por peso, con los kilos por UI y el costo por kilo.
Indicadores del ítem
| Indicador | Qué mide | Cómo leerlo |
|---|---|---|
| Promedio de participación | Qué porcentaje de las unidades vendidas de su bloque se lleva este ítem. | Un valor alto señala la referencia que sostiene el bloque: quebrarla duele más. Da 100 % cuando es la única del bloque. |
| Unidades vendidas | Venta del período de análisis. | La base del promedio diario. |
| Promedio diario unidades | El ADU observado en la ventana. | Es el motor del tamaño del amortiguador. Contrástalo con el ADU del pronóstico. |
| Total unidad de empaque | Consumo diario expresado en unidades de empaque. | Traduce el ADU al lenguaje del despacho. |
| Vendido (ventana) | Salidas por venta en el período. | Debe parecerse a «unidades vendidas»; si difiere mucho, revisa los movimientos. |
| Mermado (ventana) | Unidades perdidas por merma. Se resalta en ámbar. | Una merma alta explica por qué el inventario baja sin venta que lo respalde. |
| En tránsito | Lo que ya viene en camino. | Cuenta dentro de la posición de inventario: por eso a veces no hay que pedir aunque el stock esté bajo. |
| Última vez pedido | Fecha y cantidad del pedido anterior. | Evita pedir dos veces lo mismo en días seguidos. |
| Mín / Máx | Los límites de pedido del ítem. | Acotan lo que el sistema puede proponer. |
| Amortiguador | El nivel objetivo: la suma de las tres zonas. | Es el techo al que apunta la reposición. |
| Zonas (R / A / V) | Barra con el tamaño relativo de las zonas roja, amarilla y verde. | Muestra cómo está repartido el amortiguador. Al hacer clic abre la evolución. |
Evolución del amortiguador
El enlace ver evolución, sobre la barra de zonas, despliega una gráfica de los últimos 45 días: cómo se movió la posición de inventario respecto a las zonas. Es la forma de distinguir un quiebre puntual de un amortiguador mal dimensionado — si la línea vive pegada al rojo, el problema no es el pedido de hoy sino la parametrización.
Movimientos de inventario recientes
Cierra el detalle con el movimiento día a día: fecha, tipo (venta, insumo, merma, baja…), cantidad — negativa en rojo cuando sale, positiva en verde cuando entra — y la referencia del documento que lo originó. Es el último nivel de detalle antes de ir al ERP: si una cifra no cuadra, aquí se ve exactamente qué la movió.
Cuando una línea te sorprenda, el orden que más rápido resuelve es: mira el promedio diario (¿el ADU tiene sentido?), luego en tránsito (¿ya viene en camino?), después mermado (¿se está perdiendo?) y por último los movimientos (¿qué pasó exactamente?).
Explicación del sugerido
El botón ¿Por qué este sugerido? de cada línea abre un chat que explica el cálculo con los datos DDMRP reales de esa fila: stock, zonas, posición del buffer y cantidad propuesta. Trae preguntas sugeridas: por qué este sugerido, cómo se calcula la cantidad, qué pasa si no se pide y cuándo llega.
Excluir y enviar
Las casillas de la izquierda seleccionan líneas; la del encabezado marca toda la página. Con una selección activa, Excluir saca esos ítems de la vista y los deja en cero, y Enviar al carrito manda solo los seleccionados. Sin selección, el envío arrastra todo el sugerido con cantidad mayor que cero.
Paginación
La tabla pagina de 20 en 20, ajustable a 50 o 100. El cambio de página no pierde las cantidades que hayas editado ni la selección.
Pedidos
Carrito de pedidos
Reúne lo que enviaste desde el sugerido, agrupado por tienda, para una última revisión antes de confirmar.
Qué puedes hacer
- Ajustar cantidades con el control de más/menos o escribiendo el valor. Poner cero elimina la línea.
- Quitar líneas una por una, o vaciar el carrito completo.
- Confirmar y enviar a Siesa. El botón solo aparece si tu rol tiene el permiso
carrito.enviar_siesa; si no, verás el aviso de que no lo tienes.
Paneles laterales
- Resumen: tiendas, líneas, unidades de empaque y valor total.
- Indicadores por bloque: líneas, unidades y valor de cada bloque, con barra proporcional para ver de un vistazo dónde se concentra el pedido.
El carrito vive en la sesión del navegador: si recargas la página se pierde. Y «Confirmar y enviar a Siesa» hoy registra la confirmación en pantalla; la integración que empuja el pedido al ERP todavía no está conectada en esta pantalla. Para documentos que sí se persisten, mira Órdenes de compra.
Compras
Analítica de compras
El tablero del área de compras, organizado en seis pestañas. Los datos se cargan con granularidad mensual.
| Pestaña | Contenido |
|---|---|
| Resumen general | KPIs principales y secundarios, combinado de gasto y ahorro sobre doble eje, dona de gasto por categoría y línea de cumplimiento de entregas. |
| Eficiencia del proceso | KPIs de eficiencia y tendencia del tiempo de ciclo de compra. |
| Ahorro y gasto | KPIs de ahorro, dona de fuentes de ahorro y combinado de gasto contra presupuesto. |
| Proveedores | KPIs de proveedores, reparto del gasto entre ellos y tabla de desempeño con puntaje (alto ≥ 90, medio ≥ 80, bajo por debajo). |
| Cumplimiento | KPIs de cumplimiento de las entregas comprometidas. |
| Categorías y artículos | KPIs de producto, urgencias por categoría con barra proporcional y ranking de artículos más pedidos. |
Compras
Sugerido de compras
El mismo oficio que el sugerido de pedidos, pero un eslabón antes: qué comprarle al proveedor para reponer el CEDI, consolidando la demanda que vienen generando las tiendas. La mecánica de la tabla es idéntica; cambian el contexto, los datos y el resultado.
Diferencias con el sugerido de pedidos
| Aspecto | Pedidos | Compras |
|---|---|---|
| Contexto | Una tienda. | El CEDI. No hay selector de tienda. |
| Filtro principal | Bloque, categoría, rotación. | Proveedor y categoría. |
| Unidades | UE, estiba, media estiba y peso. | UE, estiba y peso. No hay media estiba: la estiba de compra es siempre completa. |
| Unidad por defecto | Estiba si paletiza y rota alto; si no, UE. | Estiba si paletiza; si no, peso cuando aplica; si no, UE. |
| Resultado | Un carrito por tienda. | Órdenes de compra consolidadas por proveedor. |
| Detalle expandible | Indicadores de venta, evolución del amortiguador y movimientos. | Datos del amortiguador y del costo, más el desglose de la conversión. |
El encabezado: contexto y cifras de la compra
A la izquierda, la insignia del CEDI y el subtítulo que recuerda de qué va la pantalla. A la derecha, Ver órdenes —que lleva al listado de órdenes ya generadas— y Generar órdenes de compra, que cambia a Generar órdenes (N) cuando hay líneas seleccionadas, para que sea evidente que solo se van a emitir esas.
Debajo, seis tarjetas que responden al filtro activo:
| Tarjeta | Qué cuenta | Para qué sirve |
|---|---|---|
| Ítems | Referencias visibles con el filtro actual. | El tamaño del trabajo. |
| Con compra | Cuántas llevan cantidad mayor que cero. | Cuánto de eso realmente hay que comprar hoy. |
| Proveedores | Proveedores distintos entre las líneas con compra. | Anticipa cuántas órdenes se van a generar: una por proveedor. |
| Unidades | Total en unidades de inventario. | El volumen que va a recibir el CEDI. |
| Costo estimado | Cantidad × costo, sumado. | El desembolso antes de emitir. |
| Amortiguador | Referencias en cada zona: roja, amarilla, verde y exceso. | La salud del inventario del CEDI de un vistazo. |
Filtros
- Proveedor — la lista se arma con los proveedores que aparecen en el sugerido. Filtrar por uno es la forma natural de preparar su orden.
- Categoría — para revisar por familia de producto.
- Solo con compra — esconde lo que no hay que comprar.
- Buscar PLU o ítem — texto libre sobre código y descripción.
Cuando hay algún filtro activo aparece Limpiar. Excluir se habilita al seleccionar líneas e indica cuántas afectará.
Columnas de la tabla
Tres grupos: Información ítem, Estado CEDI (la situación de hoy en el centro de distribución) y Compra sugerida.
| Columna | Grupo | Qué es |
|---|---|---|
| PLU · Nombre · Categoría | Ítem | Identificación del producto. |
| Proveedor | Ítem | Proveedor preferente. Es el criterio de consolidación de la orden. |
| UE | Ítem | Unidad de empaque. |
| Exist. CEDI | CEDI | Stock en el centro de distribución. |
| En tránsito | CEDI | Mercancía ya pedida al proveedor y en camino. |
| Demanda/día | CEDI | Consumo diario del CEDI, es decir lo que le piden las tiendas. |
| Días inv. | CEDI | Cobertura actual en días. |
| Cantidad UE | Compra | Cantidad a comprar en unidades de empaque. Queda derivada cuando la línea se pide en estiba. |
| Unidades | Compra | Equivalente en unidades de inventario: lo que viaja al ERP. |
| Estiba / caja | Compra | Selector de unidad operativa y cantidad, con el equivalente en UI debajo. |
| Días compra | Compra | Cobertura resultante tras recibir la compra. |
| Tren ent. | Compra | Días de tránsito del proveedor (su lead time). |
| Fecha recibo | Compra | Fecha estimada de recepción en el CEDI. |
| Buffer actual | Compra | Semáforo con la posición de hoy en el CEDI. |
| Buffer pos. compra | Compra | Semáforo tras sumar lo que se está comprando. Cambia en vivo al editar. |
Igual que en pedidos, cada fila termina con el globo de diálogo, que explica el sugerido, y la flecha, que abre el detalle.
El CEDI no guarda las tres zonas por separado como sí ocurre en tienda: solo tiene el valor del amortiguador. La pantalla las deriva repartiéndolo en 40 % roja, 35 % amarilla y 25 % verde. Es una aproximación razonable para priorizar de un vistazo, pero si necesitas las zonas exactas del CEDI, el dato bueno es el de Pronóstico, no el color de esta tabla.
Editar cantidades y cambiar de unidad
Control de más/menos y campo numérico por línea, con la marca editado cuando te apartas del sugerido. El desplegable ofrece solo las unidades que el producto admite; al cambiarla, la cantidad se vuelve a proponer en esa unidad con el redondeo por umbral, y al volver a UE se restaura el sugerido original.
El detalle de la línea
Se abre con la flecha del final de la fila y tiene dos bloques.
Detalle del amortiguador
| Dato | Qué es | Cómo leerlo |
|---|---|---|
| Proveedor | Proveedor preferente de la referencia. | Confirma en qué orden va a caer esta línea. |
| Amortiguador | El nivel objetivo del CEDI para el ítem. | El techo al que apunta la compra. |
| Mín / Máx | Límites de compra del ítem. | Acotan lo que el sistema puede proponer. |
| Costo unitario | Costo por unidad de inventario. | La base del costo estimado. |
| En tránsito | Lo que ya viene del proveedor. | Cuenta en la posición: por eso a veces no hay que comprar aunque el stock esté bajo. |
| Costo de la compra | Cantidad de esta línea × costo unitario. | Se actualiza al editar la cantidad: es el impacto en pesos de tu ajuste. |
Compra en estibas
Aparece si el producto paletiza, con los factores del maestro en la cabecera. Los seis campos cuentan la conversión completa; con el ejemplo de la figura:
| Campo | Ejemplo | Qué significa |
|---|---|---|
factores | UA 6 · estiba 20 · media 10 | Una unidad de agrupación trae 6 UI; una estiba son 20 UA. |
| Sugerido (UI) | 245 | Lo que pide el cálculo DDMRP antes de redondear. |
| Unidad | 2 estibas | La unidad operativa elegida y la cantidad ya redondeada. |
| Paso (UI/unidad) | 120 | Cuántas UI trae cada unidad: 6 × 20. |
| Equivalente (UI → ERP) | 240 | Lo que realmente se le pide al proveedor: 2 × 120. |
| Sobrante descartado | 5 | La diferencia entre el sugerido y lo que cabe en unidades completas (245 − 240). |
| Umbral | 25 % | Por encima de él se sube a la siguiente estiba; por debajo se recorta, como aquí. |
Bajo los campos puede aparecer una lista de avisos: mínimo forzado por zona roja crítica cuando el redondeo habría dejado en cero un ítem urgente, o que el sugerido quedó por debajo de la unidad mínima y se omite — en ese caso DDMRP lo volverá a proponer cuando la necesidad crezca lo suficiente.
Si la referencia se compra por peso, en su lugar aparece Compra por peso, con los kilos por unidad de inventario, el costo por kilo, el peso resultante y el equivalente en UI.
Es el indicador de si el redondeo te está costando servicio. Un sobrante pequeño frente al sugerido es sano. Uno grande y repetido en la misma referencia significa que la estiba le queda grande a esa rotación: la conversación es con el proveedor sobre el tamaño de la unidad de despacho, no con el sugerido de hoy.
Explicación del sugerido
El globo de diálogo abre el mismo tipo de chat que en pedidos, con los datos DDMRP de esa línea del CEDI: existencia, tránsito, demanda diaria, amortiguador y cantidad propuesta.
Generar las órdenes
- Ajusta cantidades y excluye lo que no va.
- Si vas a emitir solo la orden de un proveedor, fíltralo o selecciona sus líneas.
- Pulsa Generar órdenes de compra. Con líneas seleccionadas se generan solo con esas; sin selección, con todo lo que tenga cantidad mayor que cero.
- Se crea una orden por proveedor y quedan listadas en Órdenes de compra.
El aviso lo dice de forma explícita: «Las órdenes se ven en pantalla pero NO se guardaron», seguido del motivo. Si eso ocurre, no des la orden por emitida: corrige la causa y vuelve a generar.
Compras
Órdenes de compra
Las órdenes consolidadas por proveedor, listas para confirmar, exportar y enviar al ERP.
Ciclo de vida de una orden
| Estado | Acción disponible | Resultado |
|---|---|---|
| Borrador | Confirmar | Pasa a Confirmada. |
| Confirmada | Enviar al ERP | Pasa a Enviada. |
| Enviada | — | Cerrada. Se marca con el check de enviada. |
Cualquier orden puede eliminarse desde el pie de su tarjeta.
Exportación
Cada orden se descarga en dos formatos:
- .txt (Siesa) — archivo plano delimitado por barras, con la cabecera de la orden y una línea por ítem: orden, PLU, cantidad, unidad de empaque, costo, unidad operativa, cantidad en esa unidad y equivalente en UI.
- CSV — con las mismas columnas más descripción y subtotal, para análisis en hoja de cálculo.
Sin importar en qué unidad se haya pedido — UE, estiba, media, caja o kilos — la cantidad que viaja al ERP es siempre el equivalente en unidades de inventario. La unidad operativa se transporta como información adicional.
En el encabezado hay cuatro indicadores: número de órdenes, proveedores distintos, unidades totales y costo total. Cada tarjeta muestra proveedor, fecha y hora de entrega, fecha de recibo en CEDI y el detalle de ítems con subtotales.
Este listado se arma en la sesión del navegador a partir de lo que generaste en el sugerido de compras: al recargar la página se vacía. Las órdenes sí quedan guardadas en el backend en el momento de generarlas.
Compras
Forecast de venta y compra
Proyección por producto de la venta esperada y de la compra necesaria para sostenerla, con la posibilidad de intervenir a mano cada período.
Cómo se usa
- Selecciona el producto en el desplegable. Se cargan sus dos series: venta y compra.
- Revisa la gráfica: histórico real, venta proyectada y compra proyectada sobre los mismos períodos.
- Ajusta los períodos futuros que lo necesiten escribiendo un valor. Dejar el campo vacío devuelve el valor base calculado.
- Si el ajuste debe afectar el abastecimiento, usa Realimentar buffer: actualiza el ADU del amortiguador y queda registrado en auditoría.
Controles
- Unidades / Valor. Alterna la vista entre cantidades y pesos, multiplicando por el precio de venta del producto.
- Recalcular. Recalcula el forecast del producto seleccionado o de toda la compañía.
- Plan de compra. Consolidado de los próximos seis períodos.
- Exportar CSV. Descarga período, tipo, venta base, ajuste, venta final, uplift, venta real y compra final.
El campo uplift refleja el multiplicador aplicado por las fechas especiales que caen en ese período.
Inteligencia
Copiloto (IA)
Un asistente conversacional que consulta la API real de tu compañía. No inventa cifras: llama a herramientas del sistema y responde con lo que devuelven.
Qué puede hacer
El copiloto tiene acceso a cuatro herramientas, y cada respuesta muestra cuáles usó:
| Herramienta | Para qué |
|---|---|
| buffers | Consultar el estado de los amortiguadores, por ejemplo qué productos están en zona roja. |
| recálculo IA | Disparar el recálculo de buffers desde la conversación. |
| datos maestros | Listar los datasets configurados y cuándo se sincronizaron. |
| resumen | Dar un panorama general de la compañía. |
La pantalla ofrece preguntas de arranque y el botón Nueva conversación para empezar de cero. En el título se indica el proveedor activo: Claude vía Vertex AI o la API de Claude.
Significa que el backend no tiene credenciales del modelo. Es una tarea de administración de la plataforma: hay que definir el proyecto y la región de Vertex AI (o una clave de API), autenticar y reiniciar el servicio.
Inteligencia
Pronóstico (IA)
Aquí es donde el amortiguador se pone al día. El motor aprende la demanda del historial de ventas y vuelve a dimensionar las zonas de cada buffer.
Recalcular
- Pulsa Recalcular buffers (IA).
- El motor estima el ADU y la variabilidad de cada ítem y redimensiona zona roja, amarilla y verde y el nivel objetivo.
- La tabla se actualiza con los valores nuevos, el método usado y la marca de tiempo del último cálculo.
Métodos de pronóstico
| Método | Cuándo lo elige el motor |
|---|---|
| Croston (intermitente) | Demanda esporádica, con muchos días en cero. Típico de referencias de baja rotación. |
| Suavizado exponencial | Demanda continua con tendencia. |
| Media móvil | Demanda estable, sin patrón marcado. |
Historial demo
El botón Generar historial demo crea 90 días de ventas sintéticas para poder probar el recálculo sin datos reales. Es una herramienta de demostración y pruebas: en un ambiente productivo el historial debe venir del ERP o de un cargue real.
Datos
Datos maestros
La conexión viva con el ERP. Aquí se define una consulta SQL por cada conjunto de datos que la plataforma debe traer, y con qué frecuencia refrescarlo.
Configurar la conexión
- Abre el editor de conexión e ingresa host, puerto, base de datos, usuario y contraseña del SQL Server.
- Pulsa Probar. El resultado dice si conectó y con qué motor, o el error exacto.
- Guarda. La contraseña se almacena cifrada y no se vuelve a mostrar: el campo queda vacío y solo se envía si escribes una nueva.
El botón Cargar presets siembra un juego de datasets predefinidos para no empezar de cero; después solo hace falta configurar la contraseña de la conexión.
Anatomía de un dataset
| Campo | Para qué sirve |
|---|---|
| Clave | Identificador estable del dataset. Obligatorio. |
| Nombre y descripción | Cómo se presenta en el listado. |
| Consulta | El SELECT que se ejecuta contra el ERP. Obligatorio. |
| Clave natural | Columnas que identifican de forma única cada registro. Separadas por comas. |
| Modo de sincronización | Upsert actualiza e inserta; Replace reemplaza el contenido. |
| Destino del feed | A qué entidad DDMRP alimenta: productos, tiendas, en tránsito, ventas — o solo almacén. |
| Mapeo del feed | JSON que asocia el campo DDMRP con la columna de tu consulta. |
Ejemplos de mapeo, según el destino:
- Productos:
{ "sku": "item", "name": "desc_item" } - Ventas:
{ "productSku": "item", "storeCode": "CO", "date": "fecha", "quantity": "cantidad" }
Acciones sobre cada dataset
- Previsualizar. Ejecuta la consulta y muestra hasta 25 filas sin escribir nada. Es el paso para validar el SQL y el mapeo.
- Sincronizar. Trae los datos y los almacena; si tiene destino de feed, además alimenta DDMRP. El aviso informa cuántos registros se almacenaron y cuántos pasaron al modelo.
- Ver registros. Navega el contenido almacenado con búsqueda y paginación.
- Editar y eliminar (esto último borra también sus registros; pide confirmación).
El historial de ventas no se guarda en el almacén genérico, así que Ver registros no está disponible para ellos. Lo que reporta la sincronización es cuántos días de demanda entraron, que es lo que realmente alimenta el ADU.
Datos
Cargar datos
La vía manual: subir archivos o configurar conexiones puntuales por entidad, sin pasar por el catálogo de datasets.
Entidades
| Grupo | Entidades |
|---|---|
| Maestros | Productos · Tiendas · Inventario |
| Transaccional | Ventas · Insumo / Recepción · Merma · Baja |
Cargar un archivo
- Elige la entidad. La pantalla muestra las columnas obligatorias y opcionales que espera.
- Descarga la plantilla CSV. Trae los encabezados correctos y se abre bien en Excel con tildes.
- Llena el archivo y súbelo.
- Usa Validar primero: informa cuántos registros son válidos y cuántos tienen error, sin escribir nada.
- Cuando esté limpio, carga. El mensaje distingue con precisión entre «cargados N de M registros» y una validación que no escribió nada.
El caso especial de las ventas
Las ventas viajan por un importador propio de historial, porque la fecha de cada venta es el dato esencial y no debe descontar inventario. Su plantilla tiene columnas propias:
productSku, storeCode, date, quantity, unitCost
- La fecha admite
AAAA-MM-DDoDD/MM/AAAA(día primero). - El importador agrupa por producto, tienda y día, y netea las devoluciones.
- Reemplaza el rango de fechas que traiga el archivo, así que volver a cargar el mismo archivo no duplica la demanda.
- El resultado informa días cargados, unidades, productos, tiendas y el rango de fechas.
Conexiones a base de datos o API REST
Además del archivo, cada entidad admite dos orígenes conectados:
- Base de datos: host, puerto, base, usuario, contraseña y la consulta SQL.
- API REST: URL, método, jsonPath para ubicar el arreglo dentro de la respuesta y la autenticación por cabecera.
En ambos casos el flujo es el mismo: Probar conexión → Previsualizar (hasta 20 filas, con sus columnas) → Guardar conexión. Las conexiones guardadas quedan listadas por entidad y se pueden importar con un clic o eliminar.
Configuración
Parámetros globales DDMRP
Los factores que gobiernan el tamaño del amortiguador y la forma del sugerido, con resolución en cascada: global → categoría → producto.
Bloques que se piden por estiba
La primera tarjeta lista los bloques del maestro de productos. Los que marques quedan configurados para que sus productos se sugieran por estiba por defecto (junto con los de alta rotación por clase AA o A). Pulsa Guardar bloques de estiba para persistir el cambio.
Las medias estibas no tienen regla automática: las decide el analista línea por línea según la demanda.
Cálculo del amortiguador
| Parámetro | Qué controla |
|---|---|
| Días de inventario objetivo | Cobertura deseada por ítem. |
| Tren de entrega (días) | Lead time logístico de CEDI a tienda. |
| Factor de variabilidad | Multiplicador de la zona roja: cuánta seguridad ante demanda errática. |
| Factor zona verde | Tamaño de lote y frecuencia de reposición. |
| Factor de seguridad | Colchón adicional sobre el cálculo base. |
| Ventana de ventas (días) | Días de historia que se usan para los promedios de demanda. |
| Redondear a unidad de empaque | Si se activa, el sugerido se ajusta al múltiplo de empaque más cercano. |
Parámetros por categoría
La tabla inferior permite sobrescribir, por categoría, los días de inventario objetivo, el factor de variabilidad y el factor de zona verde, y activar o desactivar cada sobrescritura con su interruptor.
Los bloques de estiba se guardan en el servidor y afectan a toda la compañía. En cambio, los factores globales y por categoría de esta pantalla se conservan en la sesión del navegador: sirven para simular escenarios, pero se pierden al recargar. Para valores que persisten por producto y por geografía usa Parametrización de buffers.
Configuración
Fechas especiales
Los eventos que alteran la demanda — quincenas, fin de año, día de la madre, ferias locales — y el multiplicador que se aplica a la proyección durante esos días.
Campos de una fecha especial
| Campo | Valores | Nota |
|---|---|---|
| Nombre | Texto libre | Obligatorio. |
| Fecha inicio / fin | Rango de días | Obligatorias. |
| Recurrencia anual | Sí / No | Si se activa, el evento se repite cada año en las mismas fechas. |
| Alcance | Compañía · Categoría · Bloque · Producto | A qué productos aplica. Salvo «Compañía», hay que indicar la referencia. |
| Alcance geográfico | Compañía · Región · CEDI · Tienda | Dónde aplica. Salvo «Compañía», hay que indicar la referencia. |
| Factor de uplift | Número | Multiplicador de la demanda. Por defecto 2 (el doble). |
| Activo | Sí / No | Permite desactivar sin borrar. |
Cada fecha se puede crear, editar y eliminar (con confirmación). El listado resume el alcance en lenguaje llano: «Toda la compañía» / «Todas las tiendas» cuando no hay restricción. El efecto se ve en la columna uplift del forecast.
Configuración
Cargue de parametrización
Carga masiva de parámetros DDMRP por archivo, con tres plantillas descargables y un histórico de cargues.
Plantillas
| Plantilla | Columnas |
|---|---|
| Productos | sku, nombre, categoria, bloque, pareto, unidad_medida, costo, precio_venta, lead_time_dias, cantidad_minima, multiplo_empaque |
| Parámetros DDMRP por producto | sku, dias_inventario_objetivo, factor_variabilidad, factor_zona_verde, factor_seguridad, lead_time_personalizado, pedido_minimo, pedido_maximo, multiplo |
| Configuración por categoría | categoria, factor_variabilidad, factor_seguridad, lead_time_dias, pedido_minimo, pedido_maximo, multiplo |
Cada plantilla incluye una fila de ejemplo — bórrala antes de subir. Se pueden descargar una por una o todas de una vez. El archivo se sube arrastrándolo a la zona de carga o con el selector; formatos aceptados CSV y XLSX, hasta 10 MB.
El histórico de cargues registra identificador, fecha, archivo, registros procesados, errores y estado (Procesado, Con errores, En proceso).
Las plantillas son reales y utilizables, pero el procesamiento del archivo todavía está simulado: genera un resultado y una entrada en el histórico sin escribir los parámetros en la base. Mientras tanto, para carga masiva efectiva usa Importar en el maestro de productos (para el catálogo) y Parametrización de buffers (para los valores del amortiguador).
Administración
Empresa
El resumen del estado de parametrización de tu compañía: cuántos países, zonas, regiones, minirregiones y tiendas ubicadas hay en la jerarquía, más el número de roles y usuarios. Debajo, accesos directos a Geografía, Tiendas, Usuarios, Roles, Parámetros DDMRP y Alta de compañía.
Es un buen punto de partida cuando llegas a una implantación nueva: si «Tiendas ubicadas» está en cero, la geografía todavía no está armada y el sugerido no podrá agruparse por región.
Administración
Geografía
La jerarquía territorial de la compañía. Tiene cuatro niveles fijos, y de ellos cuelgan las tiendas.
País → Zona → Región → MiniRegión → (tiendas)
La pantalla se divide en el árbol, a la izquierda, y el formulario de alta, a la derecha. Para crear un nodo: elige el nivel, selecciona el padre (excepto para país), escribe el código y el nombre, y agrega. El árbol muestra el conteo de tiendas de cada minirregión.
La geografía no es decorativa: es lo que permite dar a un usuario alcance sobre una zona o una tienda concreta, y lo que agrupa el sugerido de pedidos por región. Sin ella, todos los alcances tienen que ser globales.
Administración
Tiendas
Un listado con buscador por código o nombre. Cada fila muestra el código, el nombre, la región (campo heredado) y un desplegable para asignar la minirregión a la que pertenece la tienda. El cambio se guarda al seleccionar; también se puede dejar «sin asignar».
Las opciones del desplegable se muestran con la ruta completa zona / región / minirregión, para no confundir nombres repetidos.
Administración
Maestro de productos
El catálogo de ítems de la compañía con su clasificación DDMRP y sus factores de estibado.
El listado
Buscador por SKU o nombre y filtro por categoría. Cada fila muestra SKU, nombre, categoría, proveedor preferente, bloque, clase de rotación, unidad de medida, costo, precio, lead time, pedido mínimo, múltiplo de empaque, los factores de estibado y el estado activo/inactivo. Desde la fila se edita o se elimina el producto.
La columna Estiba resume los factores: unidad de agrupación, factor de estiba y factor de media. Si el producto se compra por peso, aparece además el peso por unidad. Un producto sin factor de estiba se maneja «solo empaque».
Crear o editar un producto
El formulario recoge:
- Identificación: SKU (no editable una vez creado) y nombre.
- Clasificación: categoría, bloque, clase de rotación y proveedor preferente.
- Comercial: unidad de medida, costo, precio de venta.
- Abastecimiento: lead time en días, pedido mínimo, múltiplo de empaque.
- Estado: activo o inactivo.
Importar productos
El botón Importar abre un asistente de tres pasos con tres orígenes:
- Elige el origen. Archivo plano CSV (pegado o subido), base de datos (PostgreSQL o SQL Server, con consulta SELECT) o API REST (URL, método, jsonPath y cabeceras).
- Mapea las columnas. El asistente detecta las columnas y una muestra de filas, y propone la correspondencia. Si usas los nombres de las plantillas (
sku,name,category,block,pareto,costPrice,sellPrice…) el mapeo es automático. - Revisa el resultado: productos creados, actualizados y filas con error sobre el total.
Administración
Parametrización de buffers
La herramienta de parametrización masiva de amortiguadores. Permite fijar valores a cualquier nivel geográfico o copiar la parametrización de una tienda a otras.
Pestaña «Aplicar por geografía»
- Elige el ámbito: toda la empresa, una zona, una región, una minirregión o una tienda.
- Elige los productos: todos, los de una categoría, o un producto concreto.
- Escribe los valores. Los campos que dejes en blanco no se tocan: solo se aplica lo que llenes.
- Previsualiza el impacto. El sistema responde cuántas tiendas por cuántos productos equivalen a cuántos buffers afectados. Revisa esa cifra antes de aplicar.
- Aplica.
Valores parametrizables
| Campo | Efecto |
|---|---|
| Zona roja / amarilla / verde | Fija el tamaño de cada zona del amortiguador. |
| Lead time (días) | Tiempo de reposición usado en el cálculo. |
| Factor variabilidad | Ajusta la seguridad de la zona roja. |
| Factor seguridad | Colchón adicional. |
| Pedido mínimo / máximo | Acota la cantidad que puede sugerir el sistema. |
| Múltiplo de pedido | Obliga a pedir en múltiplos de esa cifra. |
Pestaña «Clonar parametrización»
- Copiar de una tienda a otras. Se elige una tienda plantilla y se copia toda su parametrización por producto a las tiendas destino, sea a todas las demás o a una selección concreta. Útil cuando abres tiendas nuevas con el mismo formato.
- Uniformar dentro de una tienda. Aplica los mismos valores base a todos los productos de una tienda.
Aplicar por geografía a nivel «Toda la empresa» y «Todos los productos» toca todos los amortiguadores de la compañía. Previsualiza siempre el impacto antes de confirmar.
Administración
Usuarios y asignaciones
Aquí se decide dos cosas por cada persona: qué puede hacer (el rol) y sobre qué información (el alcance geográfico). Son independientes.
Cómo asignar
- Selecciona el usuario en la lista de la izquierda. A la derecha aparecen sus asignaciones actuales.
- En Nueva asignación, elige el rol.
- Elige el nivel de alcance. Si no es GLOBAL, selecciona el nodo concreto.
- Pulsa Asignar. La asignación aparece en la tabla y se puede quitar en cualquier momento.
Niveles de alcance
| Nivel | El usuario ve… |
|---|---|
GLOBAL | Toda la compañía. |
COUNTRY | Un país completo. |
ZONE | Una zona. |
REGION | Una región. |
MINIREGION | Una minirregión. |
STORE | Una sola tienda. |
Un mismo usuario puede tener varias asignaciones: por ejemplo, rol de Analista sobre una zona y rol de Consulta a nivel global.
Administración
Roles y permisos
La matriz de qué puede hacer cada rol. Los roles de sistema vienen predefinidos y no se editan; para necesidades propias se crean roles de la compañía.
Crear un rol
- Pulsa + Nuevo rol.
- Define la clave (por ejemplo
GERENTE_REGION), el nombre visible, la descripción y el alcance por defecto. - Créalo. El rol nace sin permisos.
- Marca los permisos en la matriz y pulsa Guardar permisos.
La matriz agrupa los permisos por módulo y muestra el código y la descripción de cada uno. Un rol de sistema aparece marcado como solo lectura: sus casillas están deshabilitadas. La lista lateral indica, por rol, cuántos permisos tiene y cuántas asignaciones existen — útil antes de eliminarlo.
Administración
Auditoría del sistema
El rastro de quién hizo qué, cuándo, desde dónde y con qué resultado. Registra mutaciones, autenticación y errores, siempre acotado a tu compañía.
Resumen de los últimos 7 días
Tres indicadores: eventos totales, eventos fallidos (resaltados si hay alguno) y el reparto por categoría.
| Categoría | Qué registra |
|---|---|
AUTH | Inicios de sesión, cierres y fallos de autenticación. |
DATA | Creación, edición y borrado de datos de negocio. |
CONFIG | Cambios de parametrización. |
SECURITY | Roles, permisos, accesos denegados. |
SYSTEM | Eventos del propio sistema. |
Filtros y detalle
Se puede filtrar por categoría, resultado (éxito o fallo), entidad, texto libre (acción, ruta o correo) y rango de fechas. La tabla muestra fecha y hora, categoría, acción, usuario, entidad, código HTTP, estado, IP y duración en milisegundos; las filas fallidas se resaltan.
Al hacer clic en una fila se expande el detalle: ruta completa con el método, identificador de la petición, entidad e identificador afectados, user agent y la metadata en formato JSON. La paginación admite 25, 50 o 100 registros por página.
Administración
Alta de compañía
Crea una compañía nueva completa en un solo formulario de cuatro bloques. Es la vía asistida, la que usa el equipo de implantación.
| Bloque | Campos | ¿Obligatorio? |
|---|---|---|
| 1 · Compañía | Nombre, NIT, correo, teléfono. | Nombre y NIT. |
| 2 · Administrador inicial | Nombre, correo, contraseña (mínimo 8 caracteres). | Sí, los tres. |
| 3 · Geografía inicial | País, zona, región y minirregión (código y nombre de cada uno). | Opcional. Se crea en cascada: solo se envían los niveles completos. |
| 4 · Licencia inicial | Tipo, plan, asientos y funcionalidades. | Sí. |
Licencia inicial
- Tipo Demo → planes de 15, 30 o 60 días.
- Tipo Paga → planes mensual, semestral o anual.
- Asientos: número de usuarios, o la casilla de usuarios ilimitados.
- Funcionalidades: Pedidos, Compras, Pronóstico (IA), Copiloto (IA), Datos maestros y Parámetros DDMRP. Vienen todas activas y se desmarcan las que no apliquen.
Al crear, la pantalla confirma con el nombre y el NIT de la compañía y el correo del administrador, y ofrece crear otra.
Administración
Términos y condiciones (administración)
Gestión de las versiones del documento legal y del registro de firmas.
Ciclo de una versión
- Nueva versión. Se crea como borrador, con su número de versión, título y contenido.
- Editar. Mientras sea borrador, el texto se puede modificar o el borrador se puede eliminar.
- Publicar. A partir de ese momento la versión es la vigente y todos los usuarios deben firmarla para poder escribir.
De las versiones ya publicadas solo se puede ver el texto. El botón de firmas abre el registro de aceptaciones: quién firmó, qué versión y cuándo.
Publicar una versión nueva deja a cada usuario de la compañía en modo consulta hasta que la acepte. Publica cuando el texto esté definitivo.
Administración
Mi licencia
El estado del licenciamiento de tu propia compañía y, cuando está habilitado, el camino para ampliarlo o renovarlo sin pasar por ventas.
Lo que muestra
- Una franja con el estado (verde si está activa, roja si está en solo lectura).
- Cinco tarjetas: tipo (demo o paga), plan, fecha de vencimiento, días restantes y asientos.
- Las funcionalidades habilitadas por la licencia.
Prueba piloto de 3 meses
Si tu operación supera las 10 tiendas, puede aparecer la oferta de activar una prueba de tres meses sin costo, con hasta 10 tiendas y todas las funcionalidades. No pide tarjeta y se activa una sola vez.
Pagar o renovar
Cuando el módulo de pagos está habilitado para tu compañía:
- Elige la duración del plan.
- Elige la forma de pago entre los proveedores disponibles.
- Compara los planes. Cada tarjeta muestra la cobertura y el precio.
- Pulsa Pagar este plan. Te redirige al proveedor y, al volver, la pantalla informa si el pago se aplicó.
El precio de lista está en dólares. Si el cobro se hace en pesos, la pantalla indica la TRM usada y su fecha de vigencia. Para operaciones de 500 tiendas o más existe el plan Enterprise, con precio a convenir por el canal de ventas.
Si el módulo de pagos no está habilitado, la pantalla simplemente indica que para ampliar o renovar hay que contactar al proveedor.
Plataforma
Licencias
Pantalla del proveedor (HardSupply), no del cliente: emite, renueva y suspende las licencias de todas las empresas.
El listado muestra cada compañía con su NIT, estado, plan, fecha de vencimiento y asientos. Al gestionar una, el panel lateral permite:
| Control | Efecto |
|---|---|
| Tipo | Demo (15, 30, 60 o 90 días) o Paga (mensual, semestral, anual). |
| Asientos | Número de usuarios permitidos, o ilimitado. |
| Días de gracia | Margen tras el vencimiento antes de entrar en solo lectura. |
| Funcionalidades | Qué módulos habilita la licencia. |
| Pagos habilitados | Muestra el CTA de pago en «Mi licencia» y en el onboarding de esa compañía. |
Las acciones disponibles son emitir o guardar cambios, renovar por el término elegido, suspender (deja a la compañía en solo lectura), reactivar una suspendida o cancelada y cancelar de forma definitiva.
Plataforma
Alta autogestionada
El camino por el que una empresa se da de alta sola, sin intervención del equipo de implantación. Corre en un servicio aparte y termina entregando una compañía operativa.
Registro
- La empresa se registra y acepta los términos de la plataforma, que se muestran antes de crear la cuenta.
- Recibe un correo y verifica la cuenta. Si no llega, se puede reenviar.
- Al activarse, se emite un token de sesión del asistente y empieza el recorrido guiado.
Pasos del asistente
| # | Paso | Qué hace | ¿Se puede omitir? |
|---|---|---|---|
| 1 | Geografía | Crea el primer País → Zona → Región → MiniRegión. | No |
| 2 | Tiendas | Crea una tienda o un lote completo. Informa creadas y fallidas por separado: el éxito parcial es válido y no revierte lo que ya entró. | No |
| 3 | Catálogo | Alta manual producto a producto o importación por CSV (actualiza por SKU). | Sí, no bloquea el alta. |
| 4 | Historial de ventas | Carga desde archivo o desde una consulta al ERP. Antes se puede previsualizar el mapeo sin escribir nada. Alimenta el ADU. | Sí, pero el paso no queda listo: sin ventas los amortiguadores arrancan en cero. |
| 5 | Parámetros DDMRP | Define los factores del amortiguador y si la compañía maneja estibas. | No |
| 6 | Proveedores | Alta de proveedores, admite lote con informe de éxito parcial. | Sí |
| 7 | Equipo | Crea los usuarios con su rol y su alcance geográfico, activos de inmediato. | Sí |
| 8 | Diagnóstico inicial | Encuesta de línea base autoreportada. | Sí, enviarla vacía equivale a omitirla. |
En todo momento hay un progreso con la lista de verificación y el porcentaje completado, y una pantalla de licencia que confirma con qué plan queda la compañía. Los endpoints de cada paso están en el explorador OpenAPI, bajo el servicio Onboarding.
API y servicios
Arquitectura y Swagger
Micaela expone su funcionalidad como API REST documentada con OpenAPI 3. Son tres servicios desacoplados, cada uno con su propia especificación y su propia interfaz Swagger.
/api/docs.Los tres servicios
| Servicio | Qué expone | Puerto | Swagger | Contrato |
|---|---|---|---|---|
| DDMRP SaaS API backend |
El núcleo: autenticación, autorización, productos, tiendas, inventario, pedidos, compras, sugeridos DDMRP, forecast, datos maestros, licencias, términos y auditoría. | 3000 |
/api/docs |
/api/docs-json |
| Onboarding API onboarding-service |
El alta autogestionada: registro, verificación de cuenta y los pasos del asistente. | 3200 |
/api/docs |
/api/docs-json |
| Payments API payments-service |
Pagos y donaciones de licencia: catálogo de planes, checkout, intentos de pago y webhooks de los proveedores. | 3100 |
/api/docs |
/api/docs-json |
Los tres montan sus rutas bajo el prefijo global /api, con la excepción de
/health, que responde sin prefijo para las sondas de disponibilidad.
La interfaz Swagger se habilita en todos los entornos excepto producción,
salvo que se fuerce con la variable SWAGGER_ENABLED. Su ruta se puede
cambiar con SWAGGER_PATH. Para consultar el contrato sin desplegar nada,
usa el explorador de este manual.
API y servicios
Autenticación y multi-tenencia
El flujo de token
- Obtén el token con
POST /api/auth/login, enviando correo y contraseña. - Envíalo en cada petición como
Authorization: Bearer <token>. - Renuévalo con
POST /api/auth/refreshantes de que expire.
En Swagger UI se autoriza una sola vez con el botón Authorize, pegando el token del paso 1; la sesión queda persistida entre recargas de la página.
curl -s http://localhost:3000/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"...","password":"..."}'
curl -s http://localhost:3000/api/products \
-H "Authorization: Bearer $TOKEN"
Aislamiento por compañía
Todos los endpoints filtran automáticamente por la compañía del token: no hace falta — ni se permite — pasar el identificador de compañía a mano. El alcance geográfico del usuario acota además qué tiendas ve dentro de esa compañía.
Dos particularidades
-
Onboarding. Sus pasos no se autorizan con JWT sino con la cabecera
X-Onboarding-Session, el token de sesión del asistente que se emite al activar la cuenta. Es deliberado: la compañía todavía no existe cuando empieza el recorrido. - Webhooks de pagos. No llevan token de usuario: los firma el proveedor de pago y el servicio valida esa firma.
Dos condiciones devuelven error en cualquier endpoint de escritura, con independencia
de los permisos: una licencia en modo solo lectura, y unos términos y condiciones sin
firmar (código TERMS_ACCEPTANCE_REQUIRED).
API y servicios
Explorador OpenAPI
El contrato completo de los tres servicios, generado directamente del código. Elige el servicio, filtra por texto y despliega cualquier operación para ver sus parámetros, cuerpo y respuestas.
API y servicios
Regenerar el contrato
La especificación no se escribe a mano: se deriva de los controladores y los DTO. Cuando cambie el código, se vuelve a generar.
El backend trae el generador listo, y produce openapi.json sin necesidad de base de datos ni de levantar el servidor:
cd backend
npm run swagger:json # → backend/openapi.json
Funciona porque arranca Nest en modo preview: construye el grafo de módulos y lee los metadatos de rutas y DTO, pero no instancia los proveedores ni ejecuta los hooks de ciclo de vida, así que el cliente de base de datos nunca intenta conectarse.
Con los servicios en ejecución, el contrato también se descarga en vivo:
curl -s http://localhost:3000/api/docs-json -o backend-openapi.json
curl -s http://localhost:3200/api/docs-json -o onboarding-openapi.json
curl -s http://localhost:3100/api/docs-json -o payments-openapi.json
El archivo resultante se puede cargar en cualquier herramienta compatible con OpenAPI 3:
Postman, Insomnia, Bruno, o un generador de clientes como openapi-generator.
Referencia
Roles predefinidos
Seis roles vienen de fábrica. Tres son genéricos y tres están pensados para la estructura territorial del retail. Todos se pueden usar como plantilla para crear roles propios.
| Rol | Alcance por defecto | Qué puede hacer |
|---|---|---|
| Administrador | GLOBAL | Todo: operación, administración, roles, usuarios, auditoría y parametrización. |
| Analista | GLOBAL | Operación diaria completa: pedidos (crear, editar, aprobar, enviar a Siesa), compras, recálculo de buffers, importar y sincronizar datos. Ve el costo del producto, no el margen. |
| Consulta | GLOBAL | Solo lectura de inicio, pedidos y pronóstico. No ve costo ni margen. |
| Gerente Nacional | COUNTRY | Operación y analítica de todo un país, incluida la aprobación de compras y los parámetros DDMRP. Ve costo, margen y costo en pedidos. |
| Gerente de Zona | ZONE | Operación de su zona: pedidos, compras y recálculo de buffers. Ve el costo del producto. |
| Jefe de Tienda | STORE | Inicio, sugerido y carrito de su tienda, con envío a Siesa y creación de pedidos. Sin acceso a costos. |
El alcance por defecto es solo la sugerencia del rol. Al asignarlo a una persona en Usuarios se elige el alcance real, que puede ser distinto: un Analista puede quedar limitado a una sola región.
Referencia
Catálogo de permisos
Los permisos son de cuatro tipos. Entender la diferencia ayuda a diagnosticar por qué alguien no ve o no puede hacer algo.
| Tipo | Formato | Controla |
|---|---|---|
| PAGE | page:pedidos.view | Que la pantalla aparezca en el menú y se pueda abrir. |
| ACTION | carrito.enviar_siesa | Que un botón o una operación concreta esté disponible. |
| DATA | products.update | Leer, crear, editar o borrar una entidad. |
| FIELD | field:product.cost:read | Ver un campo sensible, como el costo o el margen. |
Acciones más usadas
| Código | Permite |
|---|---|
carrito.enviar_siesa | Enviar el carrito a Siesa. |
orders.create · update · approve | Crear, editar y aprobar pedidos. |
purchase.create · send · approve | Crear, enviar y aprobar órdenes de compra. |
ddmrp.recalcular_buffers | Recalcular los amortiguadores. |
data.import · data.sync | Importar archivos y sincronizar fuentes. |
params.update | Modificar los parámetros DDMRP. |
users.manage · roles.manage | Gestionar usuarios y roles. |
company.parametrize | Crear y parametrizar compañías. |
licenses.request_pilot | Activar la prueba piloto. Funciona incluso en modo solo lectura, porque quien la pide suele tener la licencia vencida. |
Licencia y permisos: dos filtros encadenados
Para que puedas hacer algo se tienen que cumplir las dos condiciones: que tu rol tenga el permiso y que la funcionalidad esté incluida en la licencia. Cada funcionalidad licenciable agrupa un conjunto de permisos:
| Funcionalidad | Habilita |
|---|---|
| Pedidos | Sugerido de pedidos, carrito y envío a Siesa. |
| Compras | Sugerido de compras y órdenes de compra a proveedor. |
| Pronóstico (IA) | Pronóstico de demanda y recálculo asistido de buffers. |
| Copiloto (IA) | Asistente conversacional sobre los datos de la operación. |
| Datos maestros | Datasets dinámicos, ingesta y sincronización de fuentes. |
| Parámetros DDMRP | Parametrización y cargue de parametrización. |
Lo que no está en ninguna funcionalidad es núcleo y está siempre disponible: inicio, administración, lecturas de catálogo. Y en modo solo lectura se conservan las lecturas — ver pantallas y consultar datos — y caen todas las escrituras.
Referencia
Solución de problemas
Los síntomas más habituales y qué hacer con cada uno.
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
| El sugerido no propone nada, o todo sale en cero. | No hay historial de ventas, así que el ADU es cero y los amortiguadores no tienen tamaño. | Carga ventas en Cargar datos o sincronízalas desde el ERP, y luego recalcula los buffers. |
| Una línea muestra el estado «Sin parámetro». | Ese producto/tienda no tiene amortiguador definido. | Aplica valores desde Parametrización de buffers, o clona la parametrización de una tienda plantilla. |
| Guardo algo y no pasa nada, o sale un aviso de solo lectura. | La licencia está vencida, suspendida, cancelada o sin configurar. | Revisa Mi licencia y renueva; el proveedor la reactiva desde la administración de licencias. |
| Me manda a la pantalla de términos cada vez que intento guardar. | Hay una versión nueva de los términos sin firmar. | Léela hasta el final y acéptala. Es la única salida del bloqueo. |
| No veo una pantalla que aparece en este manual. | Falta el permiso de página, o la funcionalidad no está en la licencia. | Verifica tu rol en Roles y permisos y las funcionalidades en Mi licencia. |
| No veo los costos en pedidos o productos. | Tu rol no tiene los permisos de campo sensible. | Se otorgan con field:product.cost:read y equivalentes desde la matriz de permisos. |
| «Copiloto no configurado». | El backend no tiene credenciales del modelo de IA. | Es configuración de plataforma: definir el proyecto y la región de Vertex AI (o una clave de API) y reiniciar el servicio. |
| Generé órdenes pero el aviso dice que no se guardaron. | El backend rechazó la persistencia; el aviso incluye el motivo exacto. | No des la orden por emitida. Corrige la causa y vuelve a generar. |
| Recargué la página y el carrito o las órdenes desaparecieron. | Ambos listados viven en la sesión del navegador. | Trabaja el carrito en una sola sesión. Las órdenes ya generadas sí quedaron guardadas en el backend. |
| Cargué el mismo archivo de ventas dos veces. ¿Se duplicó la demanda? | No. El importador reemplaza el rango de fechas que trae el archivo. | Nada que hacer: recargar el mismo archivo es seguro. |
| La sincronización de un dataset de ventas dice «0 almacenados». | Los datasets de ventas no guardan en el almacén genérico. | Fíjate en el otro número: los días de ventas cargados. Ese es el que cuenta. |
| El sugerido propone estibas donde no debería (o al revés). | El bloque está marcado como «bloque de estiba», o el producto es de clase AA/A. | Ajusta la selección en Parámetros globales, o cambia la unidad línea por línea en el sugerido. |
| La API devuelve 401 en todas las llamadas. | Token ausente, mal formado o vencido. | Vuelve a pedirlo en /api/auth/login y envíalo como Authorization: Bearer. En Swagger UI, usa el botón Authorize. |
| Swagger UI no carga en el servidor desplegado. | Está deshabilitado en producción por defecto. | Consulta el explorador de este manual, o habilita SWAGGER_ENABLED en un entorno no productivo. |