1

私は次のコードを持っています

$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 ページから実行しています。

4

1 に答える 1

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/を参照してください

于 2012-12-05T00:59:35.937 に答える