PDA

View Full Version : Auto Update Currency Exchange Rate



michael_s
02-13-2008, 12:11 AM
The code has two parts, the 1st part is reading exchange rate and make a catch file in your web server. The 2nd part is updating your currency exchange rate.

Due to the exchange rate came from Euro bank, we need to do some calculations for other currency.

However, the code is written for GBP web site, therefore, little modification need to be made if you want to use USD or other currency as your default currency.

// Update Currency Rate

# Read currency exchanges rates
# Cache file if appropriate ...
if (time()-filemtime("eurofxref-daily.xml") > 36000) {
$stuff = file("http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml");
$fh = fopen("eurofxref-daily.xml","w");
foreach ($stuff as $line) { fputs($fh,$line); }
fclose ($fh);
$xld = "loaded afresh (and not cached)";
} else {
# .. or read from cache
$stuff = file("eurofxref-daily.xml");
$xld = "cached (and not loaded afresh)";
}
# $xld may be used in your output to inform you user or admin
# Extract exchange rates
$exchrate[EUR] = 1.00;
foreach ($stuff as $line) {
ereg("currency='([[:alpha:]]+)'",$line,$gota);
if (ereg("rate='([[:graph:]]+)'",$line,$gotb)) {
$exchrate[$gota[1]] = $gotb[1];
}
}
// Get exchange rate for EUR based on your default currency.
$value1 = round(1 / $exchrate[GBP], 8); // Change $exchrate[***] to your default currency

// Get exchange rate for extra currency based on your default currency
$value2 = round($value1 * $exchrate[USD], 8); // Change $exchrate[***] to any other extra currency

tep_db_query("update currencies set value = ". $value1 ." where code = 'EUR'");

tep_db_query("update currencies set value = ". $value2 ." where code = 'USD'");
// Change ‘USD’ to any other currency you defined for value2


More... (http://addons.oscommerce.com/info/5685)