2011-09-21 69 views
0

我正在嘗試創建訂單總計模塊以執行一些自定義價格調整。只是爲了開始這個,我只是試圖讓它爲每一個訂單增加20美元(最終放入真正的邏輯)。有關在Magento中創建訂單總額的問題

我遇到了我創建的模塊問題。第一個問題是,它似乎運行兩次(所以它是花40美元,而不是隻有20美元 - 記錄顯示我的收集和提取方法都運行兩次)

第二個問題是,折扣訂單項出現在Grand Total行的下方。

有人能告訴我我在做什麼錯嗎?下面是我的config.xml和訂單總類的內容。

config.xml的內容

<global> 
    <sales> 
     <quote> 
      <totals> 
       <mud> 
        <class>Wpe_Multiunitdiscount_Model_Multiunitdiscount</class> 
        <before>grand_total</before> 
       </mud> 
      </totals> 
     </quote> 
    </sales>  
</global> 

Wpe_Multiunitdiscount_Model_Multiunitdiscount內容

class Wpe_Multiunitdiscount_Model_Multiunitdiscount extends Mage_Sales_Model_Quote_Address_Total_Abstract { 

public function collect(Mage_Sales_Model_Quote_Address $address) { 
    $address->setGrandTotal($address->getGrandTotal() + 20); 
    $address->setBaseGrandTotal($address->getBaseGrandTotal() + 20); 
    return $this; 
} 

public function fetch(Mage_Sales_Model_Quote_Address $address) { 
    $address->addTotal(array(
     'code' => $this->getCode(), 
     'title' => Mage::helper('sales')->__('Super Tax'), 
     'value' => 20, 
    )); 
    return $this; 
} 
} 

回答

1

關於 「雙」 的問題,據我瞭解,這是因爲Magento的收集您的總兩次,一次爲船地址和一次的帳單地址。
我敢肯定,必須有管理這是一個更好的辦法,但現在我在收集方法的第一行添加了:

if ($address->getData('address_type')=='billing') return $this; 

,併爲「位置」,你有沒有嘗試與「後」,而不是「前」(改變總的別名,當然,我們說「稅」例如「)?
HTH

+0

謝謝。這似乎工作。我發現它pre tty奇怪Magento以這種方式工作,但這不是我第一次想到Magento。 –

+0

我寧願認爲有一天我會理解爲什麼:) – OSdave

+0

你仍然在錯誤的方式下去,只是爲了讓你知道,你不能修改總數! – Kenny

0

添加自定義的總時不能接觸任何其他彙總,請參閱這個線程的更多信息:Magento upfront payment

+0

其中功能定義在magento「getInvoiceTaxAmount」,「getBaseInvoiceFeeExcludedVat」我無法在magento中找到這些功能,任何人都可以解釋它們是什麼以及它們是如何使用的 –

+0

這些是Magento的神奇功能。 – Kenny

+0

可以請你告訴我在哪裏或如何知道所有的魔術功能及其在magento中的含義 –

相關問題