我创建了一个自定义模块来为客户提供一些折扣费用。我已参考此链接为客户费用折扣创建自定义模块。
在这种情况下,当客户有自己的折扣点时,他们将应用购物车页面中的折扣点来减少小计和总计。更改在购物车和结帐页面等中运行良好。
我的问题是订单小计和总计未反映在 Paypal 支付网关行项目中。
因此,我编写了 Event Observer 以使用 Sub total 减去折扣费用并将新行添加到 paypal 行项目。
下面的代码我尝试为折扣费用和小计扣除添加新行
<events>
<paypal_prepare_line_items>
<observers>
<modulename>
<type>singleton</type>
<class>modulename/observer</class>
<method>prepareItems</method>
</modulename>
</observers>
</paypal_prepare_line_items>
</events>
观察者核心是
<?php
class Mycompany_Modulename_Model_Observer extends Mage_Core_Model_Abstract
{
const TOTAL_FEE = 'Fee';
const TOTAL_SUBTOTAL = 'subtotal';
public function prepareItems($observer)
{
$cart = $observer->getPaypalCart();
if($cart->getSalesEntity()->getFeeAmount())
{
$name = 'Custom Discount';
$qty = '1';
$amount = -1.00 * $cart->getSalesEntity()->getFeeAmount();
$identifier = NULL;
$cart->_shouldRender = true;
$item = new Varien_Object(array(
'name' => $name,
'qty' => $qty,
'amount' => (float)$amount,
));
$cart->_items[] = $item;
$cart->updateTotal();
}
return;
}
}
谁能指出我正确的解决方案?
我需要使用贝宝行项目添加折扣费用,并且将正确计算小计。
任何帮助非常感谢。
谢谢。