2012-12-06 73 views
7

我目前正在使用此代碼段顯示我的Magento商店的topcart中的購物車總計。我的問題是,當產品放入購物車時,它並不總是更新,它只是顯示0 $,特別是可配置的產品。但是,當第二個產品放入購物車時,它會再次運轉。從購物車中獲取magento小計

我錯過了什麼,應該在這段代碼之前有一些「檢查」?

<?php echo Mage::helper('checkout')->formatPrice($this->getSubtotal()) ?> 
+0

你是否有修改配置的產品的行爲,任何的擴展?似乎可配置的最終價格是從現有的兒童產品中檢索出來的,但在第一次添加時,兒童產品尚未作爲購物車項目加載,因此最終價格等於0. –

回答

17

您也可以嘗試下面的它運行的代碼,我

<?php echo Mage::helper('checkout/cart')->getQuote()->getSubtotal() ?> 
+0

它似乎工作,它只是配置產品顯示0美元,直到我添加另一個產品,然後兩個產品都正確顯示。這很奇怪...... –

+0

@ThomasNielsen:你有沒有得到這個工作,即使有小車也沒有改變,即使購物車中的產品已被更改,但在我的情況下,它甚至不可配置,即使使用簡單的產品也有同樣的問題。 – jarus

+0

@Jarus:是的,它對簡單的產品效果很好。從來沒有完全使用可配置產品,「更好的可配置產品」擴展不希望正確添加價格。 我使用此代碼: <?php echo Mage :: helper('checkout') - > formatPrice($ this-> getSubtotal())?> –

2

確保您的頂級購物車塊正在擴展相關塊類型,例如Mage_Checkout_Block_Cart_Sidebar。如果你這樣做,你將有權訪問有用的功能,這將節省你重寫不必要的代碼。

例如,如果你擴展Mage_Checkout_Block_Cart_Sidebar - 你可以調用getSubtotal()

另一種方法是使用下面的:

Mage::getSingleton('checkout/session')->getQuote()->getSubtotal(); 
+0

我會盡力,這聽起來像是一個新手的工作..我會給它一個 –

1

以上都不是我的工作,但我可以用這個得到小計:

$orderObj = Mage::getModel('sales/order')>loadByIncrementId($this>getOrderId()); 
$orderSubTotal = $orderObj ->subtotal; 
echo '' . $orderSubTotal . ''; 

這指的是success.phtml頁面。

2

您可以使用此代碼:

$subtotals= Mage::getSingleton('checkout/session')->getQuote()->getSubtotal(); 

echo $formattedPrice = Mage::helper('core')->currency($subtotals , true, false);