Я новичок в opencart поэтому могу ошибаться.
Для того чтобы заработали изменения для версий 2.Х с последнего поста нужно не забыть добавить столбцы в базу данных (там про это не упомянуто и можно новичку не сориентироватся)
добавляем в таблицу __product два поля -> currency_id(int,10,NOT NULL,index),base_price(DECIMAL,10,2);
далее при пересчёте стоимости товара почему-то используется значение курса валют int? хотя курсы обычно не целое число
private function setDefaultCurrency($price = 0, $currency = 0) {
if($price > 0) {
$query = $this->db->query("SELECT value FROM " . DB_PREFIX . "currency WHERE currency_id = '" .(int)$currency. "'");
return $final_price = ($query->num_rows)? ((float)$price * (int)$query->row['value']):0;
}
return 0;
}
поэтому полагаю что нужно так
private function setDefaultCurrency($price = 0, $currency = 0) {
if($price > 0) {
$query = $this->db->query("SELECT value FROM " . DB_PREFIX . "currency WHERE currency_id = '" .(int)$currency. "'");
return $final_price = ($query->num_rows)? ((float)$price * (float)$query->row['value']):0;
}
return 0;
}
И ещё необходимо придумать как автоматически изменять цены всех товаров при изменении курса. Т.к. цена пересчитывается только тогда когда сохраняешь товар.