@alex_belouss

Как сделать мульти цену на сайте (конвертация цена на несколько валют)?

Сейчас на сайте основная валюта это рубль, необходимо подключить курсы валют какого нибудь банка, и конвертировать на другие валюты. будут флажки-переключатели на сайте. Как это реализовывается? Писать в отдельное поле в БД цену например в долларах?
  • Вопрос задан
  • 3262 просмотра
Решения вопроса 3
bigton
@bigton
Web-программист
API ЦБ www.cbr.ru/scripts/XML_daily.asp

Можно раз в день брать курс который ЦБ установил, сохранять курс в БД.
А при выводе вместо $price использовать функцию price($price_rub, $convert_to).
Ответ написан
Комментировать
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
Ну или как вы сказали - одтельную цену в бд, и к примеру кроном раз в сутки пересчитывать, или пересчитывать по курсу в нужную валюту "на лету".
Ответ написан
Комментировать
gubin_niko
@gubin_niko
Каждый день обновляйте курс валют относительно рубля (57.01 для доллара, 61.53 для евро и т.д.) и храните в любом виде, как вам удобно. Будем считать, что вы определились с хранением курсов и сделали это.

Далее создаём "флажки" для переключения товара. Так, как вам хочется. Храним в cookie ключик (или берём ключ для валюты по умолчанию) выставленной валюты и при отображении товара делаем пересчёт. Если выбраны рубли (а в табличке вы должны будете добавить значение для рубля равное 1, т.к. рубль = рубль), то делите рублёвую цену из базы перед выводом на 1, если выбраны доллары, то на 57.01 и т.д. Если валюты дешевле рубля, то храните для неё значение типа 0.5 в базе, (т.е. в 2 раза дешевле рубля эта валюта), то при делении будем получать бОльшее число.

Элементарный пример на php:
// Список значений для валют,
// которые вы выгрузили из файла (к примеру)
$currency = [
  'rub' => 1,
  'usd' => 57.02,
  'eur' => 61.53
];

// Текущее значение для валюты,
// которое взято из cookie и проверено, что там не "левое" значение
$current = 'usd';

// А это ваша цена из БД в рублях
$productPrice = 1000;

// Тут мы выводим итоговое значение
// в нужном месте в шаблоне (можно округлить и т.д.)
echo $productPrice / $currency[$current];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы