Перейти к содержанию
russum

Валюты - неправильная конвертация в модуле доставки UPS [решено]

Рекомендуемые сообщения

Версия магазина: ocStore v0.1.5 (OpenCart 1.4.9.2)

Изменений не вносились.

Хостинг на моем впс который на моем же серваке.

Проблема:

На всем сайте (включая при чекауте) валюта конвертируется правильно везде, но при чекауте если стоит не долларвая валюта а любая другая (евро, рубли) стоимость доставки через модуль UPS (другие пока не пробовал) считается не правильно (хотя цена за продукт конвертируется правильно) (извените за каламбур).

Вот пара изображений для примера:

ИзображениеВ долларовой валюте все верно - и цена продукта, и цена доставки.

ИзображениеА вот в рублях - цена продукта конвертируется верно, а цена доставки - получается нереальных - 140 тысяч рублей.

Я только недавно начал работать с OpenCart так что мог чтото не то сделать, но что - не пойму.

Спасибо!

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы именно этими способами доставки будете пользоваться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не спорю что выглядит дорого, но UPS - он такой. Я еще жду активация USPS аккаунта (в котором доставка будет раза в три-четыре дешевле) и не хотелось бы иметь такой же проблемы там, т.к. от UPS можно отказатся, а от USPS как от самого дешевого способа - нет. А так - почти на все будут купоны бесплатной доставки но просто хотелось бы воспользоватся интересным встроенным функционалом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Активировал аккаунт в USPS (другой модуль доставки) - тот же баг - 25$ показывает как 24000 рублей. Это только у меня такая проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

разобрался с проблемой.

Если комуто интересно, в файле catalog/model/shipping/ups.php:

'cost'         => $this->currency->convert($cost, 'USD', $this->currency->getCode()),
заменил на

'cost'         => $cost,
и

'text'         => $this->currency->format($this->tax->calculate($this->currency->convert($cost, 'USD', $this->currency->getCode()), $this->config->get('ups_tax_class_id'), $this->config->get('config_tax')))
заменил на

'text'         => $this->currency->format($this->tax->calculate([b]$cost[/b], $this->config->get('ups_tax_class_id'), $this->config->get('config_tax')))

Т.е. просто убрал насильную конвертацию переменной $cost которая уже конвертируется один раз до этого. Возможно в старых версиях каждый модуль был отвественен за конвертацию валюты а теперь за это отвественен сам opencart а модули остались не изменными. Так же по аналогии нужно убрать лишнюю конвертацию в файле usps.php.

Что интересно - данный код лишней конвертации встречается только в этих двух файлах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

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