Общая сумма не меняется с помощью observer на странице оформления заказа в Magento 1.8


Я использую обозреватель событий на странице оформления заказа для изменения общего итога на странице оформления заказа config.xml

<?xml version="1.0"?>
<config>
<modules>
    <Ranosys_SpecialPrice>
        <version>0.1.3</version>
    </Ranosys_SpecialPrice>
</modules>

<global>
    <events>
        <payment_method_is_active>
            <observers>
                <observer>
                    <type>singleton</type>
                    <class>Ranosys_SpecialPrice_Model_Observer</class>
                    <method>paymentmethod</method>
                </observer>
            </observers>
        </payment_method_is_active>
    </events>   
</global>

Observer.php

<?php

class Ranosys_SpecialPrice_Model_Observer {

public function paymentmethod(Varien_Event_Observer $observer) 
{
    $method = $observer->getEvent()->getMethodInstance();
    $quote = $observer->getEvent()->getQuote();
    if($method->getCode()=='cashondelivery')
    {
        $quote->setGrandTotal(round($quote->getGrandTotal()));
        $quote->save();
        Mage::log(var_export($quote->debug(), TRUE), null, 'order.log');
    }
    return $this;
} 
}

Когда я проверяю order.log, он показывает округление общей суммы, но не отображается на странице оформления заказа. Как я могу показать измененную общую сумму на странице оформления заказа.

Author: Ramkishan Suthar, 2017-01-16

1 answers

Вы можете сделать это, используя коллектор после

Mage_sales_model_quote_адрес_тотал_гранд

И установите общий итог, используя setGrandTotal.

Проверьте эту ссылку для справки. Вы можете просто использовать коллектор для обновления только общего итога. Ссылка

 4
Author: Asheem Patro, 2017-01-16 06:45:45