2012-09-18 32 views
7

enter image description here Tengo un problema en Magento. Tengo una tienda de Magento con funcionalidad de sitio web múltiple que contiene aproximadamente 4500 productos. Quiero volver a indexar el producto.Problema de re indización de Magento

He importado 4500 productos por csv a través de la funcionalidad predeterminada de magento. después de la importación de productos que los cambios no se muestran en la parte frontal, así que fui a la gestión de índice y he encontrado que hay dos índices están en estado de procesamiento

1 Características del producto 2 Producto plana de datos

que ya había hecho los siguientes pasos:

1 intenta volver a índice de un lado administrador Sistema-> administración de índices

2 tratar de hacer manualmente llamando al script php

require_once 'app/Mage.php'; 
umask(0); 
Mage :: app("default"); 
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat'); 
$process->reindexAll(); 

O

$indexingProcesses = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($indexingProcesses as $process) { 
    $process->reindexEverything(); 
} 

también cambiar el permiso de carpeta var/cerraduras a 777 y también cambiar el nombre de la carpeta y también intenta eliminar el archivo .lock que fue creado en esta carpeta de bloqueo, pero no tiene la solución.

No tengo derechos de SSH. Entonces, ¿hay alguna otra solución que me ayude a resolver el problema de reindexación?

+0

¿Cuál es el problema real? Ha mencionado varias formas que ha tratado de volver a indexar, pero no ha mencionado realmente por qué hasta ahora ninguno de los métodos ha sido suficiente. –

+0

Hola Will, tuve que importar 4500 productos por csv a través de la funcionalidad predeterminada de magento. después de importar el producto, los cambios no se muestran en el anverso, así que fui a la administración de índices y encontré que hay dos índices en estado de procesamiento 1 Atributos del producto 2 Datos planos del producto – drsndodiya

+0

cuando los índices están trabajados en el estado "Procesamiento" para un hace mucho tiempo, es posible que los permisos en los archivos de bloqueo en el directorio var de magento sean incorrectos. Magento enumera los índices como "Procesamiento" cuando no puede obtener un bloqueo, sin molestarse en verificar el motivo de la falla. La razón más común para no adquirir un bloqueo, aparte del procesamiento de índice realmente bloqueado, es que los bloqueos han sido creados por una cuenta de usuario diferente. (por ejemplo, si 'cron' se ejecuta como' root', mientras que magento normalmente es accedido por el usuario 'apache'). Asegúrese de que magento tenga acceso de escritura a las cerraduras. –

Respuesta

0

Razón

hay referencias a productos inexisting/borrados en catalog_product_flat_ mesas%.

Solución

Trate de truncar'catalog_product_flat_ 'mesas% (catalog_product_flat_1, catalog_product_flat_2, catalog_product_flat_3 etc.) en la consola de MySQL oa través de phpMyAdmin:

mysql > truncate table ´catalog_product_flat_1´; 
mysql > truncate table ´catalog_product_flat_2´; 
mysql > truncate table ´catalog_product_flat_3´; 

Entonces indexar.

+0

wouldn ¿Eso hace que los índices fallen en silencio, en lugar de marcarse perpetuamente como "procesamiento"? –

+0

Tengo que hacer la indexación sin afectar DB - Palanikumar – drsndodiya

+1

@Palanikumar: Si ejecuto estos comandos, eliminará mi catálogo de productos o no habrá ningún efecto en los productos que ya están agregados. – Prashant

6

NOTA: Mientras que la respuesta de abajo tiene, en mi experiencia, ha sido relevante para este tipo de problema, no parece ser la causa de la situación actualmente experimentada por el autor de la pregunta

Processing significa uno de dos cosas:

  • Los índices pueden seguir ejecutándose, en cuyo caso, siéntese y espere a que finalicen. La indexación de Magento puede llevar mucho tiempo (para 4500 productos, es posible "horas", dependiendo del servidor).

  • Un proceso de indexador puede haber muerto, dejando atrás bloqueos obsoletos. Mientras tanto, el indexador muerto puede haber sido ejecutado por un usuario diferente. El caso más común es cron configurado incorrectamente para ejecutar el indexador como root, o una cuenta de usuario normal, en lugar de como el mismo usuario que usa el sitio web (p. Ej .: apache o www).

Todo lo que realmente quiere decir es Processing "Magento no pudo obtener un bloqueo de estos puestos de trabajo de indizador". El primer caso es trivial y poco interesante. Espere un par de horas, y si los indexadores mismos siguen apareciendo como Processing, entonces es posible que tenga el segundo caso.

Compruebe los permisos de los archivos de bloqueo, que se encuentran en var/locks en su raíz de magento. ¿Son propiedad del mismo usuario con el que se ejecuta el servidor web? Si no, y está absolutamente seguro de que los índices ya no se ejecutan, es seguro eliminar los bloqueos. El siguiente paso es averiguar por qué los bloqueos tenían los permisos incorrectos en primer lugar. Esa es una conversación que podría tener mejor con su anfitrión, si no tiene acceso a ssh.

1

Los errores del indexador se capturarán y no se registrarán de forma predeterminada. La solución típica es utilizar la herramienta de reindexación CLI; que será muy detallado con cualquier error.

Por ejemplo.

php shell/indexer.php --reindex ... 

embargo, dado que no tiene acceso SSH - usted puede mirar el archivo indexer.php para ver cómo se generan los errores, o usted podría lanzar un shell_exec o exec desde un script PHP basado en web que emularía la CLI.

0

No pude reindexar catalog_product_flat proceso de índice. Después de pasar un día probando varias soluciones en Internet. Pude solucionar el problema. Debajo están los pasos.

  1. Crea una copia del Magento Db que está enfrentando el problema de indexación.
  2. Vuelque la base de datos en el db recién creado.
  3. truncar la tabla catalog_product_flat_1 para tienda única y tienda múltiple habrá una tabla múltiple catalog_product_flat_* donde * es la identificación de la tienda. Aquí truncar toda esa tabla.
  4. apunte la instancia de ejecución mangento a la base de datos recién creada y configure el databse, para que el sitio funcione normalmente.
  5. Ahora ejecute el comando php document_root/shell/indexer.php --reindex catalog_product_flat o intente reindexar desde Admin. php document_root/shell/indexer.php --reindexall para reindexar todo el proceso.
0

Me encontré con el mismo problema, al crear un nuevo grupo de clientes no pude reindexar los precios.

encontrado la solución aquí http://www.magikcommerce.com/blog/how-to-resolve-magento-reindexing-errors-in-your-magento-store/

Aquí el procedimiento:

  1. localizar el directorio var/seguros y retire todos los archivos en este directorio. Esto borrará todos los bloqueos para que la reindexación vuelva a tener lugar.

  2. Ahora, inicie sesión en su MysQSL/phpMyAdmin para ejecutar la siguiente consulta de MySQL (asegurarse de que su han tomado copia de seguridad completa antes de cometer esta consulta MySQL)

    BORRAR CPOP. * FROM catalog_product_option_price AS CPOP INNER JOIN catalog_product_option AS cpo ON cpo.option_id = cpop.option_id DONDE cpo.type = 'casilla de verificación' O cpo.type = 'radio' O cpo.type = 'drop_down';

    DELETE cpotp.* FROM catalog_product_option_type_price AS cpotp 
    INNER JOIN catalog_product_option_type_value AS cpotv 
    ON cpotv.option_type_id = cpotp.option_type_id 
    INNER JOIN catalog_product_option AS cpo 
    ON cpotv.option_id = cpo.option_id 
    WHERE 
    cpo.type <> 'checkbox' AND 
    cpo.type <> 'radio' AND 
    cpo.type <> 'drop_down'; 
    
  3. sesión de nuevo en su panel de administración de Magento e ir a la pestaña Sistema> Administración Índice Índice golpeó de nuevo y se dará cuenta de este tipo de errores no van a aparecer de nuevo. Puede seguir estos mismos pasos de nuevo si la redefinición se detiene en el futuro para resolver los problemas MagentoReIndexing.