php - Magento obtiene un producto configurable de un producto simple incluso si el producto de configuración está deshabilitado
magento-1.4 (1)
He investigado un poco y parece que no puedo reproducir tu problema.
Cuando llamo a getParentIdsByChild () de forma simple con un configurable deshabilitado, todavía obtengo el ID de producto principal.
$parentIds = Mage::getResourceSingleton(''catalog/product_type_configurable'')
->getParentIdsByChild(14412);
var_dump($parentIds);
Me da:
array(1) {
[0]=>
string(5) "14446"
}
14446 tiene un estado de desactivado. También lo he probado como en stock y fuera de stock.
Mirando la función real en el archivo de recursos
Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild()
Puedo ver que se ve en la tabla catalog_product_super_link
que no tiene ningún campo para el estado y, por lo tanto, siempre debe devolver el ID principal, si existe el enlace del producto.
Necesito obtener el producto configurable principal de un producto simple, incluso si el producto principal está marcado como deshabilitado. También necesito obtener el estado del producto configurable (activado o desactivado).
Ahora mismo estoy obteniendo el producto principal así:
$parentIds = Mage::getResourceSingleton(''catalog/product_type_configurable'')->getParentIdsByChild($product->getId());
if (isset($parentIds[0])) {
$product = Mage::getModel(''catalog/product'')->load($parentIds[0]);
}
Esto funciona perfectamente a menos que el producto configurable haya sido deshabilitado, donde la matriz $ parentIds está vacía. Necesito obtener el producto configurable incluso si está deshabilitado, y también determinar si el producto configurable está habilitado / deshabilitado.
¡Cualquier ayuda sería apreciada!