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 Salió hace menos de 10 días. Pampling: fecha de portada (sudaderas: primera venta) o a 9,99 € hoy. Wituka: publicado hace menos de 10 días y sin ventas previas. Va fija al principio, en su orden web. Ambas
S · Rotura Stock crítico. S total (health = 0): al final del grid. S crítico (0 < health < 0.5) y casi rota (le queda menos del 25 % del stock que ha tenido en 90 días): detrás de todos los productos con stock. 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 %). Es solo un aviso: no resta puntos. Poco stock en L y M (a L y M les queda menos del 25 % del stock que han tenido en 90 días): no sube por encima de la pág 3. 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) Salió hace menos de 10 días: fecha de portada (en camisetas, el inicio de la XpressTee); en sudaderas, su primera venta. También lo que esté a 9,99 € hoy. Ej.: lo que sale el 15/10 es novedad hasta el 24/10. Publicado en Shopify hace menos de 10 días (published_at) y sin ventas anteriores (si ya vendía es un republicado y no cuenta). En todas las colecciones menos Last Units.

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á.

Pampling Productos con menos de 90 días: cada ventana cuenta solo los días en que el producto ya existía: score = 90 · (3·uds_30d + 2·uds_30_60 + 1·uds_60_90) / (3·días_30d + 2·días_30_60 + 1·días_60_90), con un mínimo de 21 días en la ventana reciente para no extrapolar la semana de lanzamiento. Con 90 días o más da lo mismo que la fórmula de arriba.

Ambas Tendencia: ritmo diario de los últimos 30 días frente al ritmo diario de los días anteriores en que el producto ya existía (Wituka cuenta desde la fecha de publicación). Con menos de 14 días de historia previa es neutra. Multiplica el score entre ×0,2 (caída del 80 % o más) y ×1,5 (subida del 50 % o más).

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 salió hace menos de 10 días (portada; sudaderas: primera venta) o está a 9,99 € hoy. Wituka publicado hace menos de 10 días y sin ventas previas. En ambos casos: va fija al principio del grid, en su orden web relativo.
  • 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. Va detrás de todos los productos con stock hasta reponer. También es S crítico la casi rota: le queda menos del 25 % del stock que ha tenido en 90 días (stock ÷ (stock + vendidas en 90 días)). No se aplica en Last Units. 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. Es solo un aviso: no resta puntos y se ordena por ventas como el resto. Excepción: Poco stock en L y M (a L y M les queda menos del 25 % del stock que han tenido en 90 días) no sube por encima de la pág 3; no se aplica en Last Units. 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) van fijas al principio. Todo lo que salió hace menos de 10 días se agrupa en las primeras posiciones, en el orden que ya tiene en la web, esté donde esté (pos 0 o pos 500).
  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. Cuando un producto deja de ser novedad (pasan sus 10 días), el algoritmo lo evalúa 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, y los productos rotos, casi rotos o con poco stock en L y M. Cap duro de 200 para evitar listas gigantes.

Orden del grid: Actual = orden_web de BBDD. Propuesto = igual que Camisetas: score ajustado por tendencia con candidatos intercalados; los Top8 con poco stock en L y M no suben por encima de la pág 3 y los rotos o casi rotos van al final. 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 — salió hace menos de 10 días. 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: novedades (menos de 10 días) 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 — lo publicado hace menos de 10 días y sin ventas previas, en el orden de la colección.
  • 🔥 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 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.

8. Pestaña Promoción Solo Pampling

Las referencias de la promoción vigente (fichero promo_pampling.json, generado desde el excel de la promo) con su tramo de precio: 9,99 · 10,99 · 12,99 €. El grid izquierdo es el orden actual web (orden_web relativo); el derecho, la propuesta.

Orden propuesto — aquí el precio entra en el score porque en una promo es la palanca de conversión:

  • Novedades fijas — las novedades (salieron hace menos de 10 días o están a 9,99 € hoy) se fijan al principio en su orden web relativo, la misma regla de negocio que en Camisetas.
  • Escaparate «desde 9,99 €» — los 8 slots siguientes se reservan para los 8 mejores productos del tramo 9,99 (por score y con stock ≥30d de cobertura). Ancla la percepción de precio de toda la colección.
  • Score de promo = demanda ponderada 3:2:1 × tendencia × factor precio (9,99 ×1.20 · 10,99 ×1.08 · 12,99 ×1.00) × gancho del equipo (⭐ ×1.10). El factor es suave: desempata entre demandas similares, no permite que un producto flojo barato destrone a un superventas.
  • Roturas — mismas reglas que Camisetas: rotura crítica detrás de los disponibles, rotura total al final del grid.
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