即使配置产品被禁用,Magento也可以从简单的产品中获得可配置的产品

时间:2012-02-07 10:32:43

标签: php magento magento-1.4

我需要从简单的产品中获取父可配置产品,即使父产品被标记为已禁用。我还需要获取可配置产品的状态(启用或禁用)。

现在我正在获得这样的父产品:

$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
if (isset($parentIds[0])) {
    $product = Mage::getModel('catalog/product')->load($parentIds[0]);
}

除非已禁用可配置产品,否则$ parentIds数组为空,这非常有效。即使它已被禁用,我也需要获取可配置产品,并确定是否启用了可配置产品。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:33)

我已经做了一些挖掘,我似乎无法重现你的问题。

当我在一个禁用可配置的简单上调用getParentIdsByChild()时,我仍然可以获得父产品ID。

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

给我:

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

14446的状态为已禁用。我也尝试过库存和缺货。

查看资源文件上的实际功能

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild()

我可以看到它在表catalog_product_super_link中看起来没有任何状态字段,因此如果产品链接存在,应该始终返回父ID。