I have an observer for the event
sales_quote_collect_totals_after
and I want to change the Grand Total for not logged in. I tried with:
I have an observer for the event
sales_quote_collect_totals_after
and I want to change the Grand Total for not logged in. I tried with:
$value = 100; $quote = $observer->getQuote(); $quote->setGrandTotal($value); $quote->setTotalsCollectedFlag(false)->collectTotals(); $quote->save();
or
$value = 100; $quote = $observer->getQuote(); $quote->setGrandTotal($value); $quote->collectTotals(); $quote->save();
But it doesn't work. Any ideas?
Thanks.
To update grand total, It is better to override sales quote total.
Write the below code in your config.xml file.
<sales> <quote> <totals> <extension_class> <class>Vendor_Extension_Model_Sales_Quote_Address_Total_Settotal</class> <after>shipping</after> </extension_class> </totals> </quote> </sales>
and write below code in 'Vendor_Extension_Model_Sales_Quote_Address_Total_Settotal' file at your desired location.
<?php
class Vendor_Extension_Model_Sales_Quote_Address_Total_Settotal extends Mage_Sales_Model_Quote_Address_Total_Abstract
{
public function collect(Mage_Sales_Model_Quote_Address $address)
{
$items = $address->getAllItems();
if (!count($items)) {
return $this;
}
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
$quote = Mage::getModel('sales/quote')->load($quoteId);
if($quote->getBaseGrandTotal() > 0)
{
$address->setGrandTotal(10);
$address->setBaseGrandTotal(10);
}
return $this;
}
}
Thanks for reply @theMageComp
But, we want to change the Grand Total for not logged in.
We need to set without override sales quote total.
If you have any idea please reply.