Получить 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, который.