Несколько валют в карточке товара Opencart
Несколько валют в карточке товара Opencart
Создание, разработка, изготовление сайтов | WEB-STYDIA.COM

Приветствую на страницах нашего сайта.

Очень часто клиенты которые используют на своем сайте несколько валют, задаются вопросом о том как отобразить цену товара сразу в нескольких валютах в карточке товара.

По умолчанию opencart дает возможность смены валюты только в шапке по всему сайту, но очень многие пользователи не догадываются выбрать нужную валюту и переключить сайт на нее, по этому сегодня мы поговорим как же все таки визуально отобразить цены в нескольких валютах сразу возле основной цены.

Пример того что в итоге получится вы можете посмотреть на фото ниже:

Как я уже писал ранее opencart по умолчанию не предусматривает отображение разных валют в карточке товара , но функция convert присутствует в классе currency:

Данная функция используется движком когда вы меняете валюту из шапки магазина, конвертация из гривни к примеру в доллар происходит следующим образом:

Ну что же с основными принципами разобрались теперь давайте приступим к практике и выведем разные валюты возле цены.

В первую очередь хочу отметить что все действия мы будем производить на дефолтном шаблоне , и по умолчанию у нас стоит валюта Гривна, а дополнительные валюты это рубль и доллар, вот их мы и будем показывать.

1. Выводим разные валюты в карточку товара:

Изменения будем вносить в два файла:

и так открываем файл product.tpl и в нем ищем код который отвечает за отображение цены а именно:

И после него добавляем код:

Если вам нужно выводить только что то одно то просто указываем нужную стоку.

Таким образом мы добавили вывод цены для стандартной цены в которой нет акций.

Теперь нам нужно еще добавить вывод для цен в которых указанна аукционная цена, в том же файле находим код:

И после него добавляем:

Все с файлом product.tpl мы закончили, тем самым мы добавили вывод цены в двух дополнительных валютах.

Теперь нам нужно еще откорректировать файл product.php.

и так открываем его и ищем код:

который отвечает за нашу цену по умолчанию и после него добавляем:

Таким образом мы указали что нам нужно отобразить дополнительную цену, но это только опять же касается только цены которая без акции, а чтобы дополнительные валюты показывались еще и в товарах с акцией находим код:

И после него добавляем:

В данных строчках кода функция round(...) позволяет округлить цены до значения 2, вы же можете указать 0 если не хотите после запятой показывать копейки.

Вот в принципе и все , теперь у нас в карточке товара будет отображаться стоимость товара как в цене по умолчанию ( гривне) так и в дополнительных валютах доллар и рубль пример на фото выше.

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

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



2. Показываем разные валюты цены в модулях( Новинки)

Изменения будем вносить в два файла:

Первым делом открываем файл latest.tpl и в нем укажем место где мы будем выводить нашу цену, находим первый код:

и после него добавляем следующее:

Таким образом вы вывели отображение дополнительной цены валюты в нужном нам месте модуля, для цены которая не имеет акции, теперь находим кусок кода который отвечает за аукционную цену:

И после него добавим нужные нам валюты:

Все теперь можно приступить и  к самому контролеру, то есть открываем файл latest.php, и в нем ищем вывод цены, после которого и нам нужно добавить кусок нужного нам кода:

И так находим:

И после добавляем код:

Теперь нам нужно сделать все то же самое и для аукционной цены, находим код:

И после него добавляем:

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

ВАЖНО: в некоторых других модулях используйте $product_info вместо $result все остальное по аналогии.

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

За пример мы берем именно страницу категорий товара, остальное делаем так же.

И так давайте сделаем отображение валюты в категории товаров.



3. Показываем разные валюты цены в категории товаров

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

Изменения будем вносить в два файла а именно в:

Ну что же приступим.

Открываем файл category.tpl и ищем вывод цены товара без акции:

после данного кода добавляем:

Для отображения валюты к товарам с акцией ищем код:

И после него добавляем:

Все с файлом category.tpl закончили, теперь приступим к контролеру, и так открываем файл category.php и ищем код:

и после него добавляем:

Там же немного ниже после кода:

Добавляем:

Теперь все тоже самое нам нужно добавить и для товара с акционной ценой, ищем чуть ниже код:

и после него добавляем:

И немного ниже после кода:

Добавляем следующее:

Далее опускаемся ниже и ищем код:

и сразу после него добавляем:

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

Общим пробуйте , тестируйте и все у вас получится, а если что не получается спрашивайте в комментариях.

 

Вас также может заинтересовать

4 комментария

  •   15.11.2017 в 16:34

    Я извиняюсь, а как это будет в корзине отображаться?

    Ответить
    • Василий
        15.11.2017 в 16:40

      В корзине будет отображена та валюта, которая выбрана в самом магазине, данный пример только выводит для отображения цены в других валютах!

      Ответить
      •   15.11.2017 в 16:46

        А есть какое-либо решение что -бы в корзине отображать 2 цены. Будь то 2 валюты, или «акционная» ценна и оригинальная.

        Ответить
        • Василий
            15.11.2017 в 17:16

          Только делать отдельно. Там больше правок нужно делать , так как проверок больше чем в отображении самой карточки! Хотя если поискать в сети то возможно и какой то готовый модуль найти можно, мне такой кажись не встречался!

          Ответить

Оставить комментарий

Пожалуйста, введите Ваше имя. Пожалуйста, введите действительный адрес электронной почты. Пожалуйста, введите сообщение.