Автор Тема: Привязка цен в магазине к доллару  (Прочитано 17312 раз)

12 Январь 2015, 01:23:58
Ответ #30
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, есть проблема с валютой, хотелось бы что бы на сайте при входе отображало цены в грн, а не в долларах, но все же была бы возможность и посмотреть цены в долларах

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

1.  Валюта по умолчанию - доллар,
2. Цены в админке в долларах

Заранее спасибо за помощь.
12 Январь 2015, 02:40:23
Ответ #31
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Помог метод который Вы описали + стандартный модуль валют. Это для престы 1,4.
12 Январь 2015, 10:49:37
Ответ #32
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Здравствуйте, есть проблема с валютой, хотелось бы что бы на сайте при входе отображало цены в грн, а не в долларах, но все же была бы возможность и посмотреть цены в долларах

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

1.  Валюта по умолчанию - доллар,
2. Цены в админке в долларах

Заранее спасибо за помощь.
Установите модуль Блок валют, тогда посетители сайта смогут сами переключать валюты.
12 Январь 2015, 16:48:25
Ответ #33
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дело в том что модуль есть, просто при внесении изменении указанных выше он просто не переключал валюту.
Так или иначе решение я нашел, спасибо вам за оперативные ответы.
Может кому интересно, вот решение которое мне подошло
В файле Tools.php папки classes поправил строку:
$currency = Currency::getCurrencyInstance(Configuration::get('PS_CURRENCY_DEFAULT'));на:
$currency = Currency::getCurrencyInstance((int)('1'));где ('1') номер нужной валюты для фронта из админки(можно посмотреть в админке в табличке валют)
18 Январь 2015, 14:24:52
Ответ #34
  • Фрилансер
  • *
  • Сообщений: 139
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем спасибо за решения!
kensi, согласен, после изменения - не работает переключалка. Сделал как ты написал - всё равно не работает. Может где-то ёще подшаманить? :)
В итоге, что у меня: с конвертацией - всё ок, не работает переключалка, в админке по умолчанию ид=4, преста 1.6.0.9.
Отображаю во фронте в рублях (ид=1), код:
Цитата: classe/controller/FrontController.php
$this->context->cookie->id_currency = 1;
$currency = Tools::setCurrency($this->context->cookie);
Цитата: classe/Tools.php
//   $currency = Currency::getCurrencyInstance(Configuration::get('PS_CURRENCY_DEFAULT'));
$currency = Currency::getCurrencyInstance((int)('1'));
27 Январь 2015, 03:23:10
Ответ #35
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
из другой темы но у меня завелось
Была идея установить баксы или евро как основная валюта, но (!!!) тогда все цены надо менять вручную. То есть был товар 100 руб (грн) - после смены основной валюты стал товар 100 уе (евро).
Это нужно сначала адаптировать все цены под уе - переконвертить через запрос к базе, а потом уже пробовать сменить валюту и просто редактировать курс валют в админке 1:35 или 1:50 рубли или 1:17 грн.
Но если основная валюта в баксах, а доступные для выбора валюты - только рубли или гривны - будет ли преста отображать стоимость в руб или грн - это вопрос! Это надо тестить.
Кто попробует - отпишитесь о результатах.
работает.
Даже если отключить основную валюту - в админке она останется - !!! сначала установить ее в качестве основной а потом только отключить.
Правда тестил только при двух валютах (грн и евро) с отключением показа евро. В админке цены в евро - на сайте цены в грн.
После включения показа валюта из куки - грн, как впрочем и требуется )
27 Январь 2015, 03:47:57
Ответ #36
  • Фрилансер
  • *
  • Сообщений: 139
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
konstw, спасибо за ответ! Хм... тупым включением/выключением... не считая привязку валют... :) Удивительно. :) Надо потестить. :)
27 Январь 2015, 15:14:57
Ответ #37
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
konstw, спасибо за ответ! Хм... тупым включением/выключением... не считая привязку валют... :) Удивительно. :) Надо потестить. :)
кстати заметка.
кроме update ps_product возмжно потребуется изменить цены и в ps_product_shop... а то даж при выкл кнопке мультимагазина если там есть что-то, то берется оттуда ))

алгоритм.
если цены в грн - делаем UPDATE `ps_product` SET `price` = `price`*1.3 (вместо 1,3 ваш коэф, спс RoooM) (учтите мой нюанс с ps_product_shop )
в локализация\локализация - выставляем валюту дефолта евро или бакс
в локализация\валюты берем евро или доллар - редактировать - включить - нет     сохраняем - если надо оставить выбор - не выключаем.
имеем:
в админке все в евро или долл как кому
в фронте все в грн или рубль как кому.
если не выключить в локализация\валюты показ основной то если вкл модуль Блок Валют будет выбор валют и работает он строго по куки .
Проверку автолокализации и валюты для страны посетителя не проверял - но чую что будет работать если включены Локализация\Страны и там указаны валюты стран, ибо это логично

как и логично то, что не стал править код пхп и подтасовку локалей а после 3 часов читания как это сделать решил сначала проверить то, что было бы логично ))
11 Март 2015, 11:04:05
Ответ #38
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В классе FrontController замени
$currency = Tools::setCurrency($this->context->cookie);на
$currency = Tools::setCurrency(id валюты, которую нужно);или добавь перед этой строчкой
$this->context->cookie->id_currency = id валюты, которую нужно;
в каком файле править данный класс?
11 Март 2015, 11:27:31
Ответ #39
  • Ветеран
  • *****
  • Сообщений: 1807
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
в классе FrontController
/classes/controller/FrontController.php
11 Март 2015, 14:37:55
Ответ #40
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
я что то совсем не понял, зачем таким образом привязывать долар?,если к примеру сделать, установить валюту по умолчанию долар,выставить цену примерно 10 баксов,то сайт сам автоматически сконвертирует валюту и переведет её в гривны, на 240грн если покупатиль  выберит гривны, только что проверел конектирует с точностью по курсе нац банка,если нужна чуть больша конвертацыя как в нац банке, тогда пдв выставить процент например 5% все получаешь свою цену,и главное что все работает на 4 валютах долар,евро,грн,руб все просто и без гемороя
11 Март 2015, 18:25:52
Ответ #41
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Людям не нужно показывать блок с 4 валютами. Они хотят чтобы на сайте были только гривны, а в админке доллары. Вот и приходиться так переделывать.
28 Июль 2015, 16:44:15
Ответ #42
  • Фрилансер
  • *
  • Сообщений: 105
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
После обновления престы до версии 1.6.1 данный способ работает не совсем корректно.
На мобильных устройствах в фронт-офисе цены отображаются в долларах, хотя в версии на десктопах все ок.

Кто знает, как можно починить?
28 Июль 2015, 16:50:30
Ответ #43
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop 1.6.1 нет мобильной версии. Швблоны темы общие. Тебе нужно переделать свои мобильные шаблоны.
28 Июль 2015, 16:55:23
Ответ #44
  • Фрилансер
  • *
  • Сообщений: 105
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я имел ввиду не мобильный шаблон, а стандартный шаблон на мобильно устройстве.

Вот так выглядит на смартфоне:



А вот так выглядит тот же товар на ноутбуке: