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

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

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

akella111

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

miha_s

#76
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 (смотрите в админке айди и подставляйте нужные)

Vlad_Stiff

#77
Внесу и я свои 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->id, true, true);
           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: -

kilota

Привет. Тема актуальна, но с престашоп 1.7.2.4. Цены в админке в евро а на сайте только в рублях. Ни один из перечисленных способов не подходит так как для версии 1.6. Как можно решить этот вопрос

liseko

Добрый день.
Вопрос с округлением у меня открыт. Установлена Версия Prestashop 1.6.1.17. В админке цены в долларах. К примеру 6,04. Во фронте выводит гривну: 160,06 грн. Как сделать в выводе 160 грн. без копеек? Если убираю к-во десятичных в настройках до 0, то получается цена в валюте 6 долларов. Во фронте изменений нет.

Adik

Вы вывод цены в шаблонах меняли, чтобы показывало в грн?
Тогда в шаблоне нужно добавть
{$price|string_format:"%d"}

liseko

Не менял. А  в каком файле добавлять?

Adik


liseko

Сделал. Без изменений. Может еще есть какие варианты? Или у всех все с ценами нормально?

mistral

Когда в админке указываешь валюту по умолчанию и метод округления, тогда таких проблем нет.

mAgency

Кеш очистите. При включенном кеширование изменений не увидите.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

liseko

Зашел с другого компа, что не был никогда на этом сайте. Без изменений. Не работает.
А округление в админке работает так: если 5,55587 то округляет до 5,56. Вот и все.

Adik

Prestashop FAQ: Как вручную почистить кеш
Кеширует сервер, удалять старые данные нужно на сервере.

liseko

#88
Куда именно вставлять {$price|string_format:"%d"}? Для нубов можно указать? В этих файлах нет такой переменной. Есть productPrice и т.п....

PrestaMan

product.tpl
находите
{assign var='priceDisplayPrecision' value=2}
меняете
{assign var='priceDisplayPrecision' value=0}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!