Magento - 显示所有产品的总和价格

时间:2013-02-17 00:02:13

标签: php magento sum

好的,我正在运行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>

总和部分显然不起作用。

任何人都可以给我一些关于如何实现这一目标的指示。我假设您将使用一个循环来加载所有产品价格,然后将一个总和加在一起并显示总数,但正确到达那里对我来说是个问题。

任何帮助都将不胜感激。

2 个答案:

答案 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']