Non è stato possibile reindicizzare gli attributi del prodotto


8

Ricevo questo errore durante il tentativo di reindicizzare "Attributi del prodotto". Qualcuno può suggerire, quale potrebbe essere il problema e la possibile soluzione

Errore irreversibile: eccezione PDOException non rilevata con messaggio "SQLSTATE [23000]: violazione del vincolo di integrità: 1062 voce duplicata" 2828-148-1-471 "per la chiave" PRIMARY "in 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 in E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php sulla riga 234


Hai importato il database tramite phpmyadmin?
Flyingmana,

No, sto semplicemente aggiungendo i prodotti in modo programmatico @Flyinglama
Prashanta il

Risposte:


15

Come interpretare il messaggio di errore

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

Nel caso dell'indicizzatore di attributi di prodotto, ciò significa che c'è un errore di vincolo durante il salvataggio di un record nella catalog_product_index_eav_idxtabella.

2828-148-1-471 si riferisce a:

  • ID entità prodotto: 2828
  • ID attributo: 148
  • ID negozio: 1
  • valore: 471

Possibile origine del problema

Suppongo che l'attributo che causa problemi sia di tipo multiselect. Un valore collegato più volte a un prodotto causerà questo tipo di errore.

Puoi verificarlo eseguendo la seguente query:

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

Suppongo che l'id 471 verrà elencato più volte nella colonna value. Ogni ID deve essere elencato una sola volta in quella colonna.

Stai utilizzando un importatore per aggiungere dati di prodotto a Magento?


Sì, è la semplice importazione programmatica del prodotto inchoo
Prashanta,

Qualsiasi soluzione su questo, sì, è una selezione multipla
Prashanta,

7

Di seguito la soluzione ha funzionato per me e può aiutare gli altri:

2828-148-1-471 si riferisce a:

ID entità prodotto: 2828 ID attributo: 148 ID negozio: 1 valore: 471

Basta aprire il prodotto con ID 2828 e salvarlo e reindicizzare nuovamente.

che potrebbe risolvere il tuo problema


Quale soluzione per l'aggiornamento in blocco?
DarkCowboy,

3

Ho capito, si trattava di un problema con gli attributi di selezione multipla, Nel mio script, a volte lo stesso attributo veniva aggiunto più volte e ciò causava errori, pubblicando questa risposta per qualcuno se avesse bisogno di aiuto in futuro

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.