好的,我正在运行Magento 1.7并且我的老板已经要求我们在我们网站的顶部有一个酒吧,显示库存商品的总数和所有库存的总价值。
到目前为止,我已经找到了项目的总数。我对PHP不是很了解,所以它经过了大量的反复试验。
这是我的代码到目前为止的样子[更新:有一个过滤器来排除缺货产品]:
<?php
$collection = Mage::getModel('catalog/product')->getCollection()
->joinField(
'qty',
'cataloginventory/stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left'
)
->addAttributeToFilter('qty', array('eq' <= 0));
$_coreHelper = $this->helper('core');
$sum = 0;
foreach ($collection as $product){
$sum += $product->getPrice();
}
?>
As of today our inventory consists of <span style="color: black; font-size:16px; font-family: Helvetica, sans-serif; font-weight: 400; border: 1px solid black; padding: 0px 2px 0px 2px;"><?php echo $collection->count(); ?></span> items with a total value of <span style="color: black; font-size:16px; font-family: Helvetica, sans-serif; font-weight: 400; border: 1px solid black; padding: 0px 2px 0px 2px;"><?php echo $_coreHelper->currency($sum); ?></span>
总和部分显然不起作用。
任何人都可以给我一些关于如何实现这一目标的指示。我假设您将使用一个循环来加载所有产品价格,然后将一个总和加在一起并显示总数,但正确到达那里对我来说是个问题。
任何帮助都将不胜感激。
答案 0 :(得分:0)
是的,你可以这样:
<?php $collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('status','1');
$sum = 0;
$count = 0;
foreach ($collection as $_product) {
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
if ($stock>=1) {
$sum+=$_product->getPrice()*$stock;
$count+=$stock;
}
}
echo "You have $count items for a total value of ".Mage::helper('core')->currency($sum);
答案 1 :(得分:0)
上面有一些关于dagfr答案的问题,getPrice()在管理仪表板上执行时无法返回任何值,
添加:
$collection->addAttributeToSelect('price');
允许我通过
访问价格$_product['price']