Magento – Как добавить комиссионный сбор за заказ в процессе оформления заказа

Как добавить комиссионный сбор за заказ в моем платежном модуле? Я предполагаю, что это должно быть сделано во время процесса проверки через мою модель метода оплаты. Возможно, я должен создать и добавить элемент / продукт в объект cart / quote / order?

Однако я не знаю, как это сделать. Пожалуйста помоги

Хотя возможно, это не для финт-сердца. Ниже приведено краткое описание шагов, чтобы добавить строку в общую область, которая затем добавит ваш гонорар к общей сумме.

В конфигурационном узле <global><sales><quote><total> добавьте новую запись (см. app/code/core/Mage/Sales/etc/config.xml для получения дополнительных примеров)

 <paymentFee> <class>yourmodule/quote_address_total_paymentFee</class> <!-- A model --> <after>subtotal</after> </paymentFee> 

Также в config.xml добавьте следующее в <global>

 <fieldsets> <sales_convert_quote> <payment_fee><to_order>*</to_order></payment_fee> </sales_convert_quote> </fieldsets> 

Создайте модель для расчета платы.

 class Your_Module_Model_Quote_Address_Total_Warranty extends Mage_Sales_Model_Quote_Address_Total_Abstract { public function __construct() { $this->setCode('paymentFee'); } public function collect(Mage_Sales_Model_Quote_Address $address) { // Check the payment method in use, if it is yours do... $address->setPaymentFee($fee); return $this; } public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getPaymentFee()) { $address->addTotal(array( 'code' => $this->getCode(), 'title' => 'Your module payment message', 'value' => $address->getPaymentFee() )); } return $this; } } 

В настройках вашего модуля измените таблицы sales_flat_quote и sales_flat_order чтобы добавить столбец payment_fee .

Значение <after> в конфигурации отвечает за определение порядка расчета, это может быть разделенный запятыми список кодов итоговых сумм, включая «налог», «скидка» и т. Д. Вы также можете указать значение <before> для те же цели. Метод $address->addTotal in fetch() будет выполнять работу по обновлению общей суммы, которая будет взиматься с клиента. Необходимо изменить таблицы котировок и заказов, чтобы взимаемая вами плата была записана и показана администратору.

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

Если вы раньше не работали с кодовой базой Magento, я бы не рекомендовал вам начать с этого, это довольно сложно. Использование расширения, вероятно, является самым безопасным вариантом.

Я не использовал его, но я считаю, что это расширение должно выполнять эту работу.

Стандартная оговорка: я никоим образом не связан с продавцом. Предостережение emptor .