2010-12-06 2 views
4

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

Есть ли у кого-нибудь идеи?

ответ

14

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

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

Вы можете изменить свой демонстрационный общий коллектор поэтому он будет вставлен в процесс сбора ПОСЛЕ ОБЩИЙ ИТОГ коллектора (см config.xml в модуле и т.д. каталог - удалить <before>subtotal</before> узел затем использовать <after>grand_total</after> вместо этого) и изменять собирать() метода просто установить общие итоги ваших предопределенных значения:

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

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

Удачи :)

+0

отличный пример – 2010-12-06 10:00:50

0

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

соблюдайте

Mage_Sales_Model_Quote_Address_Total_Abstract Mage_Sales_Model_Order_Invoice_Total_Abstract Mage_Sales_Model_Order_Creditmemo_Total_Abstract

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

+2

Не могли бы вы предоставить дополнительную информацию об этом? – smart 2010-12-06 06:51:59