Задачи
Реализовать мультивалютность, конвертацию и обновление курса валют, определение страны посетителя.
Решение
Сначала мы разработали справочник валют в административной панели, в который добавили валюты стран, с которыми работает МейТан. Ежедневно, несколько раз, в день мы обновляем курсы всех валют, забирая информацию от Центрального Банка.
Мы разработали коэффициенты разницы для конвертации валют, нивелирования возможного колебания курса и издержек на конвертацию. Для каждой валюты этот процент свой, мы зафиксировали каждый в справочнике валют.
Валюты
Мы создали справочник валют и наполнили его актуальным данными. Вносили не все валюты мира, а только нужные МейТану. Затем до запуска проекта МейТан отключил те, которые ему не понадобились. Любую валюту для расчета в магазине можно быстро отключить и включить через административную панель.
Оплата в валюте
Реализовали конвертацию рубля в выбранные валюты на странице товара, списка товаров, в корзине и при оформлении заказа. Если пользователь платит в рублях, он направляется на российскую платежную систему, если он платит в другой валюте, то направляется на PayPal.
Геолокация
Мы создали справочник стран и реализовали управление им через административную панель. Разработали функциональность определения страны для пользователя, когда он первый раз заходит на сайт. Если мы видим, что пользователь заходит из России, то автоматически для него ставится валюта рубли. Если мы видим, что пользователь из заданного списка стран, то ему устанавливается национальная валюта. А если пользователь не из заданного списка стран, то для него все отображается в дефолтной валюте (на момент запуска это были доллары США, но можно перенастраивать на другую валюту). Если пользователь самостоятельно меняет валюту, то сайт запоминает это и закрепляет за ним выбранную валюту.