Kiedyś mieliśmy podobny problem na magento 1.7, stało się tak, ponieważ wprowadziliśmy „nowy” typ produktu, czyli pakiet produktów konfigurowalnych. W tym przypadku mieliśmy produkty, które były jednocześnie rodzicami niektórych produktów i dziećmi kilku innych (pakietowych) w ten sposób, gdy _copyRelationIndexData zostało wywołane przez reindexProductIds Tabela catalog_product_index_price_tmp została wypełniona niektórymi wierszami należącymi do „produktów złożonych”, co powoduje „Naruszenie ograniczenia integralności” po wywołaniu reindexEntity. Krótko mówiąc, w ten sposób zastąpiliśmy metodę _copyRelationIndexData :
protected function _copyRelationIndexData($parentIds, $excludeIds = null)
{
if(!is_null($excludeIds) && is_array($excludeIds)){
$excludeIds = array_merge($excludeIds,$parentIds);
}
return parent::_copyRelationIndexData($parentIds, $excludeIds);
}