如何使用我的付款模块向订单添加发票费用?我想这应该通过我的付款方式模型在结帐过程中完成。也许我应该创建并添加一个项目/产品到购物车/报价/订单对象?Magento - 如何在结帐过程中向订单添加发票费
虽然我不知道如何做这些事情。请帮助
如何使用我的付款模块向订单添加发票费用?我想这应该通过我的付款方式模型在结帐过程中完成。也许我应该创建并添加一个项目/产品到购物车/报价/订单对象?Magento - 如何在结帐过程中向订单添加发票费
虽然我不知道如何做这些事情。请帮助
虽然可能,但它不是为懦夫。这里粗略地列出了在总计区域添加一行的步骤,然后这些步骤会将您的费用添加到总计。
在配置节点<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>
另外在3210以下内容添加到<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
向add a payment_fee column。
<after>
配置中的<after>
值负责确定计算顺序,它可以是包含“税收”,“折扣”等的总计代码的逗号分隔列表。您还可以指定<before>
值相同的目的。 $address->addTotal
,fetch()
方法将完成更新总计的工作,这是客户将收取的费用。有必要更改报价单和订单表,以便记录您收取的费用并向管理员显示。
也可以指定你自己的渲染器,如果默认不行,我也这样做了,但更加复杂。
如果您之前没有使用过Magento的代码库,我不会建议您从此开始,这相当复杂。使用扩展名可能是最安全的选择。
我还没有使用它,但我相信这extension应该做的工作。
标准免责声明:我不以任何方式隶属于供应商。 注意空虚。
使用另一个扩展不是一个选项。 – 2010-12-22 09:49:44
不错的一段代码...我会建议你遵循伊万的建议(这里:http://stackoverflow.com/questions/4378394/magento-adding-a-new-column-to-sales-flat-quote-item -and-sales-flat-order-item/4378681#4378681)以非SQL方式修改'sales_flat'表。 – 2010-12-23 04:16:18
我不得不多次添加总计行数,所以要记录方法。 – clockworkgeek 2010-12-23 10:03:01
没问题,我只是建议它为未来的读者的答案:) – 2010-12-24 03:05:22