2012-02-07 10 views
17

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 (habilitado o deshabilitado).Magento obtener un producto configurable a partir de un producto simple, incluso si el producto de configuración está deshabilitado

En este momento estoy recibiendo el producto padre como esto:

$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 ha sido desactivado, en 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!

Respuesta

31

He investigado un poco y parece que no puedo reproducir su problema.

Cuando llamo a getParentIdsByChild() en un simple con un configurable deshabilitado, todavía obtengo el ID del producto padre.

$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable') 
     ->getParentIdsByChild(14412); 
var_dump($parentIds); 

Me da:

array(1) { 
    [0]=> 
    string(5) "14446" 
} 

14446 tiene un estado desactivado. También lo probé como en stock y fuera de stock.

En cuanto a 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 padre, si el enlace del producto existe.

+0

Hola, muchas gracias por tu esfuerzo! Haré un poco de investigación de mi parte para ver qué más podría estar causando esto: supuse que el problema se debía a que el producto estaba desactivado, ya que parecía ser un elemento común, pero tal vez me he perdido algo. – gregdev

+0

+1 Pude obtener inhabilitados y habilitados Ids de productos a partir de esto. –

+0

+1 para resolver mi problema, ¡gracias! – Blaater

Cuestiones relacionadas