Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur Magento SQLSTATE s'il reste un article dans l'inventaire du produit

Nous avions l'habitude d'avoir un problème similaire sur magento 1.7, cela s'est produit parce que nous avons introduit un "nouveau" type de produit qui est un ensemble de produits configurables. Dans ce cas, nous avions des produits qui étaient à la fois parent de certains produits et enfants de certains autres (ceux du bundle) de cette façon lorsque _copyRelationIndexData a été appelé par reindexProductIds la table catalog_product_index_price_tmp a été remplie avec des lignes appartenant à des "produits composites" provoquant la "violation de la contrainte d'intégrité" lorsque reindexEntity est appelé. Pour faire court, nous avons remplacé la méthode _copyRelationIndexData de cette façon :

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