2012-12-06 21 views
7

Obecnie używam tego fragmentu, aby wyświetlić sumy koszyka w górnej części mojego sklepu Magento. Moim problemem jest to, że nie zawsze aktualizuje się, gdy produkty są w koszyku, pokazuje tylko 0 $, a zwłaszcza produkty konfigurowalne. Ale kiedy drugi produkt jest włożony do koszyka, działa on ponownie.Pobierz subtotal magento z koszyka

Czy brakuje mi czegoś, czy powinien istnieć jakiś "czek" przed tym fragmentem kodu?

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

Czy masz jakieś rozszerzeń, które modyfikują zachowanie produktów konfigurowalnych? Wygląda na to, że konfigurowalna cena końcowa jest pobierana z istniejącego produktu podrzędnego, ale przy pierwszym dodawaniu produkt podrzędny nie jest jeszcze załadowany jako przedmiot koszyka, więc ostateczna cena wynosi eq 0. –

Odpowiedz

17

Możesz także spróbować następujący kod działa dla mnie

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

IT wydaje się działać, po prostu konfigurowalne produkty pokazują 0 $, dopóki nie dodaję innego produktu, wtedy oba produkty są wyświetlane poprawnie. To dziwne .. –

+0

@ThomasNielsen: czy to działa, mam taki sam problem, że suma częściowa się nie zmienia, nawet jeśli produkty w koszyku zostały zmienione, ale w moim przypadku nie można ich nawet konfigurować, używając tylko prostych produktów. – jarus

+0

@Jarus: Tak, działało dobrze z prostymi produktami. Nigdy nie udało się go w pełni wykorzystać z konfigurowalnymi produktami, rozszerzenie "Lepsze produkty konfigurowalne" nie chce poprawnie dodawać ceny. Używam tego kodu: formatPrice ($ this-> getSubtotal())?> –

2

Upewnij się, że górny blok koszyka rozszerza odpowiedni typ bloku, taki jak Mage_Checkout_Block_Cart_Sidebar. Jeśli to zrobisz, będziesz miał dostęp do przydatnych funkcji, które spowodują zapisanie przepisywania niepotrzebnego kodu.

Na przykład, jeśli przedłużyć Mage_Checkout_Block_Cart_Sidebar - można nazwać getSubtotal()

Alternatywą byłoby użyć następujących:

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

że spróbuję, nawet ty " to brzmi jak część pracy dla początkującego. Postaram się ją wykonać. –

1

Żadne z powyższych nie działało dla mnie, ale udało mi się uzyskać sumę częściową przy użyciu tego:

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

odnosi się to do strony success.phtml.

2

można użyć tego kodu:

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

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