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í?

¿Fue útil?

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 ;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top