【问题标题】:Magento get configurable product from simple product even if config product is disabled即使配置产品被禁用,Magento 从简单产品中获取可配置产品
【发布时间】:2012-02-07 10:32:42
【问题描述】:

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

现在我得到这样的父产品:

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

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

任何帮助将不胜感激!

【问题讨论】:

    标签: php magento magento-1.4


    【解决方案1】:

    我已经进行了一些挖掘,但我似乎无法重现您的问题。

    当我在一个禁用了可配置的简单对象上调用 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。

    【讨论】:

    • 您好,非常感谢您的努力!我会做一些研究,看看还有什么可能导致这个 - 我认为这个问题是由产品被禁用引起的,因为这似乎是一个常见的元素,但也许我错过了一些东西。
    • +1 我可以从中获得禁用和启用的产品 ID。
    猜你喜欢
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多