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

Мультивалютность товаров

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

Собственно что имеем: товары в базе 1с в разных валютах. Импорт в базу opencart идет с дополнительным полем (указывается какая именно у каждого товара валюта). Спасибо FreeDemon, разжевал подробно как сделать. Что нужно: при отображении товара на сайте необходимо создать условие проверки "валютности" товара и, с учетом этого, приводить все цены к выбранной на сайте валюте. Вариант с приведением к одной валюте при экспорте из 1с не подходит, т.к. из за разницы в курсах цены потом не сходятся с 1с (да и обновлять базу сайта часто нужно).Подскажите где копать? Думаю поставить условия в месте конвертации к выбранной валюте отображения, но не могу найти где это.

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


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

Есть вопрос:Как в метод format класса Currency передать переменную (например description) текущего товара (в момент вызова метода) через глобальную переменную (параметром не предлагать, очень много вызовов метода).

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


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

Почти разобрался:

в library/currency.php подправил метод форматирования:

public function format($number,$valut='', $format = TRUE ) {			$currency = '';			$value = '';			$usd ='';			$eur ='';			$symbol_left   = $this->currencies[$this->code]['symbol_left'];      		$symbol_right  = $this->currencies[$this->code]['symbol_right'];      		$decimal_place = $this->currencies[$this->code]['decimal_place'];									$currency = $this->code;//получение курсов валют$usd = $this->currencies['USD']['value'];$eur = $this->currencies['EUR']['value'];			if ($this->code == "USD") { 		if ($valut=="usd") {$value = $number;}		if ($valut=="grn") {$value = $number/$usd;}		if ($valut=="euro") {$value = $number*$eur/$usd;}	}	if ($this->code == "UAH") {		if ($valut=="usd") {$value = $number*$usd;}		if ($valut=="grn") {$value = $number;}		if ($valut=="euro") {$value = $number*$eur;}	}		if ($this->code == "EUR") {		if ($valut=="usd") {$value = $number*$usd/$eur;}		if ($valut=="grn") {$value = $number/$eur;}		if ($valut=="euro") {$value = $number;}	}	    	$string = '';    	if (($symbol_left) && ($format)) {      		$string .= $symbol_left;    	}        ...

Переменную передаю при вызове функции параметром. Может не совсем корректно, но пока не заметил.

Осталось разобраться с корзиной. Цены на товары отображаются корректно, а вот общая сумма еще нет.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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