Вопросы по ограничению валют

Автор brus powerfull, 13 ноября 2014, 13:27:31

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

brus powerfull

Добрый день,

Возникла следующая проблема. На главной странице сайта  для клиента есть возможность выбора валют Евро и Гривны. Соответственно,если клиент выбрал Евро,то все цены на товары указываются в Евро,на этапах заказа и Модулях оплаты товара -  тоже Евро.
Задача состоит в том,чтобы исключить возможность оплаты товара в Евро, чтобы была только Гривна. В настройках Модули>Оплата я снял галочки напротив валюты Евро, но это не помогло, т.к. тогда на последнем этапе 'Оплата ' пропадают модули Оплата чеком и Оплата банковским переводом. Использую prestashop 1.6.0.8.

Подскажите пожалуйста,как можно достичь того,чтобы если клиент выбрал на главной странице сайта валюту Евро, на последнем этапе 'Оплата' у него отображалась цена в Гривне, либо чтобы была валюта Гривна по-умолчанию? И почему пропадают модули оплаты,если снимается галочка с Евро в ограничении валют?

Виталий

#1
В ограничениях валют вы отмечаете модули / методы оплаты, которые разрешены для каждой валюты.
Если вы убираете выделение, значит показ этого модуля/методы не разрешен.

Установить валюту по умолчанию можно в
Панель управления > Локализация > Валюты
Cоздание интернет сайтов Webstudio UwK

brus powerfull

В Локализация>Валюта у меня 2 активные валюты: Гривна и Евро. Мне необходимо,чтобы они активными и оставались, но только чтобы на этапе формирования заказа пользователь мог бы выбрать оплату только Гривной и чтобы в листе заказа она тоже вбилась в Гривне. Такое можно как-то реализовать?

petros

Скорее всего таких модулей нет. В корзину отправляется товар по цене и валюте, которую клиент видит на сайте. Так работают все движки. Для чего тогда вообще показывать цены в евро, если все операции проходят в гривне? Для информации можно просто написать цену в евро в тексте, а на сайте оставить только одну валюту.

brus powerfull

Добрый день,

У меня все тот же вопрос по валюте на последнем этапе оформления заказа. Валюта по-умолчанию Евро, вторая валюта Гривна. Для оплаты есть два стандартных модуля: Банковский платеж и Оплата чеком. При выборе каждого из них на странице видна общая сумма заказа,сначала в Евро, т.к. это валюта по-умолчанию. Есть input с выбором валют. Если выбрать Гривну,то сумма на странице переконвертируется.
Задача стоит такая: чтобы при переходе на страницу оплаты модулем все оставалось,плюс добавить цену в Гривне в тексте. Т.е. чтобы небыло input-а с выбором валюты оплаты, а просто была строка 'Общая сумма вашего заказа в Евро -10. Общая сумма вашего заказа в Гривне -200'. Как можно это реализовать? Подскажите,может кто уже делал подобное?

Adik

Список валют можно отключить, удалить модуль Блок валют и input с выбором валют не будет показан.

brus powerfull

Это я сделаю. Как реализовать одновременный показ валюты и в Евро и в Гривне на странице модуля оплаты товара?  Как я понимаю,значение суммы содержится в cookie. Но как сделать отображение двух валют сразу,чтобы конвертировались они в соответствии с заданным в админ-панели курсом?

coder

Есть такая тема, как показать цены сразу в 2-х валютах гривна и доллар, только там было для страницы товара. Вот с нее можно взять код, работать должно и на страницах заказа. Ссылку не помню.

brus powerfull

До этого долго мучал поиск форума,но так и не нашел подобной темы. Спасибо за подсказку,буду продолжать поиск.


brus powerfull

Coder,благодарю. Начинаю просвещаться.

brus powerfull

У меня prestashop 1.6.0.8.
Попробовал методом,который предлагает Виктор Демидов - воспользоваться функцией конвертации convertPriceWithCurrency.
Проверил на странице товара. Добавил код для вывода валюты в Гривне - {convertPriceWithCurrency price=$product->getPrice(true, $smarty.const.NULL, 2) currency=$currencies.1 convert=true}, где '1' - id валюты Гривна.
На странице товара появилось отображение второй цены, но валюта поменялась на Гривна, а цена не конвертировалась,осталась таже,что и в Евро.
В шаблоне страницы товара валюта в Евро выводится следующим образом:
if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
   {if $priceDisplay >= 0 && $priceDisplay <= 2}
   <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>

Интересно,почему валюта изменяется,а сама цена нет?

mAgency

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

brus powerfull

#13
В классе Product.php есть две функции: convertPrice и convertPriceWithCurrency.
1.
public static function convertPrice($params, &$smarty)
{
return Tools::displayPrice($params['price'], Context::getContext()->currency);
}

2.
public static function convertPriceWithCurrency($params, &$smarty)
{
return Tools::displayPrice($params['price'], $params['currency'], false);
}


Я так понял,что мне необходимо использовать вторую функцию - convertPriceWithCurrency. У нее на входе $params,скорее всего это массив,из которого возвращается значение цены return Tools::displayPrice($params['price'], $params['currency'], false);. По-моему здесь возвращается и значение цены и валюта цены.
В магазине валюта по-умолчанию - это Евро,соответственно для нее Курс обмена==1. Для гривны Курс обмена отличен от 1.
Если вы говорите,что курс конвертации берется от валюты по-умолчанию,то получается что конвертация 1к1,поэтому валюта меняется, а цена нет.
Я делаю правильные выводы?

coder

Вернет цену в валюте, которая установлена в сессии пользователя. Т.е. конвертация цены без указания валюты.
/* Display price with right format and currency */
function convertPrice($params, &$smarty)

Вернет цену в валюте, которая передается в функцию. Т.е. конвертация цены с указанием валюты.
/* Convert price with currency */
function convertPriceWithCurrency($params, &$smarty)