Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

описание как в админке указывать цену в $, а отображать пользователю в нац валюте


freelancer
 Поделиться

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

на примере рубля
для этого в админке должно быть две валюты Доллар и Рубль
1. у доллара коэффициент 1
у рубля задаете сами (коэффициент обновляется автоматически каждый раз при входе в админку)
z7qvqAs.pngUNj0TzY.png
 
2. в настройках в админке нужно указать основную валюту Доллар
lH4yjMM.png
 
3.1. для одновалютных магазинов
в файле system/library/currency.php после кода
 

if (isset($this->request->get['currency']) && (array_key_exists($this->request->get['currency'], $this->currencies))) {
$this->set($this->request->get['currency']);
     } elseif ((isset($this->session->data['currency'])) && (array_key_exists($this->session->data['currency'], $this->currencies))) {
       $this->set($this->session->data['currency']);
     } elseif ((isset($this->request->cookie['currency'])) && (array_key_exists($this->request->cookie['currency'], $this->currencies))) {
       $this->set($this->request->cookie['currency']);
     } else {
       $this->set($this->config->get('config_currency'));
     }

добавить

$this->set("RUB");

3.2 для многовалютных магазинов

в файле system/library/currency.php
блок

     } else {
       $this->set($this->config->get('config_currency'));
     }

заменить на

     } else {
       $this->set("RUB");
     }
Изменено пользователем freelancer
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Можно и вот так поменять с:

public function format($number, $currency = '', $value = '', $format = true) {

на:

public function format($number, $currency = 'RUB', $value = '', $format = true) {
Ссылка на комментарий
Поделиться на других сайтах

еще как вариант:

Если не мультимагазин, то просто в index.php (в корне сайта) после строки:
$registry->set('currency', new Currency($registry));

Добавить строку:

$registry->get('currency')->set('RUB');

Это в магазине принудительно выставит валюту.

 

При таком способе корректно работает модуль автообновление цены при выборе опций

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

при всём уважении, этот топик в FAQ, нет смысла объяснять каждому, который только установил opencart  почему надо делать так или почему его метод плохой (хотя да, я сам виноват)

оффтоп потер, остались только сообщения по теме

Изменено пользователем freelancer
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

3.1. для одновалютных магазинов в файле system/library/currency.php после кода

Дилетантский вопрос: 

В итоге код должен выглядеть так?

if (isset($this->request->get['currency']) && (array_key_exists($this->request->get['currency'], $this->currencies))) {
			$this->set($this->request->get['currency']);
		} elseif ((isset($this->session->data['currency'])) && (array_key_exists($this->session->data['currency'], $this->currencies))) {
			$this->set($this->session->data['currency']);
		} elseif ((isset($this->request->cookie['currency'])) && (array_key_exists($this->request->cookie['currency'], $this->currencies))) {
			$this->set($this->request->cookie['currency']);
		} else {
			$this->set($this->config->get('config_currency'));
		}
			$this->set("UAH");

Со скобками, по аналогии, что-то не то выходит. просто.

Изменено пользователем AlexBr
Ссылка на комментарий
Поделиться на других сайтах


  • 6 месяцев спустя...
  • 1 год спустя...

Подскажите, что я делаю не так? Версия ocStore 2.3.0.2.3

Screenshot_25.thumb.png.c13c95014b930d00cd81efc6b465c4ba.png
 

Спойлер

 

Screenshot_27.png.95de27502ea5c370c81c9089e2e9c440.png

Screenshot_28.png.e6ab774dd6dc1b55a6a2079dcd6088f5.png

Screenshot_29.png.38b8c3591d374cb48bf468722739447b.png

 

 

В файле /public_html/catalog/controller/startup/startup.php

Перед строкой:

$this->registry->set('currency', new Cart\Currency($this->registry));
Добавить:

$this->session->data['currency'] = 'UAH';

 

И все, сайт вешается, белый экран и ошибка HTTP ERROR 500

Подскажите, как решить проблему?

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


40 минут назад, Rezoner сказал:

И все, сайт вешается, белый экран и ошибка HTTP ERROR 500

Подскажите, как решить проблему?

Для начала подскажите текст ошибки из лога php.

Т.к. на странице ошибка 500, то в логе php должны быть ошибки.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

для 2.3 я бы добавил 

        $code = 'RUB';

перед

        if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
        }

в файле catalog/controller/startup/startup.php

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

  • 1 год спустя...
В 15.02.2019 в 07:42, freelancer сказал:

для 2.3 я бы добавил 

        $code = 'RUB';

перед

        if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
        }

в файле catalog/controller/startup/startup.php

 

Версия opencart 2.3, добавил только данную строку ничего более не делал - вроде работает... (в админке доллар, на сайте рубли обе валюты в админке включены, основной назначен доллар). Надо ли еще гдето указывать принудительно или для 2.3 только тут достаточно?

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


  • 1 месяц спустя...
  • 1 год спустя...

А как сделать, чтобы цены в админке были в долларах, а на сайт, при первом заходе пользователя, ставились рубли, а потом при переключении, если ему надо, он переключал валюты?

Изменено пользователем nash
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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