Как установить обычную общую сумму перед оформлением заказа в magento?

Я добавил наблюдателя на мероприятие «sales_order_place_before» и хочу настроить общую сумму перед обработкой платежа. но я много пробовал изменить цену котировки, но она не работает.

Кто-нибудь есть идея?

Related of "Как установить обычную общую сумму перед оформлением заказа в magento?"

Вам нужно добавить новый коллекционер после общего итогового (Mage_Sales_Model_Quote_Address_Total_Grand). Он должен изменить сумму, установленную великим общим коллекционером.

Я говорил об этом на конференции MageConf в Украине неделю назад. Видео и слайды пока недоступны, но вы можете скачать демонстрационный модуль, который был описан на конференции. Существует пример полного коллектора, который вычисляет цену упаковки.

Вы можете изменить мой общий коллекционер демо, чтобы он был вставлен в процесс сбора. После завершения общего сбора (см. Config.xml в каталоге module etc) удалите узел <after>grand_total</after> <before>subtotal</before> затем используйте <after>grand_total</after> вместо этого) и изменить метод collect () только для того, чтобы задать общие итоги для ваших предопределенных значений:

 $address->setGrandTotal($someValue); $address->setBaseGrandTotal($someBaseValue); 

Или вы можете оставить этот модуль таким, какой он есть, но установите в нем отрицательные итоговые значения. Таким образом, суммарный суммарный сборник будет вычитать их и снизить общую общую стоимость по вашему желанию. Кроме того, в таком случае клиент сможет увидеть ваши отрицательные значения (дать им метод fetch () ) и понять, почему великие итоги были опущены.

Повеселись 🙂

вам не нужно создавать новый общий объект или добавлять суммы в качестве виртуальных продуктов

соблюдайте

Mage_Sales_Model_Quote_Address_Total_Abstract Mage_Sales_Model_Order_Invoice_Total_Abstract Mage_Sales_Model_Order_Creditmemo_Total_Abstract

чтобы узнать, что необходимо для реализации общего объекта. Вам также может потребоваться расширить объекты скорости