Grid /camisetas

— productos · — Generado:
Click en una tarjeta para ampliar

📌 Actual en web

Pág 1 / 1

🎯 Propuesto

Pág 1 / 1

Movimientos propuestos

Producto Pos actual Pos nueva Δ Uds 90d Stock Impacto Motivo del movimiento
Cerrar

¿Cómo se hace esta propuesta?

El dashboard analiza cada producto del catálogo, le asigna una acción y propone movimientos para que la grilla rinda más. Hay reglas compartidas entre Pampling y Wituka, pero también diferencias importantes según la fuente de datos disponible. Las marcas Pampling Wituka indican a qué tienda aplica cada bloque.

0. Glosario de etiquetas (qué significa cada letra)

Cada producto puede tener una de estas etiquetas según su situación. La letra que ves en el badge de la card y en la columna "Tag" de la tabla de Movimientos viene de aquí.

LetraSignificadoAplica a
N · Novedad Pampling: producto a 9,99 € hoy (xpresstee activo). Wituka: 2 primeras pos de la colección Novedades. Se queda fija, no se mueve. Ambas
S · Rotura Stock crítico (cubre menos del 50 % de la demanda). S total (health = 0): al final del grid. S crítico (0 < health < 0.5): a pág 3+. Ambas
Pampling solo detecta rotura total; Wituka detecta también rotura por talla (ver 3.b).
W · Stock parcial Faltan tallas pero no las que mueven la mayoría de ventas (cobertura 50-85 %). Solo se etiqueta como aviso, no se mueve. Solo Wituka
Pampling no tiene desglose por talla en este pipeline.
A · Bajar Está en pág 1-2 (pos 10-95) pero su score está por debajo del P30 del catálogo. Cede el slot premium. Ambas
B · Subir Está en pág 3+ y su score supera el P85 del catálogo. Best-seller escondido: candidato a entrar en pág 1-2. Ambas
T · Bestseller actual Ya está en la colección manual de bestsellers (Top8 en Pampling, BEST SELLERS 2026 en Wituka) y vendiendo bien. Mantener. Ambas
(pestaña Bestsellers)
P · Propuesto + NO está en la colección de bestsellers pero vende por encima de la media. Añadir. Ambas
(pestaña Bestsellers)
D · Decae − Está en la colección de bestsellers pero su score cae por debajo de la media del catálogo. Quitar. Solo Wituka
(pestaña Bestsellers Wituka)
O · Top en rotura Vende por encima de la media pero está en rotura grave. NO se propone hoy — sublista para revisar al reponer. Solo Wituka
(pestaña Bestsellers Wituka)
R · Novedad (resto) Producto del listado de novedades que no entra en H ni en N. Se ordena por velocidad/fecha igual que H. Ambas
(pestañas Novedades)
🔥 H · Top velocidad Las 10 novedades con mayor velocidad uds/día (ventana móvil 30 d). Las que más fuerte están entrando ahora mismo. Ambas
(pestañas Novedades)

1. Qué datos usa cada tienda

PamplingWituka
Origen del catálogo BBDD MySQL Pampling (tabla app_productos). Orden = orden_web. Shopify Admin API. Orden = orden manual de la colección en el admin.
Origen de ventas (90 d) BBDD app_compras_lineas (excluyendo estados anulados/devueltos). Shopify Orders REST · net_items_sold y net_sales (resta refunds, descuentos e IVA, igual que la pestaña de productos del dashboard Wituka).
Stock Suma agregada de todas las tallas en app_productos_stock. No hay desglose por talla en este pipeline. Por talla, leyendo inventory_quantity de cada variante de Shopify. Permite calcular la salud de stock real.
Tráfico y conversión GA4 item-level (views, ATC, compras, CVR %). Se usa solo para los percentiles, ya no clasifica. No hay GA4 item-level para Wituka. Las decisiones se toman solo con ventas + stock.
Qué cuenta como Novedad (N) Producto con precio_xpresstee = 9,99 € y ventana xpresstee activa hoy (xp_inicio ≤ hoy < xp_fin). La novedad puede estar en cualquier posición del grid. Las 2 primeras posiciones de la colección manual NEW IN 2026 = novedades semanales globales. Esos 2 productos se propagan a las pos 0-1 de cualquier colección donde estén presentes (All T-shirts, Regular Fit, etc.). Si una colección no contiene ninguna, sus pos 0-1 son las 2 primeras de su orden manual local.

2. Cómo se calcula el score de ventas Pampling + Wituka

Mismo cálculo en las dos tiendas, solo cambia la fuente (BBDD Pampling vs Shopify Orders Wituka). El "score" que ves en los motivos no son las unidades vendidas a secas — es una versión ponderada para premiar productos en tendencia al alza:

  • Últimos 30 días (ventana reciente) → peso ×3
  • Del día 31 al 60 (ventana media) → peso ×2
  • Del día 61 al 90 (ventana vieja) → peso ×1

Fórmula: score = (3·uds_30d + 2·uds_30_60 + 1·uds_60_90) / 2. La división por 2 deja el número en la misma escala que las unidades reales de 90 días — un producto con ventas planas tendrá un score ≈ a sus uds_90d. Uno que se dispara en las últimas 4 semanas tendrá un score más alto que sus uds_90d y será candidato a subir. Uno que se está apagando tendrá el score más bajo y bajará.

3. Cómo se clasifica cada producto Pampling + Wituka

Se evalúa producto a producto y gana la primera regla que cumple (por orden de prioridad N → S → W → A → B):

  • N · Novedad Pampling producto a 9,99 € hoy (ventana xpresstee activa). Wituka las dos primeras posiciones del orden manual de la colección. En ambos casos: se queda fijo en su posición actual.
  • S · Rotura de stock — salud de stock por debajo del 50 %. Dos sub-niveles: S total (health = 0): producto sin stock disponible. Va al final del grid (no quema tráfico ni en pág 3).
    S crítico (0 < health < 0.5): faltan tallas que pesan más del 50 % de la demanda. Sale de pág 1-2 a pág 3+ hasta reponer. Wituka usa el desglose real por talla (ver 3.b). Pampling al no tener desglose por talla en este pipeline, S solo dispara cuando el stock total agregado es 0; los demás casos parciales no se detectan aquí.
  • W · Stock parcial Wituka — health entre 50 % y 85 %. Faltan tallas pero no las que mueven la mayoría de ventas. Solo se etiqueta como aviso, no se mueve. No aplica a Pampling (no hay desglose por talla).
  • A · Bajar de pág 1-2 — está entre las pos 10 y 95 pero su score está por debajo del P30 del catálogo. Ocupa un slot premium sin rendir. Cede el hueco.
  • B · Subir a pág 1-2 — está en pág 3+ y su score supera el P85. Best-seller escondido. Candidato a ocupar el slot que deja un A.

3.b. Cómo se calcula la salud de stock (health_score) Solo Wituka

Solo aplica al catálogo Wituka, porque Shopify nos da el inventario por variante. En Pampling el pipeline actual solo lee el stock agregado, así que esta sub-regla no se activa allí.

Para cada producto miramos la distribución de ventas por talla en los últimos 90 días (datos reales del propio producto, no asumimos M y L como tallas core — depende de cada referencia).

peso_talla = uds_vendidas_talla_90d / uds_vendidas_totales_90d
health_score = Σ peso_talla (solo de las tallas con stock > 0)

Ejemplo: una camiseta con histórico S:5 % · M:30 % · L:40 % · XL:20 % · XXL:5 %.

  • Rotura solo en M+L → health = 5+20+5 = 0.30 (catastrófica → S crítico).
  • Rotura solo en XXL → health = 5+30+40+20 = 0.95 (irrelevante → sin acción).
  • Rotura solo en M → health = 5+40+20+5 = 0.70 (parcial → W, etiqueta sin mover).

Si el producto tiene menos de 5 uds vendidas en 90d (novedad reciente) caemos a peso uniforme entre todas las variantes. Si ninguna variante reporta inventario (datos desconocidos) el clasificador omite S/W y sigue con A/B normal.

En la tarjeta del producto ves un tooltip con el desglose por talla (stock + peso histórico) — las rotas aparecen tachadas. La tabla de Movimientos también lista qué tallas faltan.

4. Cómo construye la propuesta de reorden Pampling + Wituka

  1. Las novedades (N) se quedan fijas. Pampling donde estén (pos 0 o pos 500): mientras tengan la promo xpresstee activa, no se tocan. Wituka son las pos 0 y 1 de la colección — las primeras dos siempre las decide merchandising.
  2. Las roturas (S) salen de pág 1-2. Los S críticos (0 < health < 0.5) caen a pág 3+. Los S totales (health = 0, o stock total = 0 en Pampling) van al final del catálogo.
  3. Cualquier producto que NO sea novedad ni rotura sí puede moverse. Si un producto deja de estar a 9,99 € (Pampling) o pasa a la posición 2 en Wituka, el algoritmo lo evaluará como A o B como a cualquier otro.
  4. Intercambia A por B uno a uno: el mejor B (el que más score tiene, pág 3+) entra en el slot del peor A (el que peor score tiene pero estaba en pág 1-2). Resto de pares por el mismo criterio.
  5. Nadie más se mueve. W solo se etiqueta como aviso — su problema no se arregla cambiando de posición.

Solo Pampling Los productos outlet=1 (Last Units) se excluyen por completo del grid Camisetas — tienen su propia pestaña y no influyen en percentiles ni en el cálculo de ventas totales.

5b. Pestaña Bestsellers Solo Wituka

Equivalente a Bestsellers (Top8) de Pampling, adaptada a Wituka. Compara la colección manual BEST SELLERS 2026 (/collections/best-sellers-1) con el universo unificado de las 5 colecciones principales y propone qué añadir y qué quitar.

  • T · Bestseller actual — ya en la colección y vende por encima de la media. Mantener.
  • P · Propuesto + — NO está en la colección y su score (penalizado por stock) supera la media. Añadir.
  • D · Decae − — está en la colección pero vende por debajo de la media. Candidato a salir.
  • O · Top en rotura — vende por encima de la media pero está en rotura crítica/total. NO se propone hoy — revisar cuando entre stock.

Cálculo del corte: media de uds_score del universo unificado (productos de las 5 colecciones principales = camisetas + kids, sin sudaderas/gorras/calcetines). Solo así un producto compite con la categoría comparable.

Penalización de stock antes de cortar: score_efectivo = uds_score × multiplicador:

  • Health ≥ 85 % → ×1.0 · 50-85 % → ×0.85 · <50 % → ×0.30 · =0 → ×0.0 (descartado).

Así "Summer Vibes" con score 418 pero rotura total queda fuera de propuestos hasta que entre stock; aparece en la sublista O · Top en rotura para que merch lo recupere cuando reponga.

Cap duro de 100 propuestos para evitar listas inmanejables. Orden: actuales y propuestos por score efectivo DESC; decay y rotura al final.

5. Pestaña Bestsellers (Top8) Solo Pampling

Muestra los productos que deberían estar en la colección manual Top8 de la web (identificada por el tag Top8 en app_productos.tags). Sirve para detectar "bestsellers escondidos" que no están etiquetados.

  • T · Top8 actual — ya tiene la etiqueta Top8 en BBDD. Borde ámbar en la tarjeta.
  • P · Propuesto Top8 — NO tiene la etiqueta pero vende MÁS que el peor Top8 actual. Borde verde en la tarjeta.

Corte = media de Camisetas: la referencia es la media de uds_score de toda la categoría Camisetas (la principal). Un producto debe estar en Bestsellers si vende por encima de la media del catálogo completo. Proponemos añadir todos los productos sin Top8 que superen ese umbral. Se excluyen las novedades xpresstee (a 9,99 €) para no ensuciar la propuesta con productos temporales. Cap duro de 200 para evitar listas gigantes.

Orden del grid: Actual = orden_web de BBDD. Propuesto = score DESC con candidatos intercalados. La tabla de Movimientos muestra los productos que cambiarían de sitio.

6. Pestaña Novedades Solo Pampling

Productos con el tag novedades en app_productos.tags — la colección manual del equipo de merchandising. El orden potencia las novedades que mejor están tirando según cuándo se activaron.

  • N · Novedad fija (9,99 €) — producto que además tiene precio_xpresstee = 9,99 con ventana activa hoy. Misma regla que Camisetas: van primero manteniendo su orden_web relativo (intocable).
  • 🔥 H · Top velocidad — las 10 novedades con mayor velocidad de venta de la tabla. Destacan por estar tirando más fuerte por día activas. Borde naranja.
  • R · Novedad (tag) — resto de novedades, ordenadas también por velocidad.

Cálculo de la velocidad (uds/día con ventana móvil 30d):

  • Si la novedad lleva ≤ 30 días activa: velocidad = uds vendidas desde portada_inicio / días activa. Aproximamos las uds con una fracción proporcional de uds_30d.
  • Si lleva > 30 días activa: velocidad = uds_30d / 30. Usamos solo el ritmo de las últimas 4 semanas, no el histórico completo — así una novedad que funcionó al principio pero ahora está muerta no aparece falsamente alta.

Ejemplo: una novedad activada hace 5 días con 35 uds (7,0/día) va por encima de otra activada hace 60 días con 150 uds totales pero solo 50 en los últimos 30d (1,7/día). Premia el ritmo reciente, no el total histórico.

Orden propuesto: fijas 9,99 € primero → resto por velocidad DESC → empate por fecha activación más reciente → sin fecha al final. La tabla de Movimientos muestra las diferencias respecto al orden_web actual.

6b. Pestaña Novedades Solo Wituka

Universo: la colección manual NEW IN 2026 (/collections/novedades) filtrada a productos con published_at ≥ hoy − 90 d y status = active. La idea es ver "qué se ha lanzado en los últimos 3 meses y cómo está rindiendo". Los drafts y los publicados antes de la ventana se descartan.

  • N · Novedad fija — las 2 primeras posiciones del orden manual de la colección. Son las novedades semanales que ha metido merch (1-2 por semana).
  • 🔥 H · Top velocidad — las 10 novedades con mayor velocidad de venta (uds/día con ventana móvil 30 d) entre los productos disponibles. Borde naranja.
  • R · Novedad — resto de novedades disponibles, ordenadas por velocidad.
  • S · Rotura — novedades en rotura crítica/total. Caen al final, aunque sean recientes — un slot en novedades sin stock no convierte.

Orden propuesto: fijas (N) primero → resto por severidad de stock ASC → velocidad uds/día DESC → fecha de publicación DESC. Los productos en rotura caen al final aunque vendan mucho.

Categoría libre: pueden entrar camisetas, sudaderas, kids… cualquier cosa que merch haya metido en NEW IN 2026.

7. Pestaña Last Units (outlet) Solo Pampling

Productos con outlet = 1 en la BBDD — la colección de liquidación. Se separan del grid principal de Camisetas porque sus ventas están infladas por el precio promocional y distorsionarían los percentiles del catálogo a precio normal.

  • O · En outlet — producto en liquidación. No hay reglas de fijado aquí: el algoritmo reordena libremente usando el mismo clasificador A/B/S/W que Camisetas (las novedades xpresstee que pudieran estar aquí se liberan y entran al reorder).

Útil para decidir qué productos de outlet conviene destacar, cuáles tienen sobrestock extremo y cuáles están a punto de romper stock.

Ojo con los límites. El algoritmo no sabe de estacionalidad, colaboraciones, stock entrante ni del criterio editorial del equipo. Es una propuesta de base — la decisión final sigue siendo de merchandising.

Actualizando datos...

Regenerando todo: pedidos de Pampling MySQL + colecciones Shopify Wituka (últimos 90 días).

Puede tardar 1-3 min. No cierres la pestaña.

0:00