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

06 Май 2016, 12:49:52
Ответ #75
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В классе FrontController замени
$currency = Tools::setCurrency($this->context->cookie);на
$currency = Tools::setCurrency(id валюты, которую нужно);или добавь перед этой строчкой
$this->context->cookie->id_currency = id валюты, которую нужно;
coder, не хватает слов для выражения благодарности!!!!!Спасибо огроменное!!!
11 Август 2016, 00:01:53
Ответ #76
  • Ученик
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Presta 1.6.1.6 для автоматического переключения валюты в зависимости от выбранного языка
Во FrontController.php перед
$currency = Tools::setCurrency($this->context->cookie);пишем
if ($this->context->cookie->id_lang == 1){$this->context->cookie->id_currency = 2;}else{$this->context->cookie->id_currency = 4;}получаем при выбранном языке ИД=1 валюту ИД=2 иначе валюту ИД=4 (смотрите в админке айди и подставляйте нужные)
11 Август 2016, 00:26:50
Ответ #77
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Внесу и я свои 5 копеек.

Когда то просто перезаписал метод setCurrency класса Tools - задание валюты по умолчанию.
\override\classes\Tools.php

<?php
class Tools extends ToolsCore
{
    public static function 
setCurrency($cookie)
    {
        if (
Tools::isSubmit('SubmitCurrency') && ($id_currency Tools::getValue('id_currency'))) {
            
/** @var Currency $currency */
            
$currency Currency::getCurrencyInstance((int)$id_currency);
            if (
is_object($currency) && $currency->id && !$currency->deleted && $currency->isAssociatedToShop()) {
                
$cookie->id_currency = (int)$currency->id;
            }
        }

        
$currency null;
        if ((int)
$cookie->id_currency) {
            
$currency Currency::getCurrencyInstance((int)$cookie->id_currency);
        }
        if (!
Validate::isLoadedObject($currency) || (bool)$currency->deleted || !(bool)$currency->active) {

//Vlad_Stiff edit 1 next line -> set default currency to USD, to then be converted into UAH.
            
$currency Currency::getCurrencyInstance(1)); // default line -> $currency = Currency::getCurrencyInstance(Configuration::get('PS_CURRENCY_DEFAULT'));

        
}

        
$cookie->id_currency = (int)$currency->id;
        if (
$currency->isAssociatedToShop()) {
            return 
$currency;
        } else {
            
// get currency from context
            
$currency Shop::getEntityIds('currency'Context::getContext()->shop->idtruetrue);
            if (isset(
$currency[0]) && $currency[0]['id_currency']) {
                
$cookie->id_currency $currency[0]['id_currency'];
                return 
Currency::getCurrencyInstance((int)$cookie->id_currency);
            }
        }

        return 
$currency;
    }
}

Правка метода Tools после //Vlad_Stiff 

з.ы. вариант для Prestashop 1.6
з.ы.ы да и править файлы без override плохая привычка, с очередным обновлением получите сюрприз в виде "а что случилось, ой файл перезаписался, ой а что и где я правил то"...
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
12 Январь 2018, 14:46:37
Ответ #78
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Привет. Тема актуальна, но с престашоп 1.7.2.4. Цены в админке в евро а на сайте только в рублях. Ни один из перечисленных способов не подходит так как для версии 1.6. Как можно решить этот вопрос
09 Июнь 2018, 18:19:31
Ответ #79
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.
Вопрос с округлением у меня открыт. Установлена Версия Prestashop 1.6.1.17. В админке цены в долларах. К примеру 6,04. Во фронте выводит гривну: 160,06 грн. Как сделать в выводе 160 грн. без копеек? Если убираю к-во десятичных в настройках до 0, то получается цена в валюте 6 долларов. Во фронте изменений нет.
09 Июнь 2018, 20:28:18
Ответ #80
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Вы вывод цены в шаблонах меняли, чтобы показывало в грн?
Тогда в шаблоне нужно добавть
{$price|string_format:"%d"}
09 Июнь 2018, 21:32:30
Ответ #81
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не менял. А  в каком файле добавлять?
10 Июнь 2018, 12:26:10
Ответ #82
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
10 Июнь 2018, 15:19:36
Ответ #83
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сделал. Без изменений. Может еще есть какие варианты? Или у всех все с ценами нормально?
10 Июнь 2018, 17:02:00
Ответ #84
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Когда в админке указываешь валюту по умолчанию и метод округления, тогда таких проблем нет.
10 Июнь 2018, 18:50:31
Ответ #85
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Кеш очистите. При включенном кеширование изменений не увидите.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
10 Июнь 2018, 23:42:34
Ответ #86
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Зашел с другого компа, что не был никогда на этом сайте. Без изменений. Не работает.
А округление в админке работает так: если 5,55587 то округляет до 5,56. Вот и все.
11 Июнь 2018, 09:35:47
Ответ #87
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Prestashop FAQ: Как вручную почистить кеш
Кеширует сервер, удалять старые данные нужно на сервере.
11 Июнь 2018, 20:54:55
Ответ #88
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Куда именно вставлять {$price|string_format:"%d"}? Для нубов можно указать? В этих файлах нет такой переменной. Есть productPrice и т.п....
11 Июнь 2018, 22:00:01
Ответ #89
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
product.tpl
находите
{assign var='priceDisplayPrecision' value=2}меняете
{assign var='priceDisplayPrecision' value=0}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!