如何在magento中获取父产品ID?

vei*_*lig 22 php magento magento-1.4

我知道在Magento 1.4.2.0中我会得到父ID

list( $parentId ) = Mage::getModel('catalog/product_type_configurable')
                            ->getParentIdsByChild( $product->getId() );
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果我不知道父母是什么,我怎么知道使用"目录/ product_type_ 配置 " VS"目录/ product_type_ 组合 "的模式,以获得ID?

Kus*_*Kus 34

您可以同时打电话给两个并提供后备,因为它应该是一个或另一个:

if($product->getTypeId() == "simple"){
    $parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($product->getId());
    if(!$parentIds)
        $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
    if(isset($parentIds[0])){
        $parent = Mage::getModel('catalog/product')->load($parentIds[0]);
        // do stuff here
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用常量Mage_Catalog_Model_Product_Type :: TYPE_SIMPLE而不是"simple". (8认同)
  • 只是给别人留言,根据您的目录,如果更频繁地出现,您可能需要首先检查可配置产品. (4认同)

小智 9

你可以使用:

$product->getTypeInstance();
Run Code Online (Sandbox Code Playgroud)

这将返回产品的类型对象

然后你可以执行你的:

->getParentIdsByChild()
Run Code Online (Sandbox Code Playgroud)

最后给出:

$product->getTypeInstance()->getParentIdsByChild($child->getId());
Run Code Online (Sandbox Code Playgroud)

  • 这怎么样?$ product-> getTypeInstance()将返回简单的产品实例.我们仍然不知道母产品是什么类型. (6认同)

小智 7

这是magento 1.7.2的另一种解决方案

$parentIds = Mage::getSingleton('catalog/product_type_configurable')->getParentIdsByChild($mageProduct->getId());
Run Code Online (Sandbox Code Playgroud)