Jump to content
Sign in to follow this  
freelancer

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

Recommended Posts

на примере рубля
для этого в админке должно быть две валюты Доллар и Рубль
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");
     }
Edited by freelancer
  • +1 1

Share this post


Link to post
Share on other sites

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

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

на:

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

 

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

  • +1 1

Share this post


Link to post
Share on other sites

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

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

Edited by freelancer

Share this post


Link to post
Share on other sites

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");

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

Edited by AlexBr

Share this post


Link to post
Share on other sites

какое актуальное решение для версии 2.3.0.2 ?

Share this post


Link to post
Share on other sites

Подскажите, что я делаю не так? Версия 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

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

Share this post


Link to post
Share on other sites
40 минут назад, Rezoner сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

В общем я решил вопрос настроив только админку. В код не лез, вроде все работает.

Share this post


Link to post
Share on other sites

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

        $code = 'RUB';

перед

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

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

Share this post


Link to post
Share on other sites
В 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 только тут достаточно?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.