Курс валют не должен быть статичным числом, забитым в код один раз. Нужен механизм, который берёт актуальный курс из внешнего источника и обновляет его по расписанию, а вся математика пересчёта — цена, скидки, комиссия за конвертацию и итог к оплате — должна сходиться до копейки с тем, что списывается на стороне платёжного шлюза. Ошибка округления или устаревший курс — это либо недополученная прибыль, либо жалоба клиента.
Отдельно прошу учесть письма покупателю, личный кабинет и раздел заказа в админке — валюта и сумма должны везде совпадать.
Что нужно реализовать:
— автовыбор валюты по геолокации плюс ручной переключатель;
— регулярное обновление курса без участия администратора;
— точный пересчёт цены, скидок и итога с учётом округления и комиссий;
— единообразное отображение валюты во всех разделах;
— проверка на тестовых платежах в разных валютах перед сдачей.