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

gre*_*dev 17 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]);
}
Run Code Online (Sandbox Code Playgroud)

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

任何帮助,将不胜感激!

Nei*_*ken 33

我做了一点挖掘,我似乎无法重现你的问题.

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

$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')
      ->getParentIdsByChild(14412);
var_dump($parentIds);
Run Code Online (Sandbox Code Playgroud)

给我:

array(1) {
  [0]=>
  string(5) "14446"
}
Run Code Online (Sandbox Code Playgroud)

14446具有禁用状态.我也尝试过库存和缺货.

查看资源文件的实际功能

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild()
Run Code Online (Sandbox Code Playgroud)

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