Magento - 如何在结账过程中向订单添加发票费用

时间:2010-12-21 11:58:25

标签: php magento magento-1.4

如何使用我的付款模块向订单添加发票费用?我想这应该在结账过程中通过我的付款方式模型完成。也许我应该在购物车/报价/订单对象中创建并添加商品/产品?

我不知道如何做这些事情。请帮忙

2 个答案:

答案 0 :(得分:9)

虽然可能不适合假装。以下是向总计区域添加行的步骤的粗略说明,然后将您的费用添加到总计中。

在配置节点<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_quotesales_flat_order表修改为add a payment_fee column

配置中的<after>值负责确定计算顺序,它可以是逗号分隔的总计代码列表,包括“税”,“折扣”等。您还可以指定<before>值用于相同目的。 $address->addTotal方法中的fetch()将执行更新总计的工作,这是客户的收费标准。有必要更改报价单和订单表,以便记录并向管理员显示您收取的费用。

如果默认情况不行,也可以指定自己的渲染器,我也这样做了,但更复杂。

答案 1 :(得分:0)

如果你之前没有使用Magento的代码库,我不建议你从那开始,它相当复杂。使用扩展名可能是最安全的选择。

我没有使用它,但我相信这个extension应该可以胜任。

标准免责声明:我不以任何方式与供应商有任何关联。 警告经纪人