Los atributos del producto no pudieron reindexarse

8

Recibo este error al intentar reindexar "Atributos del producto". ¿Alguien puede sugerir cuál podría ser el problema y la posible solución?

Error grave: excepción no detectada 'PDOException' con mensaje 'SQLSTATE [23000]: violación de restricción de integridad: 1062 Entrada duplicada' 2828-148-1-471 'para clave' PRIMARIO '' en E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php: 228 Stack trace: # 0 E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php (228): PDOStatement-> execute (Array) # 1 E : \ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Statement \ Pdo \ Mysql.php (110): Zend_Db_Statement_Pdo -> _ execute (Array) # 2 E: \ xampp \ htdocs \ magento \ app \ code \ core \ Zend \ Db \ Statement.php (291): Varien_Db_Statement_Pdo_Mysql -> _ execute (Array) # 3 E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Adapter \ Abstract.php (480): Zend_Db_Statement-> execute (Array) # 4 E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Adapter \ Pdo \ Abstract.php (238): Zend_Db_Adapter_Abstract-> query ('INSERT INTOca...', Array) #5 E:\xampp\htdocs\magento\lib\Varien\Db\Adapter\Pdo\Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTOca ... ', Array) # 6 E: \ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Adapter \ Pdo \ Mysql.php (1998): Varien_Db_Adapter_Pdo_Mysql en E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php en la línea 234

Prashanta
fuente
¿Importó la base de datos a través de phpmyadmin?
Flyingmana
No, solo estoy agregando los productos programáticamente @Flyinglama
Prashanta

Respuestas:

15

Cómo interpretar el mensaje de error

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2828-148-1-471' 
for key 'PRIMARY

En el caso del indexador de atributos del producto, esto significa que hay un error de restricción al guardar un registro en la catalog_product_index_eav_idxtabla.

2828-148-1-471 se refiere a:

  • ID de entidad del producto: 2828
  • ID de atributo: 148
  • Identificación de la tienda: 1
  • valor: 471

Posible origen del problema.

Supongo que el atributo que está causando problemas es de tipo multiselección. Un valor que está vinculado varias veces a un producto, causará este tipo de error.

Puede verificar esto ejecutando la siguiente consulta:

SELECT * FROM `catalog_product_entity_varchar` 
where entity_id = 2828 and attribute_id = 148 and store_id = 1;

Supongo que el id 471 aparecerá varias veces en la columna value. Cada ID solo debe aparecer una vez en esa columna.

¿Está utilizando un importador para agregar datos de productos a Magento?

Vicky
fuente
Sí, es la importación programática de productos simples de inchoo
Prashanta
Cualquier solución sobre esto, sí, es una selección múltiple
Prashanta
7

La siguiente solución funcionó para mí y puede ayudar a otros:

2828-148-1-471 se refiere a:

ID de entidad de producto: 2828 ID de atributo: 148 ID de tienda: 1 valor: 471

Simplemente abra el producto con id 2828 y guárdelo y vuelva a indexar nuevamente.

eso puede resolver tu problema

Harh Shah
fuente
¿Qué solución para la actualización masiva?
DarkCowboy
3

Lo entendí, era un problema con los atributos desplegables de selección múltiple. En mi script, a veces se agregaba el mismo atributo varias veces, lo que causaba un error, publicando esta respuesta para alguien si necesita ayuda en el futuro

Prashanta
fuente