Introducción al problema de indexación en Magento 2
Uno de los dolores de cabeza más comunes para los administradores de tiendas online basadas en Magento 2 es el fallo en los indexadores. Cuando los índices se quedan en estado Processing o Reindex required de forma permanente, los cambios en el catálogo, precios o stock no se reflejan en el frontend, afectando directamente la experiencia de compra de tus clientes y las ventas del negocio.
Causas principales de los errores de indexación
- Procesos de indexación anteriores interrumpidos abruptamente por falta de memoria (Memory Limit).
- Bloqueos en la tabla
mview_statedentro de la base de datos MySQL. - Conflictos de concurrencia al ejecutar tareas cron simultáneamente.
- Límites de tiempo de ejecución (max_execution_time) superados en el servidor PHP.
Método 1: Solucionar el bloqueo mediante la línea de comandos SSH
La forma más rápida y efectiva de limpiar y reconstruir los índices cuando la interfaz de administración (Admin Panel) falla es utilizando la interfaz de línea de comandos (CLI) de Magento mediante SSH.
- Accede a tu servidor mediante SSH utilizando tus credenciales de acceso.
- Navega hasta la raíz de tu instalación de Magento 2 utilizando el comando
cd /ruta/a/tu/magento. - Verifica el estado actual de los indexadores ejecutando el comando:
bin/magento indexer:infoobin/magento indexer:status. - Si observas índices en estado de procesamiento infinito, mata los procesos colgados o limpia las vistas materializadas con el siguiente comando:
php bin/magento indexer:reindex.
Método 2: Restablecer el estado de los indexadores en la Base de Datos
Si la consola arroja un error de bloqueo persistente, es probable que deba restablecerse manualmente el estado de las vistas en la base de datos MySQL.
- Accede a phpMyAdmin o a tu cliente de base de datos MySQL preferido.
- Selecciona la base de datos correspondiente a tu tienda Magento.
- Busca y edita la tabla llamada
mview_state. - Cambia el valor de la columna
statusdeprocessingaidleen todos los registros afectados. - Vuelve a tu terminal SSH y ejecuta la compilación y reindexación final:
php bin/magento setup:upgradeseguido dephp bin/magento indexer:reindex.