# BUG #16 — FASE A · SEPARACIÓN DE POBLACIONES
# Objetivo: mapear los 1.907 productos enabled+is_in_stock=0 en tres
# poblaciones distintas ANTES de decidir cualquier reactivación de stock.
# La regla clave: "enabled + is_in_stock=0" NO implica automáticamente
# "hay stock que rescatar". Reactivar a ciegas puede publicar productos
# como "in stock" que no lo están físicamente en el proveedor.
# Solo lectura. Nada aplicado.
# T1 — CONFIRMACIÓN DEL CENSO
# Reejecutar el conteo del informe B5 (1.907 productos con status=1 e
# is_in_stock=0) para confirmar que sigue siendo el número real hoy,
# no un artefacto del momento de la auditoría.
# Reportar total actual y desglose por proveedor + visibility.
# T2 — EXCLUSIÓN DE LOS INTENCIONALES
# Excluir del análisis:
# - Los ~555 Lean Toys marcados como estrategia SEO `lean_stale_agotado`
# (siguen siendo intencionales, no tocar).
# - Los 36 simples de producto configurable (visibility oculto — no
# los ve el cliente directamente).
# Reportar cuántos quedan tras la exclusión (esperado ~1.234).
# T3 — TRIPLE POBLACIÓN
# Para cada uno de los ~1.234 restantes, cruzar Magento ↔ ERP y
# clasificar en una de estas TRES categorías:
#
# POBLACIÓN A — "Falso negativo real" (candidatos a reactivar)
# El SKU:
# a) Tiene fila en supplier_products.
# b) supplier_status = 'published' (activo en ERP).
# c) Stock ERP > 0 (o el campo equivalente que el proveedor
# reporta como disponibilidad).
# d) Precio ERP presente y coherente.
# Estos son los que están perdiendo ventas: Magento los muestra
# agotados pero el ERP dice que sí hay stock.
#
# POBLACIÓN B — "Agotado legítimo" (dejar como están)
# El SKU:
# a) Tiene fila en supplier_products.
# b) Stock ERP = 0 (proveedor confirma sin stock).
# Están correctamente marcados como agotado, coherente entre ambos
# sistemas. No tocar.
#
# POBLACIÓN C — "Legacy sin ERP" (los 746 huérfanos)
# El SKU NO tiene fila en supplier_products.
# Son productos antiguos, probablemente importados manualmente en su día,
# de proveedores que ya no trabajas. Instinto de Juan: "productos antiguos".
# Requieren decisión de catálogo aparte (hibernar/deshabilitar/mantener).
#
# Reportar: cuántos hay en cada población.
# Para POBLACIÓN A, detallar además desglose por proveedor
# (IKS/Bebello/Cambrass/Kikkaboo/Goki).
# T4 — MUESTREO DE POBLACIÓN A (los rescatables)
# Volcar 10 SKUs de la Población A repartidos así:
# - 3 de IKS (el bloque más grande)
# - 2 de Bebello
# - 2 de Cambrass
# - 2 de Kikkaboo
# - 1 de Goki
# Para cada uno reportar:
# sku | brand | status Magento | is_in_stock Mg | stock_qty Mg |
# stock ERP | precio ERP | precio Mg | url_key | last_synced_at
# Objetivo: leer con nuestros ojos algunos casos concretos antes de
# aplicar en batch. Es fácil que aparezca un dato raro (ej: producto
# en Magento con url_rewrite mal, o precio Magento drásticamente
# distinto del ERP) que nos haga afinar el criterio.
# T5 — MUESTREO DE POBLACIÓN C (los 746 legacy)
# Volcar 15 SKUs aleatorios de los 746 huérfanos con:
# sku | name (primeros 60 chars) | url_key | fecha creación
# (created_at) | última venta (si existe registro) | visibility |
# status en Magento | categorías asignadas
# Objetivo: darles cara. Ver si son productos que reconoces, si son
# imports viejos identificables por patrón de SKU, o si son "basura"
# heredada del catálogo histórico.
# T6 — CHEQUEO DE INTEGRIDAD
# ¿Alguno de los 1.234 tiene señales técnicas de problema (visibility
# roto, url_rewrite duplicado, category_ids vacío, imagen missing)?
# Reportar cuántos tienen alguna anomalía técnica adicional además
# del is_in_stock=0.
# ENTREGA
# a) Confirmación de censo T1.
# b) Tabla de las tres poblaciones (A / B / C) con conteos.
# c) Desglose Población A por proveedor.
# d) 10 muestras de Población A (T4).
# e) 15 muestras de Población C (T5).
# f) Chequeo de integridad T6.
# g) Recomendación de Code sobre por dónde arrancar Fase B, con las
# salvaguardas que sugieres para no meter la pata.
# Guardar informe en /root/.claude/plans/auditorias-jul-2026/B5-bug16-fase-a.md
# STOP tras entrega. NO tocar nada.