| Producto | Cat. | Stock | 7d | 14d | 30d | 60d | 90d | Cobert. | Déficit | Días MOQ | Pedir | Prioridad | Estado |
|---|
Cargando datos…
El Mando de Catálogo centraliza las decisiones semanales sobre el catálogo de Wituka: qué producir, qué promocionar al núcleo permanente del catálogo (Must Have), qué mover a Last Units y qué dejar morir en parrilla. Cruza stock por modelo+talla con histórico de ventas reales de Shopify.
wituka_replenishment.json) se publica en ecommercewebdashboard.pampl.ing y esta app lo lee al abrirse.Cada fila es un modelo entero (ej. "Is not that deep"), sumando todas las tallas y colores. Producción tiene MOQ por modelo (500 uds repartibles entre colores), por eso operamos al nivel modelo. El desglose por talla aparece al expandir el chevron, en las líneas ⚠ Rotas / ✓ Disponibles y, si el modelo tiene varios colores, una línea por color.
velocidad × lead_time − stock.vel_ponderada = 0.5 × s7/7 + 0.3 × s14/14 + 0.2 × s30/30
velocidad = max(vel_ponderada, s30/30)
stock_al_recibir = max(0, stock_actual − velocidad × lead_time)
target_al_recibir = velocidad × buffer
pedir_natural = max(0, target_al_recibir − stock_al_recibir)
pedir = max(MOQ, pedir_natural)
↓ (si múltiplo > 0)
ceil(pedir / múltiplo) × múltiplo
📦 Producir — Must Have con cantidad sugerida > 0 (excluye Last Units). Al pulsar "Comunicar producción" se sincroniza con el workflow de la tabla principal y se exporta al CSV de órdenes con desglose por SKU+EAN+color+talla.
⬆️ Promocionar a MH — productos NO Must Have a punto de cumplir el umbral. Dos sub-tipos:
Promocionar lo añade como Must Have manual hasta que el algoritmo lo confirme automáticamente.
⬇️ Mover a Last Units — productos en declive sostenido y con stock relevante. Para que aparezcan tienen que cumplir simultáneamente dos cosas:
Criterios de "declive sostenido":
El stock no es uniforme: un modelo con 156 uds repartidas en S/M/L (que vendían) tiene salida natural; pero las mismas 156 uds clavadas en XS/4XL son stock muerto, casi imposible de vender al precio normal. Para detectar esto clasificamos cada talla:
En cada card de Last Units se ve la línea 📐 Stock por talla: cada talla con sus uds de stock y su % de ventas históricas. Las verdes son vivas, las moradas son muertas.
Cruza nivel de stock con velocidad. Un modelo a 0 que vende 1 ud al mes no es crítico — repones lo que se vende.
El campo de búsqueda matchea por nombre, color, SKU o EAN de cualquiera de las variantes del modelo.
Hay tres exports distintos:
Separador ; para que Excel lo abra directamente.
El navegador guarda: workflow producir/recibir, overrides manuales del Must Have, decisiones tomadas en el tablero (por semana ISO) y fecha de última revisión. Borrar localStorage limpia todo (no afecta a Shopify ni a producción real).
Un producto entra en Must Have cuando demuestra demanda sostenida. Es un concepto identitario: si forma parte del alma de la marca y vende bien, es Must Have, aunque ahora mismo no haga falta producirlo. La decisión operativa de producir o no es independiente y se gestiona en la columna Pedir y los avisos ⚠️ MOQ no viable de la tabla principal.
Criterios de demanda (todos obligatorios):
NO se aplican filtros operativos. Aunque un Must Have tenga stock para 10 años o aunque su MOQ tarde en consumirse, sigue siendo Must Have. Eso solo afecta a si hay que producirlo ahora (lo ves en la columna Pedir, que será 0 en esos casos), no a si es identitario.
Por qué velocidad media y no ponderada. En el resto de la app usamos velocidad ponderada (50% últimos 7d, 30% 14d, 20% 30d) para reaccionar rápido a tendencias. Pero el Must Have es estable: debe demostrar consistencia histórica, no entrar por un repunte de la última semana. Por eso aquí usamos la media plana s90/90.
✨ Excepción para novedades calientes. Productos publicados entre 14 y 180 días entran al Must Have si demuestran ritmo muy fuerte: velocidad ponderada anualizada ≥ 1.000 uds/año (≈2,7 uds/día sostenido). Captura bombazos como Summer Vibes que claramente ya son must-have aunque acaben de salir. Aparecen con badge ✨ Novedad.
El listado se recalcula automáticamente cada hora con los datos frescos del dashboard. Si un producto deja de cumplir, sale. Si una novedad ≥180d empieza a cumplir, entra automáticamente.
| Producto | Categoría | 30d | 90d | 2025 |
|---|
Comparación entre la lista oficial de Must Have de Marketing/Tiendas (Excel) y los Must Have que detecta automáticamente esta app. Cruce por nombre del modelo.
Modelos que se quedarán sin stock pronto al ritmo de ventas actual. Se calcula sobre la velocidad ponderada (50% últimos 7d + 30% 14d + 20% 30d).
| Producto | Categoría | Stock | Vel/d | Cobertura | Rompe el… |
|---|
Revisión semanal del catálogo: qué producir, qué promocionar a Must Have y qué mover a Last Units. Las decisiones se guardan localmente en este navegador.
Productos que NO son Must Have pero ya muestran demanda sólida o son novedades calientes a punto de cumplir umbral. Promocionarlos los marca como manuales hasta que el algoritmo los confirme.
Productos en declive sostenido con stock relevante (≥30 uds y cobertura natural ≥90d, o stock zombie ≥50%). Mover a LU es una acción manual en Shopify — aquí la app sólo señala los candidatos. Los productos con poco stock o cobertura corta se vacían solos y no aparecen aquí.
Decisiones tomadas. Borrar localStorage del navegador limpia este historial (las acciones reales en Shopify NO se revierten).
| Producto | Cat. | Stock | 7d | 14d | 30d | 60d | 90d | Cobert. | Déficit | Días MOQ | Pedir | Prioridad | Estado |
|---|