2012-12-06 12 views
7

Attualmente sto utilizzando questo snippet per mostrare i totali del carrello nella topcart del mio negozio Magento. Il mio problema è che non si aggiorna sempre quando i prodotti vengono inseriti nel carrello, ma mostra solo 0 $, in particolare i prodotti configurabili. Ma quando un secondo prodotto viene inserito nel carrello, funziona di nuovo.Ottieni totale parziale di Magento dal carrello

Mi manca qualcosa, dovrebbe esserci un "controllo" di qualche tipo prima di questo pezzo di codice?

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

Avete tutte le estensioni che modificano il comportamento dei prodotti configurabili? Sembra che il prezzo finale configurabile venga recuperato da un prodotto figlio esistente, ma quando viene aggiunto per la prima volta, il prodotto figlio non è ancora caricato come elemento carrello, quindi il prezzo finale è eq a 0. –

risposta

17

Si può anche provare seguente codice funziona per me

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

L'IT sembra funzionare, è solo che i prodotti configurabili mostrano 0 $ fino a quando aggiungo un altro prodotto, quindi entrambi i prodotti stanno mostrando correttamente. È strano .. –

+0

@ThomasNielsen: hai capito che funziona, avendo lo stesso problema il subtotale non cambia anche se i prodotti nel carrello sono stati cambiati, ma nel mio caso non è nemmeno configurabile semplicemente usando prodotti semplici. – jarus

+0

@ Jarus: Sì, ha funzionato bene con prodotti semplici. Non ha mai funzionato pienamente con prodotti configurabili, l'estensione "Prodotti configurabili migliori" non richiede di aggiungere correttamente il prezzo. Io uso questo codice: formatPrice ($ this-> getSubtotal())?> –

2

Verificare che il blocco superiore del carrello stia estendendo un tipo di blocco rilevante come Mage_Checkout_Block_Cart_Sidebar. Se lo fai, avrai accesso a funzionalità utili che ti faranno risparmiare la riscrittura di codice non necessario.

Ad esempio, se si estende Mage_Checkout_Block_Cart_Sidebar - è possibile chiamare getSubtotal()

Un'alternativa sarebbe quella di utilizzare il seguente:

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

Che ci proverò, anche tu " sembra un lavoro per un principiante .. Lo farò un tentativo –

1

Nessuno dei precedenti ha funzionato per me, ma sono stato in grado di ottenere il subtotale utilizzando questo:

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

si riferisce alla pagina success.phtml.

2

è possibile utilizzare questo codice:

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

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