0

さて、私は 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>

合計セクションは明らかに機能しません。

これを達成する方法について、誰かが私にいくつかの指針を教えてもらえますか。ループを使用してすべての製品価格をロードし、合計を使用してそれらをすべて加算して合計を表示すると思いますが、正しくそこに到達することは私にとって問題であることが証明されています。

どんな助けでも大歓迎です。

4

2 に答える 2

0

上記のdagfrの回答にいくつか問題がありました.getPrice()は管理ダッシュボードで実行されたときに値を返すことができませんでした.

追加:

$collection->addAttributeToSelect('price');

その後、次の方法で価格にアクセスできました

$_product['price']
于 2014-01-27T14:37:00.227 に答える
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);
于 2013-02-17T10:40:18.543 に答える