Frage

Ich versuche, die Währung in Magento 1.5 mit dem folgenden Code in einer separaten Datei zu konvertieren, um die Währungskonvertierung zu überprüfen. Ich habe zwei Geschäfte mit den jeweiligen Währungseinstellungen im Administrator.

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 ));

Ich bekomme einen folgenden Fehler,

Fataler Fehler: Rufen Sie bei einer Mitgliedsfunktion getCode () auf einem Nicht-Objekt in /var/www/vhosts/www.test.com/httpdocs/app/code/core/mage/directory/model/currency.php in Zeile 171

Ich habe versucht, dem zu folgen http://www.magentocommerce.com/boards/v/viewthread/118631/p15/#t381027, aber es funktioniert nicht. Was ist hier falsch?

War es hilfreich?

Lösung

Der fatale PHP -Fehler stammt aus einem Fehler in der Konvertierungsmethode, bei dem angenommen wird, dass $ tocurrency ein Objekt ist. Der Fehler wird jedoch verursacht, wenn versucht wird, eine Ausnahme zu machen:

throw new Exception(Mage::helper('directory')->__('Undefined rate from "%s-%s".', $this->getCode(), $toCurrency->getCode()));

Die Bedeutung dieses Fehlers ist, dass die convert Methode kann keine Rate finden. Ich habe Ihren Code getestet, und es funktioniert gut, solange die Preise für die Währungen vorhanden sind, in die Sie umgewandelt werden.

Sie müssen zu System navigieren -> Konfiguration -> Währungsaufbau und stellen Sie sicher, dass die von Ihnen verwendeten Währungen in der Einstellung der zulässigen Währungen ausgewählt sind.

Nachdem Sie die zulässigen Währungen ausgewählt haben, müssen Sie die Preise festlegen. Sie können dies tun, indem Sie zu System gehen -> Währungsraten verwalten. Von dort aus können Sie entweder Ihre eigenen Konvertierungsverhältnisse in das Netz eingeben oder sie importieren, indem Sie auf die Schaltfläche Importieren klicken und dann auf Währungsraten speichern.

Sobald Sie die Währungsraten für das Conversion -Setup haben, sollte es ohne Probleme funktionieren.

Andere Tipps

Versuchen Sie den folgenden Code, es wird funktionieren

$_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 ;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top