最近做一个项目,需要为Magento添加一种费用(手续费)
花一天时间看了一下代码,发现具体运算各种运费的类在app/code/core/Mage/Sales/Model/Quote/Address/Total/下,于是在该文件夹下创建一个Handing fee文件(最好是单独写成扩展,尽量不要在core中做修改,影响升级)
注:下述仅仅是简单地从sales_flat_quote_address 表中获取手续费用,如果费用需要magento单独计算,需要把collect方法实现。
其次配置一下XML,app/code/core/Mage/Sales/etc/config.xml.把手续费实现类指向你自定义类,位置大概在500行
了解这些东西之后,如果要想使magento集成第三方API(magento仅需要提供客户的邮编、国家、州、城市、县等就可以获取各种费用,不需要magento进行计算),仅需要在自定义的扩展模块中继承相关类(Mage_Sales_Model_Quote_Address_Total_Abstract),实现collect与fetch方法,并在config.xml中把各种费用的运算类指向自定义的扩展类就OK了。非常方便