如何从可配置产品中获取简单产品列表

时间:2012-12-05 00:43:25

标签: php magento

我有以下代码

$id = 19654;
$prod = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*');
$prod->addAttributeToFilter('entity_id',array('in'=> array($id)));
$prod->load();

使用以下代码

foreach($prod as $_prod)
{
     var_dump($_prod->getData());
}

我可以查看几乎所有与我正在查看的可配置产品相​​关的数据,至少我缺少的数据,以及与之相关的简单产品的entity_id列表

就数据库而言,我知道简单和可配置产品之间的链接在catalog_product_relation,catalog_product_super_link和/或catalog_product_link中,因为我正在使用集合,我不能只使用INNER JOIN

我从我的magento安装的根目录中的test.php页面运行此代码

1 个答案:

答案 0 :(得分:3)

尝试

$_product = Mage::getModel('catalog/product')->load($productId);


if($_product->getTypeId() == "configurable"){
    $AssociatedProduct = $_product->getTypeInstance()->getUsedProducts(); 
} 

或者

if($_product->getTypeId() == "configurable"){
    $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
    $col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
    foreach($col as $simple_product){
       var_dump($simple_product->getId());
    }
}

请参阅http://www.magentocommerce.com/boards/viewthread/41874/