Introducción
Uno de los problemas más frustrantes para los administradores de tiendas online basadas en Adobe Commerce es cuando los índices se quedan en estado Processing o Invalid. Esto provoca que los precios, el stock y los atributos de los productos no se actualicen correctamente en el frontend, afectando directamente las ventas. En este artículo te mostraremos cómo solucionar este fallo de manera definitiva.
Causas Principales del Error de Indexación
El fallo en los indexadores de Magento suele estar relacionado con los siguientes factores:
- Procesos de indexación anteriores que se quedaron colgados o interrumpidos.
- Bloqueos en las tablas de la base de datos (locks).
- Falta de memoria RAM o límite de ejecución (
max_execution_time) superado en PHP durante la ejecución por CLI o Cron. - Problemas de concurrencia al ejecutar múltiples tareas simultáneamente.
Método 1: Solución Rápida mediante Línea de Comandos (CLI)
La forma más efectiva de restablecer los indexadores es a través de SSH utilizando la consola de comandos de Magento. Sigue estos pasos:
- Accede a tu servidor via SSH y navega hasta la raíz de tu instalación de Magento:
cd /var/www/html/tu-tienda. - Cambia al usuario propietario del sistema de archivos (por ejemplo,
www-data):su -s /bin/bash www-data. - Verifica el estado actual de los indexadores ejecutando:
php bin/magento indexer:status. - Si encuentras procesos bloqueados, cambia el modo de indexación a manual para liberar los bloqueos:
php bin/magento indexer:set-mode real-time. - Reincia los indexadores forzando una reindexación completa con el siguiente comando:
php bin/magento indexer:reindex.
Método 2: Limpieza de Tablas de Indexación en la Base de Datos
Si el comando anterior falla o arroja un error persistente, es muy probable que existan bloqueos a nivel de base de datos en las tablas de estado de los índices.
- Accede a tu gestor de base de datos (phpMyAdmin o consola MySQL).
- Selecciona la base de datos de tu tienda Magento.
- Vacía las siguientes tablas relacionadas con el estado de los índices ejecutando las consultas SQL:
TRUNCATE TABLE indexer_state;yTRUNCATE TABLE. - Vuelve a tu terminal SSH y ejecuta el comando de reindexación:
php bin/magento indexer:reindex. - Finalmente, limpia la caché de Magento para aplicar los cambios:
php bin/magento cache:clean.