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

StackOverflow https://stackoverflow.com/questions/4363876

  •  09-10-2019
  •  | 
  •  

Вопрос

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

У кого-нибудь есть какие-нибудь идеи??

Это было полезно?

Решение

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

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

Вы можете изменить мою демонстрационную версию total collector, чтобы она была вставлена в процесс сбора ПОСЛЕ Grand total collector (см. config.xml в модуле и т.д. каталог - удалить <before>subtotal</before> узел затем использует <after>grand_total</after> вместо этого) и изменить собирать() метод просто для того, чтобы установить общие итоги в соответствии с вашими предопределенными значениями:

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

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

Получайте удовольствие :)

Другие советы

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

Пожалуйста, соблюдайте

Mage_Sales_Model_Quote_Address_Total_Abstract Mage_Sales_Model_Order_Invoice_Total_Abstract Mage_Sales_Model_Order_Creditmemo_Total_Abstract

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top