我需要从简单的产品中获取父可配置产品,即使父产品被标记为已禁用。我还需要获取可配置产品的状态(启用或禁用)。
现在我正在获得这样的父产品:
$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
if (isset($parentIds[0])) {
$product = Mage::getModel('catalog/product')->load($parentIds[0]);
}
除非已禁用可配置产品,否则$ parentIds数组为空,这非常有效。即使它已被禁用,我也需要获取可配置产品,并确定是否启用了可配置产品。
任何帮助将不胜感激!
答案 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。