magento - 将当前货币的订单金额转换为基础货币

Dee*_*lah 3 magento-1.7

我试图将订单金额从当前货币转换为基础货币,下面是我试过的代码,但没有去.

$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode(); 
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); 
$price = 1; 

$priceTwo = Mage::helper('directory')->currencyConvert($price, $baseCurrencyCode, $currentCurrencyCode); 
Run Code Online (Sandbox Code Playgroud)

hen*_*ngs 6

UPDATE

试试这段代码,可以帮到你.对于这种情况,我使用总金额.如果基础货币与当前的治愈率不同,将会改变.

    $amount = $this->getOrder()->getGrandTotal();

    $baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
    $currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();

    if ($baseCurrencyCode != $currentCurrencyCode) {
        // convert price from current currency to base currency
        $amount = Mage::helper('directory')->currencyConvert($amount, $currentCurrencyCode, $baseCurrencyCode);

        // convert price from base currency to current currency
        //$priceTwo = Mage::helper('directory')->currencyConvert($amount, $baseCurrencyCode, $currentCurrencyCode);
    }

    $amountFinal = round($amount, 2);
Run Code Online (Sandbox Code Playgroud)


小智 6

Mage::helper('directory')->currencyConvert($price, $baseCurrencyCode, $currentCurrencyCode)由于Magento在directory_currency_rate表中找不到具有"currentCurrency"=>"baseCurrency"关系的行,因此无法使用方法将当前货币的价格转换为基础货币.

要解决此问题,您只需按"baseCurrency"=>"currentCurrency"率进行价格划分即可.

你怎么能得到"baseCurrency"=>"currentCurrency"率并解决你的问题?通过这种方式:

// the price
$price=1;
// Base Currency
$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
// Current Currency
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();

// Allowed currencies
$allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
$rates = Mage::getModel('directory/currency')->getCurrencyRates($baseCurrencyCode, array_values($allowedCurrencies));
// the price converted
$price=$price/$rates[$currentCurrencyCode];
Run Code Online (Sandbox Code Playgroud)