Prestashop 1.6.1.5 — отображение цены в заданной валюте

Prestashop - цена в двух валютах

Привет, друзья!

Сегодня во время работы над одним заказом столкнулся с проблемой отображения стоимости товара в заданной валюте — но в привязке к вечнозеленому баксу. Учитывая, что в качестве рабочего движка магазина используется Prestashop 1.6.1.5 — задача носит тривиальный характер — активируем две валюты, одну из них (в моем случае доллар) делаем основной, и радуемся.

Однако — если задача заключается в том, что бы не отображать блок валют, а валюта, в которой товар показывается должна быть не основная (доллар), а вторичная (гривна) — задача становится значительно интереснее.

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

Но решение оказалось весьма простым. Итак, нужно лишь:
1. В разделе валют узнать id нужной вам валюты
2. Активировать доллар в качестве основной валюты (ВАЖНО: цены на все товары станут в долларах)
3. Найти файл: Находим файл: корень_сайта/classes/controller/FrontController.php и перед строкой

$currency = Tools::setCurrency($this->context->cookie); (обычно это 288 — 289 строка)

вставить код:

/*Принудительная валюта у посетителей — гривна */
$this->context->cookie->id_currency = 1; (вместо единицы вставляете id своей валюты)

Бинго!
Теперь в админке вы задаете цену в долларах, а на сайте пользователь видит цену в гривнах. Как корректировать курс валют, думаю, разберетесь 😉