En tiendas Magento, especialmente con catálogos grandes, es común que algunos productos queden sin categoría asignada, lo que afecta a la navegación, SEO y conversiones. Este artículo te explica cómo identificarlos desde la base de datos y solucionarlo.
Índice
- Por qué ocurre
- Consulta SQL para identificarlos
- Solucionar desde backend o vía SQL
- Automatización periódica
Por qué ocurre
- Importaciones masivas con errores
- Scripts que eliminan categorías pero no actualizan productos
- Migraciones incompletas
Consulta SQL para detectar productos sin categoría
SELECT e.entity_id, e.sku, e.type_id FROM catalog_product_entity e LEFT JOIN catalog_category_product cp ON e.entity_id = cp.product_id WHERE cp.category_id IS NULL;
Esta consulta devuelve productos sin categoría asignada.
Solución desde backend
- Filtra productos sin categoría desde el admin
- Reasigna a una categoría temporal («Sin clasificar»)
Desde SQL:
INSERT INTO catalog_category_product (category_id, product_id, position) SELECT 123 AS category_id, entity_id, 0 FROM catalog_product_entity e LEFT JOIN catalog_category_product cp ON e.entity_id = cp.product_id WHERE cp.category_id IS NULL;
Reemplaza 123
con el ID de tu categoría temporal.
Automatización periódica
Puedes programar este chequeo semanalmente con un cron y notificar vía email:
php bin/magento catalog:product:list --no-category
O con un script personalizado que ejecute la consulta SQL.
Conclusión
Detectar y corregir productos huérfanos mejora la navegación, el SEO y evita pérdidas de ventas. Automatizar este control es clave para catálogos en crecimiento.
¿Necesitas ayuda auditando tu catálogo Magento? Habla con nosotros.