读书人

浅析Magento的钱币转换功能(转esnowxu)

发布时间: 2012-11-03 10:57:43 作者: rapoo

浅析Magento的货币转换功能(转esnowxu)
描述:
Magento的前台可以提供货币种类选择,当选择不同的货币种类,那么站内的商品价格会进行自动变化,当用户进行购买商品后进行checkout,几个步骤之后最后的订单价格还是显示当前的货币价格,当进行pp支付后,发现被转换成了美圆。
需求:
因为公司的PP帐户是支持多货币种类的,所以想当用户选择什么货币,最后都去支付什么货币。

分析:首先前台的功能其实是我们在后台进行货币种类增加、税率获取得到的。当然M的后台有个类似linux的cron的功能。可以定时去进行获取税率,具体没有看这个部分的功能,其实应该是一个调用webservice的过程。

货币种类分两大类,一类是默认的货币,另外一类是其他的货币,当正确获取到税率之后,我们就可以使用这个功能了。

这个税率是以默认货币来进行计算的。当添加商品的时候所加的也是默认的货币价格。

M在进行购物车商品增加之后,他其实记录了两类货币的价格。
一个就是默认的货币价格,另外一个是当前用户选择的货币种类的价格。
而对应的方法

getBasexxxx -- 获取默认货币的方法
getxxx -- 获取当前货币的方法。
所以,实现上面的需求,我们只需要进行相关方法的修改即可。
app\code\core\Mage\Paypal\Model\Standard.php

$amount = ($a->getBaseSubtotal()+$b->getBaseSubtotal())-($a->getBaseDiscountAmount()+$b->getBaseDiscountAmount());$amount = $this->getQuote()->getStore()->convertPriceToUsd($amount,true);$amount = sprintf('%.2f', $amount);


这样就实现了刚刚的需求。
:| 但看他数据表的结构,我想他一定还应该提供了另外一个方法,不根据默认货币来进行转换.
其实也非常简单,因为时间关系,所以没太深入研究.希望这个能够带给大家一点启示.遇到类似的需求能知道到哪里去研究就好了。

读书人网 >编程

热点推荐