0
在下面的代码中,我打印了一个产品列表,一个库存清单,出于某种原因,使其工作的唯一方法是在循环遍历它们的同时再次实例化产品。否则,我错过了价格和库存。为什么我需要实例化产品两次?
任何想法?
这里是我的代码,
$data = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('name')
->addAttributeToSelect('type_id')
->addAttributeToSelect('sku')
->addAttributeToSort('name', 'ASC')
->addFilter('type_id', 'simple');
?><table dir="ltr" summary="Stock report table">
<thead>
<tr>
<th>Id</th>
<th>Type</th>
<th>SKU</th>
<th>Name</th>
<th>Price</th>
<th>Stock</th>
</tr>
</thead>
<tbody>
<?php
$i = 0;
foreach($data as $product){
$p = Mage::getModel('catalog/product')->load($product->getId());
echo "<tr>";
echo "<td>".$p->getId()."</td>";
echo "<td>".$p->getTypeId()."</td>";
echo "<td>".$p->getSku()."</td>";
echo "<td>".$p->getName()."</td>";
echo "<td>£".number_format($p->getPrice(), 2)."</td>";
echo "<td>".$p->getData('stock_item/qty')."</td>";
$i++;
// if($i == 1){ break; }
}
?></tbody>
</table>
<?php
这适用于价格,根据我的答案。但是,这似乎不适用于股票。我认为这是因为我们为我们的产品使用了OrganicInternet_SimpleConfigurableProducts,这意味着'stock_status'只是返回一个空白'stock_item'数组 – 2012-04-20 15:15:01