Мультивалютность магазина рассматриваемая в дополнительных модулях производит вывод цены товара
product_price помноженного на курс валют, при этом совершенно не учитывается параметр
product_currency.
Вопрос состоит в следующем: как сделать вывод цены товара в одной валюте в файле
basket.php для правильного суммирования если цена товаров в прайсе в различных валютах (параметр
product_currency), учитывая параметр
product_currency.
Я просмотрел ветку форума, нашел много аналогичных вопросов и ни одного ответа.
Попробую несколько упростить задачу.
Если добавить этот кусок кода в файл
basket.php :
//*****************************************************************
$rub='Руб';
$usd='$';
$euro='€';
$db->setQuery("SELECT product_currency FROM #__{vm}_product_price where product_id='$product_id'");
$li = $db->loadObjectList();
foreach($li as $product_id) {
$valuta=$product_id->product_currency;
}
if ($valuta == $rub)
{
$curs = '1';
}
if ($valuta == $usd)
{
$curs = '43';
}
if ($valuta == $euro)
{
$curs = '33';
}
//*****************************************************************
То получим коэффициент пересчета валюты
product_currency, прописанной в таблице
#__{vm}_product_priceНо данный код выдает только одно значение (для одного товара
$product_id, последнего добавленного или последнего с измененным количеством )
Выполнив распечатку:
print_r($_SESSION['cart'][$i]["product_id"]);
получаем распечатку всех
product_id, добавленных в корзину.
Если создать переменную, например
$pppp равную:
$pppp = $_SESSION['cart'][$i]["product_id"];
И использовать ее в выражении:
$product_price = $CURRENCY_DISPLAY->getRounded($product_price);
Результирующее выражение получается:
$product_price = $CURRENCY_DISPLAY->getRounded($product_price) * $pppp;
То все цены товаров умножаются на их
id.
Если же переменная
$pppp будет выводить не
id а
curs, то это и будет решением задачи.
Вопрос следующий:
Как получить выражение типа
$_SESSION['cart'][$i]["product_id"]
, где вместо
product_id будет находится
$curs равный курсу валюты для каждого товара?
В этом случае все добавленные товары, в какой бы валюте они небыли будут пересчитаны по курсу к рублю и промежуточное и итоговое значение покупки будет истинным и в одной валюте ибо все операции будут произведены в одной валюте.