2011-09-21 41 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中的含义 –

相关问题