2010-12-21 53 views

回答

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> 

另外在​​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_quotesales_flat_orderadd a payment_fee column

<after>配置中的<after>值負責確定計算順序,它可以是包含「稅收」,「折扣」等的總計代碼的逗號分隔列表。您還可以指定<before>值相同的目的。 $address->addTotal,fetch()方法將完成更新總計的工作,這是客戶將收取的費用。有必要更改報價單和訂單表,以便記錄您收取的費用並向管理員顯示。

也可以指定你自己的渲染器,如果默認不行,我也這樣做了,但更加複雜。

+0

不錯的一段代碼...我會建議你遵循伊萬的建議(這裏: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

+0

我不得不多次添加總計行數,所以要記錄方法。 – clockworkgeek 2010-12-23 10:03:01

+0

沒問題,我只是建議它爲未來的讀者的答案:) – 2010-12-24 03:05:22

0

如果您之前沒有使用過Magento的代碼庫,我不會建議您從此開始,這相當複雜。使用擴展名可能是最安全的選擇。

我還沒有使用它,但我相信這extension應該做的工作。

標準免責聲明:我不以任何方式隸屬於供應商。 注意空虛

+0

使用另一個擴展不是一個選項。 – 2010-12-22 09:49:44

相關問題