Подсмотрел в инете как делали другие. И сделал (комментарий - до правки, без комментария - исполняемый код).
/** curl_setopt($curl, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=' . implode(',', $data) . '&f=sl1&e=.csv'); **/
curl_setopt($curl, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?s=USDRUB=X&f=sl1&e=.csv');
/** $this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '" . (float)$value . "', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = '" . $this->db->escape($currency) . "'"); **/
$this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '1.00000', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = 'USD'");
/** $this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '1.00000', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = '" . $this->db->escape($this->config->get('config_currency')) . "'"); **/
$this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '" . (float)$value . "', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = 'RUB'");
Теперь логика во фронте верная (автооапдейт курса работает, цены в рублях считаются верно), но в бэке логика опять странная. Валюта по-умолчанию (рубль) приняла значение 64 (это неправильно, так как курс рубля 0.0156), а USD - курс стал равен 1 (хотя на самом деле ~64).
Хотелось бы, чтобы во фронте все осталось как сейчас, а в админке стало USD = 64, а RUR = 1 (Валюта по-умолчанию). Кто поможет советом? Сам не осилю.