La conversión de divisas mediante programación
-
16-10-2019 - |
Pregunta
Estoy tratando de convertir la moneda en Magento 1.5 usando el siguiente código en un archivo separado para comprobar la conversión de moneda. Tengo dos tiendas con configuración de moneda respectivos en el admin.
set_time_limit(0);
error_reporting(1);
ini_set('display_errors', 1);
define('D_S', DIRECTORY_SEPARATOR);
require_once 'app/Mage.php';
umask(0);
Mage::app();
$_fromCurr = 'USD';
if( Mage::app()->getStore()->getCurrentCurrencyCode() == 'CAD') {
$_locale = 'en_CA';
$_toCurr = 'CAD';
} else {
$_locale = 'en_US';
$_toCurr = 'USD';
}
$currency = new Zend_Currency($_locale);
$amount = 150;
echo $_price = $currency->toCurrency(round( Mage::helper('directory')->currencyConvert( $amount, $_fromCurr, $_toCurr ), 2 ));
Estoy recibiendo el error de seguimiento
Fatal error: llamada a un getCode función miembro () en un no-objeto en /var/www/vhosts/www.test.com/httpdocs/app/code/core/Mage/Directory/Model/Currency.php en la línea 171
http://www.magentocommerce.com / placas / v / viewthread / 118631 / P15 / # t381027 , pero no funciona. Lo que está mal aquí?
Solución
El error fatal de PHP se derivan de un error en el método de conversión donde se supone que $ toCurrency es un objeto. El error, sin embargo, está siendo causado cuando se está tratando de lanzar una excepción:
throw new Exception(Mage::helper('directory')->__('Undefined rate from "%s-%s".', $this->getCode(), $toCurrency->getCode()));
El significado de este error es que el método convert
no puede encontrar una tarifa. He probado el código, y funciona bien, siempre y cuando existan las tarifas para las monedas que está convirtiendo a / de.
Lo que usted tiene que hacer es navegar a Sistema -> Configuración -.> Configuración de divisas y asegúrese de que las monedas que está utilizando se seleccionan en la configuración de Monedas animales
Una vez que haya seleccionado las Monedas de animales, que tendrá que fijar las tarifas. Puede hacer esto de ir a Sistema -> Administración de los tipos de cambio. Desde allí se puede introducir sus propios índices de conversión en la red o de importación haciendo clic en el botón Importar, a continuación, haga clic en Guardar los tipos de cambio.
Una vez que tenga las tasas de cambio de la configuración de conversión, que debería funcionar sin problemas.
Otros consejos
Trate a continuación código que será trabajado
$_Baseprice = $_product->getPrice();
$_Currentcurrencycode =Mage::app()->getStore()->getCurrentCurrencyCode();
//This will return USD, EUR e.t.c
//echo $_Currentcurrencycode;
if ($_Currentcurrencycode == 'USD') {$_convertedCurrency = Mage::helper('directory')->currencyConvert($cprice, 'SAR', 'USD');}
else {$_convertedCurrency = Mage::helper('directory')->currencyConvert($cprice, 'SAR', 'SAR');}
//_convertedCurrency will return price without symbol
//echo $_convertedCurrency ;