Привязка цен в магазине к доллару

Автор rangerio, 04 марта 2014, 15:28:44

« назад - далее »

rangerio

Всем привет. В связи с последними известными событиями в Украине местная валюта скачет просто ужасно, а поскольку в магазине валюта по-умолчанию - гривня, это создает проблемы с изменением (повышением) цен.

В связи с этим возник такой вопрос - можно ли как-то указывать цены магазина в долларах (по сути, привязать все цены к этой валюте, поскольку товар закупается именно за доллары), но при этом каждому пользователю автоматически показывать цену в гривнях?

Adik

В админке можно указать цены в любой валюте.
Показ цен на сайте  в выбранной валюте в файле tools.js
function setCurrency(id_currency)
{
    $.ajax({
        type: 'POST',
        headers: { "cache-control": "no-cache" },
        url: baseDir + 'index.php' + '?rand=' + new Date().getTime(),
        data: 'controller=change-currency&id_currency='+ parseInt(id_currency),
        success: function(msg)
        {
            location.reload(true);
        }
    });
}

При загрузке страницы можно установить любую валюту.
setCurrency(ид гривны)

coder

В классе FrontController замени
$currency = Tools::setCurrency($this->context->cookie);
на
$currency = Tools::setCurrency(id валюты, которую нужно);
или добавь перед этой строчкой
$this->context->cookie->id_currency = id валюты, которую нужно;

rangerio

Всем спасибо за ответы! Буду пробовать

rangerio

Ни один способ не помог.  :-\

Кеширование отключено. ПРинудительная перекомпиляция шаблона включена.

Версия престы 1.4

Dacent

У меня на версии 1.6 все получилось.
В бэк-офисе все в долларах, в фронт-офисе в гривнах.

rangerio

Цитата: Dacent от 09 апреля 2014, 12:07:33
У меня на версии 1.6 все получилось.
В бэк-офисе все в долларах, в фронт-офисе в гривнах.
Каким именно способом получилось?

Dacent

#7
Получилось способом, который описал coder

Добавил строку
$this->context->cookie->id_currency = 1;
1 - в моем случае id гривны

rangerio

Цитата: coder от 05 марта 2014, 12:18:40
В классе FrontController замени
$currency = Tools::setCurrency($this->context->cookie);
на
$currency = Tools::setCurrency(id валюты, которую нужно);
или добавь перед этой строчкой
$this->context->cookie->id_currency = id валюты, которую нужно;
А есть вариант для престы 1.4?
Эти способы не работают на 1.4, да и код там немного отличается

tigran


rangerio

Цитата: tigran от 16 апреля 2014, 11:08:46
В Prestashop 1.5
$this->context->cookie
В Prestashop 1.4
global $cookie
Спасибо. Вот бы еще узнать, как правильно прописать ид валюты для вывода :)

bodich

Цитата: coder от 05 марта 2014, 12:18:40
В классе FrontController замени
$currency = Tools::setCurrency($this->context->cookie);
на
$currency = Tools::setCurrency(id валюты, которую нужно);
или добавь перед этой строчкой
$this->context->cookie->id_currency = id валюты, которую нужно;

Спасибо огромное, $this->context->cookie->id_currency = 1; заработало.

А так не работает
$currency = Tools::setCurrency(1);
В метод передается $this->context->cookie, а код валюты нужно изменить в $this->context->cookie->id_currency

Только начал делать магазин, решил сразу исключить проблемы со скачками курса. Есть же добрые люди:)
Осталось решить такой вопрос: округлять цены, которые допустим, больше 20 грн, на выводе до целых без копеек.

coder

Панельуправления > Общее > Настройки
Метод округления: Вы можете выбрать как округлять цену: всегда в меньшую сторону или же как обычно (вверх если >.5, или вниз если <.5).

bodich

Цитата: coder от 09 октября 2014, 14:58:04
Панельуправления > Общее > Настройки
Метод округления: Вы можете выбрать как округлять цену: всегда в меньшую сторону или же как обычно (вверх если >.5, или вниз если <.5).

Спасибо большое, уже разобрался.

webzx

У меня преста 1.4.4
По умолчанию доллар, но цены в магазине нужны в грн по курсу без дополнительных кнопок переключения. Пробовал все варианты описанные выше, но цены ни как не хотят отображаться в грн.

В классе FrontController у меня так:

global $currency;
      
      $currency = Tools::setCurrency();


Подскажите как сделать правку что бы заработало?