Mysql
 sql >> Database >  >> RDS >> Mysql

Errore Magento SQLSTATE se è rimasto un articolo nell'inventario del prodotto

Abbiamo avuto un problema simile su Magento 1.7, è successo perché abbiamo introdotto un "nuovo" tipo di prodotto che è un bundle di prodotti configurabili. In questo caso avevamo alcuni prodotti che erano allo stesso tempo genitori di alcuni prodotti e figli di alcuni altri (quelli del bundle) in questo modo quando _copyRelationIndexData è stato chiamato da reindexProductIds catalog_product_index_price_tmp la tabella è stata riempita con alcune righe appartenenti a "prodotti compositi" causando la "violazione del vincolo di integrità" quando viene chiamato reindexEntity. Per farla breve, abbiamo sovrascritto il metodo _copyRelationIndexData in questo modo :

protected function _copyRelationIndexData($parentIds, $excludeIds = null)
    {
        if(!is_null($excludeIds) && is_array($excludeIds)){
            $excludeIds = array_merge($excludeIds,$parentIds);
        }
        return parent::_copyRelationIndexData($parentIds, $excludeIds);
    }