Настройка валют (конвертация и внешний вид)

10.0/10 оценка (3 голосов)

ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ОТНЕСИТЕСЬ К НАСТРОЙКАМ ВАЛЮТ, ТАК КАК ЭТО ВЛИЯЕТ НА РАБОТУ САЙТА В ЦЕЛОМ!

Где добавляются валюты?После того, как вы настроили корзину на своем сайте, у вас будет выведена на странице только одна валюта — евро, которая установлена по умолчанию. Если вам нужны другие валюты или вы хотите сменить ее по умолчанию, допустим, на рубли, то сделайте следующее.

Пример флагов валют

Кликните на оранжевую шестеренку, Коммерция, Курсы валют и их форматы. На этой странице вы сами добавляете все необходимые валюты с помощью различных сервисов. Вы можете увидеть список элементов справа. Настройки у всех элементов очень похожи. Разница лишь в том, каким образом будет вычисляться курс той или иной валюты.

Описание настроек

Теперь перейдем непосредственно к описанию настроек валют:

  • Основные настройки валютElement ID — уникальный идентификатор элемента. В основном используется в базе данных для хранения значений.

  • Название — как вы назовете денежную единицу.

  • Описание — укажите описание валюты. Его будет видеть только администратор.

  • Трехзначный код — трехбуквенный код страны, установленный стандартом ISO (например, eur, usd, rub и т.д.).

  • Символ валюты — знак определенной денежной единицы. Допустим, для рубля будет руб., для доллара — $. Можно также записать html-тег с классом. Это будет особенно, если у вас подключен CSS фреймворк. Т.к. в них уже предусмотрены символы валют, которые подгружаются по определенным классам. Например, можно будет отобразить символ рубля, просто добавив в данную настройку определенный класс.

  • Режим округления — каким образом будет производится округление: в большую сторону, в меньшую или как обычно. О режимах мы еще поговорим ниже.

  • Округлить до — до какого разряда округлить значение. Более подробно об этом расскажем далее.

  • Формат вывода(х > 0) — в каком виде будет выводится валюта. %s — символ валюты (например, $), %v — числовое значение. В этом поле значение устанавливается положительное.
    Каждая валюта индивидуальна и выводится тоже со своими хитростями. Так, например, знак доллара ставится перед значением и далее без отступов записывается число. То есть запись будет выглядеть следующим образом: %s%v => $10. А у рубля наоборот, сначала число, потом символ. При этом между ними устанавливается пробел: %v %s => 10 руб.

  • Формат вывода (x < 0) — отрицательное значение (допустим, при фрмате «-%s%v» значение будет равно «-$30»)

  • Знаков после запятой — количество десятичных знаков после запятой. Не влияет на вычисление, только на внешний вид.

  • Десятичный разделитель — символ, для визуального разделения целой части от дробной.

  • Разделитель тысяч — как будут разделятся тысячи при больших значениях.

  • Резервное значение — если сервис будет недоступен либо не сможет отдавать запрашиваемую валюту, то будет использоваться текущее аварийное значение. То есть 1 евро будет равен ...

  • Текущий курс — текущее отношение к 1 евро, которое отдает сервис для данной валюты. Значение берется из кеша вашего сайта.

Укажите валюту по умолчанию и частоту обновления кеша в основных настройкахСохраните все добавленные валюты. Далее перейдите на страницу Основные и во вкладке Основные настройки выберите валюту, которая будет показана на сайте по умолчанию, а также частоту обновления кеша курсов валют.

Опция «Режим округления»

Есть несколько режимов округления

  1. В большую сторону, когда число после округления становится больше. Допустим, есть число 34,72 у.е. Если округлить его до десятых, то получится 34,80 у.е. То есть последняя цифра заменится на 0, а к предпоследней прибавилась 1. Если округлить до целых, тогда две последних заменятся на 0 и к 4 прибавится единица. Число получится 35,00 у.е. В любом случае, при округлении в большую сторону число будет больше первоначального.

  2. В меньшую сторону. Возьмем то же число 34,72 у.е. Если округляем до десятых, то последняя цифра просто заменяется на 0 и получается 34,70 у.е. Если до целых — 34,00 у.е. То есть происходит обнуление необходимого количества последних цифр. При этом число всегда будет меньше, чем до округления.

  3. Классический. Всем известное математическое округление. Если после округляемой цифры стоят цифры от 5 до 9, тогда мы округляем в большую сторону. Если от 0 до 4, то в меньшую. Например, округляем наше число до десятых и получаем 34,70 у.е., так как после семерки стояла двойка. А если округлить до целых, то будет 35,00 у.е.

  4. Не используется. В этом режиме число никак не округляется. Просто скрываются последние цифры: 34,7 у.е., 34 у.е. и т.д.

Примеры работы валют и сервисов

Опция «Округлить до»

Ранее мы уже говорили об этой опции. Теперь посмотрим, каким же образом происходит округление.

Допустим, у нас есть длинное число 5486,3949405 у.е. Оно может быть таким «некрасивым», к примеру, после перевода из одной валюты в другую. Ставить такое число на сайте было бы неправильно. Кто станет платить такие копейки?

Для примера установим Режим округления классический. Тогда, если в элементе в опции Округлить до ввести:

  • «3», то наше число округлится и получится 5486,395 у.е. То есть останутся 3 знака после запятой.

  • «1», тогда число преобразуется следующим образом 5486,4 у.е.

  • «0», округление до целых чисел — 5486 у.е.

  • «-1», то есть округление цифр идет уже не после запятой, а перед ней. И получится 5490 у.е.

  • «-3», соответственно наше число станет 5500 у.е.

Число будет округляться только в том случае, если установлен Режим округления. Если же в опции стоит Не использовать, тогда числа будут просто обрезаться. То есть для первого примера число уже будет 5486,394 у.е.

Устанавливая определенное значение в опции, вы убираете «лишние копейки» и делаете цену более красивой. Зачем это нужно?

Есть такие валюты, как, например, белорусский рубль. 1 BYR в несколько тысяч раз больше 1 EUR. При переводе цены в эту денежную единицу число будет большим и неудобным. И скорее всего будут присутствовать какие то десятые, сотые доли рубля, которые в принципе не приняты в этой стране и не используются.

Для удобства многие магазины округляют стоимость товара, но всегда в большую сторону, чтобы не продавать в убыток себе. Поэтому для белорусского рубля удобно округлять до «-2» разряда и всегда в большую сторону.

Примеры перевода одной валюты в другую

Как мы уже говорили ранее, в настройках все валюты рассматриваются по отношению к 1 евро. Почему именно евро? Потому что это мировая валюта и она есть почти во всех банках мира. Несмотря на то, что сервисов у нас несколько, рекомендуем вам использовать один сервис для всех валют, так как в противном случае есть вероятность, что сумма заказа будет рассчитана неверно.

Сейчас попробуем разобраться, почему это так важно.

Возьмем Центральный Банк России (cbr) и Центральный Банк Европы (europecb). Допустим, в cbr даны следующие значения курса валют:

1 eur = 80 rub

1 eur = 20 uah

А в europecb немного другое соотношение:

1 eur = 70 rub

1 eur = 25 uah

*Эти курсы валют мы взяли с потолка, и они резко отличаются друг от друга только лишь для контраста в примерах ниже.

Задача. Нам необходимо перевести 1000 rub в uah. Перевод будет производится через евро, так как только эта валюта является общей.

Пример #1. Допустим мы используем элемент cbr для обоих валют сразу.

(Для первого примера будем записывать пропорцию, далее уже сразу будем считать.)

1000 rub — ? eur

80 rub     — 1 eur

1000 rub * 1 eur / 80 rub  = 12,5 eur

12,5 eur — ? uah

1 eur      — 20 uah

12,5 eur * 20 uah / 1 eur = 250 uah

При переводе через Центральный Банк России 1000 rub = 250 uah.

Пример #2. Теперь используем для обоих валют сервис europecb.

1000 rub / 70 rub * 1 eur = 14,29 eur

14,29 eur * 25 uah / 1 eur = 357 uah

При переводе через Центральный Банк Европы 1000 rub = 357 uah.

Пример #3. Возьмем те же значения. Но расчет из rub в eur произведем через cbr, а из eur в uah через europecb.

1000 rub — ? eur

80 rub     — 1 eur

1000 rub / 80 rub  * 1 eur = 12,5 eur

12,5 eur — ? uah

1 eur      — 25 uah

12,5 eur * 25 uah / 1 eur = 312 uah

Пример #4. Теперь наоборот, сначала посчитаем через europecb, затем через cbr.

1000 rub — ? eur

70 rub     — 1 eur

1000 rub / 70 rub * 1 eur = 14,29 eur

14,29 eur — ? uah

1 eur        — 20 uah

14,29 eur * 20 uah / 1 eur = 285,8 uah

Таким образом, когда вы устанавливаете для разных валют разные сервисы, цена может сильно изменятся и либо магазин, либо покупатель будут нести лишние убытки.

Примечания

  1. Первые два значения правильные, но в жизни будут отличаться не так сильно как в нашем примере (мы специально сделали такую очевидную разницу). Реальные отличия будут, конечно же, копеечными.

  2. Отличие на копейки в итоге может складываться в большие суммы, например, если речь идет о сотнях тысяч долларов на сайте недвижимости.

  3. Если использовать разные сервисы, то мы не можем сказать по какому именно сервису происходили вычисления. Все дальнейшие вычисления заранее ошибочны.

Тем не менее мы оставляем право использовать разные сервисы одновременно, если конвертация происходит в рамках одного сервиса (редкие вынужденные меры).

ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ОТНЕСИТЕСЬ К НАСТРОЙКАМ ВАЛЮТ, ТАК КАК ЭТО ВЛИЯЕТ НА РАБОТУ САЙТА В ЦЕЛОМ!

Корзина

У меня остались вопросы, где я могу их задать?

Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.