Получить Magento промежуточный итог из корзины

в настоящее время я использую этот фрагмент, чтобы показать итоги корзины в topcart моего магазина Magento. Моя проблема в том, что он не всегда обновляется, когда продукты помещаются в корзину, он просто показывает 0$, особенно настраиваемые продукты. Но когда второй продукт кладется в корзину, он снова работает.

Я что-то упускаю, должна ли быть какая-то "проверка" перед этим фрагментом кода?

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

4 ответов


вы также можете попробовать следующий код, он работает для меня

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

убедитесь, что ваш верхний блок корзины расширяет соответствующий тип блока, такой как Mage_Checkout_Block_Cart_Sidebar. Если вы это сделаете, у вас будет доступ к полезной функциональности, которая избавит вас от перезаписи ненужного кода.

например, если вы расширяете Mage_Checkout_Block_Cart_Sidebar - вы можете назвать getSubtotal()

альтернативой было бы использовать следующее:

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

вы можете использовать этот код:

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

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

ни один из вышеперечисленных не работал для меня, но я смог получить промежуточный итог, используя это:

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

это относится к успеху.страница phtml, который.