sql >> Base de Datos >  >> RDS >> Mysql

Error de Magento SQLSTATE si queda un artículo en el inventario del producto

Solíamos tener un problema similar en magento 1.7, sucedió porque introdujimos un "nuevo" tipo de producto que es un paquete de productos configurables. En este caso, teníamos algunos productos que eran al mismo tiempo padres de otros productos e hijos. de algunos otros (los del paquete) de esa manera cuando reindexProductIds llamó a _copyRelationIndexData. La tabla catalog_product_index_price_tmp se llenó con algunas filas pertenecientes a "productos compuestos" que causaron la "violación de la restricción de integridad" cuando se llamó a reindexEntity. Para resumir, anulamos el método _copyRelationIndexData de esta manera :

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