在:
/magento/app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml
你会看到他们使用这个:
<?php
$_associatedProducts = $this->getAssociatedProducts();
由于该 phtml 文件的类型为Mage_Catalog_Block_Product_View_Type_Grouped,我们可以转到:
/magento/app/code/core/Mage/Catalog/Block/Product/View/Type/Grouped.php
看到Mage_Catalog_Block_Product_View_Type_Grouped::getAssociatedProducts() 这样做了:
<?php
$this->getProduct()->getTypeInstance()->getAssociatedProducts($this->getProduct());
所以我们可以放心地假设 $this->getProduct() 返回一个产品对象,并将其替换为您的 $product 变量,如下所示:
<?php
if ($product->getTypeId() == 'grouped'){
// how do I now get associated products of $product?
$associatedProducts = $product->getTypeInstance()->getAssociatedProducts($product);
}
如果我要彻底优化你的代码,我会这样写:
<?php
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('type_id', array('eq' => 'grouped'));
foreach ($products as $product) {
$associatedProducts = $product->getTypeInstance()->getAssociatedProducts($product);
// Do something with $associatedProducts
}