Les attributs de produit n'ont pas pu être réindexés

8

Je reçois cette erreur en essayant de réindexer les "Attributs du produit". Quelqu'un peut-il suggérer quel pourrait être le problème et la solution possible

Erreur fatale: exception non interceptée 'PDOException' avec le message 'SQLSTATE [23000]: violation de contrainte d'intégrité: 1062 entrée en double' 2828-148-1-471 'pour la clé' PRIMARY '' dans E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php: 228 Trace de pile: # 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 dans E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php à la ligne 234

Prashanta
la source
Avez-vous importé la base de données via phpmyadmin?
Flyingmana
Non, j'ajoute simplement les produits par programme @Flyinglama
Prashanta

Réponses:

15

Comment interpréter le message d'erreur

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

Dans le cas de l'indexeur d'attribut de produit, cela signifie qu'il y a une erreur de contrainte lors de la sauvegarde d'un enregistrement dans la catalog_product_index_eav_idxtable.

2828-148-1-471 fait référence à:

  • ID d'entité produit: 2828
  • identifiant d'attribut: 148
  • identifiant du magasin: 1
  • valeur: 471

Origine possible du problème

Je suppose que l'attribut qui cause des problèmes est de type multisélection. Une valeur liée plusieurs fois à un produit provoquera ce type d'erreur.

Vous pouvez le vérifier en exécutant la requête suivante:

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

Je suppose que l'ID 471 sera répertorié plusieurs fois dans la colonne value. Chaque identifiant ne doit être répertorié qu'une seule fois dans cette colonne.

Utilisez-vous un importateur pour ajouter des données produit à Magento?

Vicky
la source
Oui, c'est la simple importation programmatique du produit de inchoo
Prashanta
Toute solution à ce sujet, oui, c'est une sélection multiple
Prashanta
7

La solution ci-dessous a fonctionné pour moi et peut aider les autres:

2828-148-1-471 fait référence à:

ID d'entité de produit: 2828 ID d'attribut: 148 ID de magasin: 1 valeur: 471

Ouvrez simplement le produit avec l'ID 2828 et enregistrez-le et réindexez à nouveau.

cela peut résoudre votre problème

Harsh Shah
la source
Quelle solution pour la mise à jour groupée?
DarkCowboy
3

Je l'ai eu, c'était un problème avec les attributs déroulants de sélection multiple, Dans mon script, parfois le même attribut était ajouté plusieurs fois, ce qui provoquait une erreur, affichant cette réponse pour quelqu'un si besoin d'aide à l'avenir

Prashanta
la source