OpenCart — валюта по умолчанию: установка и настройка курса

Автор: | 03.01.2016

opencart-valyuta-po-umolchaniyuПриветствую вас, читатели cccp-blog.com! :-)

Сегодня мы продолжаем наше знакомство с бесплатными CMS для создания Интернет-магазина и, в частности, с OpenCart.

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

Мы продолжаем двигаться по намеченному вектору, и в данной небольшой статье нами будет установлена в OpenCart валюта по умолчанию. Небольшим данный очерк будет потому, что данное действие не является чем-то выдающимся и сложным, чтобы писать о нём труд в формате «Война и мир» :-)

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

На что влияет в OpenСart валюта по умолчанию?

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

Во-первых, думаю, все владельцы магазинов на базе OpenCart знакомы с ситуацией, когда в магазин добавляется новая валюта, а покупатели при переходе в магазин видят цены абсолютно в другой. Без внесения каких-либо корректив в OpenCart валютой по умолчанию является доллар США. Данная ситуация возникает потому, что при добавлении новой валюты она не становится доступной по умолчанию.

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

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

Продолжим развивать ложившуюся ситуацию. Допустим, вы добавили в OpenCart новую валюту, к примеру, российский рубль, и цены на товары вы хотите указывать в данных единицах. Кстати, о том, как в OpenCart добавлять рубли написано здесь. Ничего не подозревая, вы просматриваете витрину магазина, а там… мало того, что цена в долларах, так ещё и числовое значение такое, как вы указали в рублях :-)

Мало кого порадует ситуация, когда в вашем магазине футболка будет стоить не предполагаемые 1000 российских рублей, а 1000 долларов США :-)

Поэтому ошарашенным покупателям ничего не останется, как покинуть ваш Интернет-магазин и поискать товар где-то подешевле.

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

Если по умолчанию установлен доллар – цены будут в долларах, рубли – в рублях, гривны – в гривнах и т.д.

Думаю, с этим понятно :-)

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

Валюта по умолчанию в OpenСart: практическая часть

Перед началом самого процесса пару слов о версии движка, которая участвует в данном уроке.

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

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

Также стоит упомянуть, что перед тем, как делать какую-то денежку дефолтной (по умолчанию), её сначала нужно добавить (если она, конечно, не включена в состав OpenCart или его сборки). Для примера разовьём смоделированную ранее ситуацию, когда вы добавили в магазин российские рубли и хотите сделать их в OpenCart валютой по умолчанию.

Поскольку при установке дефолтной денежной единицы мы будем иметь дело с настройкой магазина на OpenCart, то наш путь начинается со входа в админку магазина путём введения в адресной строке веб-браузера следующей строки: «доменное_имя_сайта/admin». В появившемся окне вводим логин/пароль администратора:

opencart-valyuta-po-umolchaniyu-adminka
Небольшое уточнение: если после произведённых действий ничего не произошло, проверьте соединение с Интернет, если ваш сайт расположен на хостинге, и запущен ли локальный сервер, если вы работаете с локальной копией.

О работе с локальными серверами вы можете прочитать в статье «Программы для создания сайтов«.

Если проблема всё равно не решилась, пишите в комментариях, постараюсь вам помочь.

Для того, чтобы установить в OpenCart валюту по умолчанию, в главном меню админки перемещаемся по следующему маршруту — «Система-Настройки». В версии OpenCart 2+, где текстовое меню было заменено на графическое, пункт «Система» выглядит в виде шестерёночки:

opencart-valyuta-po-umolchaniyu-nastrojki
На открывшемся экране нажимаем на кнопочку в виде карандашика, напротив наименования магазина, для редактирования его параметров:

opencart-valyuta-po-umolchaniyu-nastrojka-magazinaНа открывшемся экране переходим во вкладку «Локальные» и в пункте «Валюта» выбираем значение «Рубль», чтобы российский рубль сделать в OpenCart валютой по умолчанию:

opencart-valyuta-po-umolchaniyu-rubliПосле этого сохраняем изменения нажатием на кнопку «Сохранить». Для того, чтобы внесённые изменения отображались в витрине магазина, необходимо сбросить кэш браузера и почистить cookie, иначе в OpenCart валюта по умолчанию для вас не изменится.

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

Настройка курса валют в OpenCart

Итак, в OpenCart валюту по умолчанию мы установили.

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

Сделаем это сейчас, чтобы не возвращаться в админку из витрины.

Итак, в главном меню админки перемещаемся по следующему пути: «Система – Локализация — Валюты»:

opencart-valyuta-po-umolchaniyu-valyutyНа открывшемся экране представлен перечень всех валют, которые имеются в вашем магазине. Здесь нужно обратить внимание на столбец «Значение», который содержит значения курсов валют в OpenCart.

opencart-valyuta-po-umolchaniyu-spisok-valyutЗдесь у денежки по умолчанию должно быть «1», чтобы все остальные при автоматическом обновлении курса валют в OpenCart принимали значения относительно её.

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

opencart-valyuta-po-umolchaniyu-kurs-valyutНа данном экране нас будет интересовать поле «Значение», где нужно будет прописать «1» для денежной единицы, установленной по умолчанию. Нажимаем на кнопку в виде дискетки для сохранения и двигаемся дальше.

Раз уж мы разоворили о курсе валют в OpenCart, то следует сказать, что его значения можно вбивать вручную, а можно устанавливать автоматическое обновление значений, которое по умолчанию берётся из сервиса http://finance.yahoo.com.

Для того, чтобы сделать обновление курса валют в OpenCart автоматическим (по умолчанию) или вводить его вручную, нужно перейти на знакомый нам экран редактирования параметров магазина по пути «Система – Настройки – Редактирование магазина — Локальные»:

opencart-valyuta-po-umolchaniyu-rubliИ в пункте «Автоматическое обновление валюты» установить необходимое значение: «Да» — курс валют OpenCart будет автоматическим, «Нет» — значения будут задаваться вручную.

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

opencart-valyuta-po-umolchaniyu-vitrina-rubliКак видим – всё ОК :-)

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

opencart-valyuta-po-umolchaniyu-vitrina-dollarЗдесь всё тоже отлично: товар с названием «iPhone» вместо 101 российского рубля стоит 1,38 доллара США. А значит, цены соответствуют текущему курсу валют, что не может не радовать :-)

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

Вот и всё, что я хотел вам сказать :-)

На протяжении сегодняшнего урока нами была установлена в OpenCart валюта по умолчанию. А также я рассказал вам немного о курсе валют в OpenCart и способах его установки.

Надеюсь данный материал был вам полезен и скучно вам не было :-)

Подписывайтесь на обновления на сайте, чтобы быть в курсе новых статей. Оставляйте ваши мнения и пожелания в комментариях под статьёй, а также делитесь записью с друзьями в социальных сетях. Ваше внимание – самая большая награда за мой труд и показатель того, что я занимаюсь данным проектом не зря :-)

Всем спасибо и до новых встреч :-)

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
7 голосов, в среднем: 5 из 5

24 комментария к статье "OpenCart — валюта по умолчанию: установка и настройка курса"

  1. astarh2el

    Большое спасибо статью, это очень полезная информация для меня.

  2. Vavanina

    Правильно ли я понял что нужно указывать цену в валюте с учётом маржи уже? И модуль автоматом будет пересчитывать цену товаров с учетом изменения курса?

    1. Pashaster Автор

      Добрый день!

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

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

      Чтобы задать цену в долларах, а на витрине были видны рубли или гривны, нужно:

      1) валюта по умолчанию — рубль
      2) в списке валют для доллара ставите в поле «Значение» 1
      3) сохраняетесь и можете указывать цены в долларах, а покупатели будут видеть в рублях по курсу доллара

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

      В целом, думаю, нужно будет посвятить данной проблеме отдельную статью, чтобы описать всё наглядно и более подробно :-)

      1. Дмитрий

        Больше спасибо за ответ, искал как задавать цены в долларах, а выводить в рублях, ваш ответ помог :)
        Только вот с автообновлением курса по такой схеме проблема.
        Если выбрать валюту по умолчанию рубли, то OpenCart при обновлении ставит для него 1.0, а другие валюты высчитывает.

        т.е выходит так:
        Доллар 0.01530000
        Рубль (По умолчанию) 1.000000

        а правильно должно быть так:
        Доллар 1.000000
        Рубль (По умолчанию) 65.36199951

        Решил проблему путем правки функции refresh в файле /admin/model/localisation/currency.php (OpenCart 2.2.0.0).
        1) Исправил curl_setopt($curl, CURLOPT_URL, ‘http://download.finance.yahoo.com/d/quotes.csv?s=USDRUB=X&f=sl1&e=.csv’); чтобы отправлялся запрос на получение «сколько рублей в 1$»
        2) Жестко прописал USD: $this->db->query(«UPDATE » . DB_PREFIX . «currency SET value = ‘1.00000’, date_modified = ‘» . $this->db->escape(date(‘Y-m-d H:i:s’)) . «‘ WHERE code = ‘USD'»); чтобы он прописывал единицу для долларов
        3) Жестко прописал RUB: $this->db->query(«UPDATE » . DB_PREFIX . «currency SET value = ‘» . (float)$value . «‘, date_modified = ‘» . $this->db->escape(date(‘Y-m-d H:i:s’)) . «‘ WHERE code = ‘RUB'») чтобы для рублей он ставил полученное значение

        Сейчас автообновление валют работает, но может был способ проще, не знаете?

        1. Pashaster Автор

          Добрый день! :-)
          Спасибо за Ваш объёмный комментарий, действительно было интересно почитать.

          Да, признаю, мой предыдущий ответ всё-таки больше подходит для ситуации, когда курс будет указываться вручную. При автоматическом обновлении OpenCart для валюты по умолчанию снова ставит 1, и все остальные курсы сбрасываются.

          Ваш способ достаточно интересен, не встречал раньше.
          Немного проще ситуацию с автоматическим обновлением курса доллара при выводе на витрине рублей/гривен можно ещё решить, прописав в system/library/currency.php в строке
          public function format($number, $currency = », $value = », $format = TRUE)
          валюту, цены в которой Вы хотите увидеть у товаров в витрине, в формате:
          public function format($number, $currency = ‘RUB’, $value = », $format = TRUE)

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

          1. Мыша

            Дмитрий, огромное спасибо за ваш мод, тоже с этим бился. Так как изначально OC 2.3 засасывает не курс USD, а курс рубля! 0.0156! А должно быть 64! Вы это тоже заметили. Я применил ваш мод, и теперь цифры во фронте стали верные, и работает автооапдейт. Это безусловный прогресс. Только теперь в админке курс USD = 1.00000000, а RUB = 64! Для идеального завершения вечера не хватает того, чтобы во фронте все осталось как есть, но RUR = 1, а USD = 64. Так будет правильно и по логике вещей (правильные курсы) и валюта по-умолчанию (рубль) будет равна 1, как и строго рекомендуется во всех мануалах. Сможете поколдовать?

            Ответ можно дать вот здесь https://opencartforum.com/topic/827-avtomaticheskoe-obnovlenie-kursa-valiut/?p=602341 так как там такие вопросы уже обсуждались, и там можно вставлять код, который не бьется кавычкером (тут код бьется).

            Заранее вам очень признателен!

          2. Pashaster Автор

            Добрый день! Вам тоже спасибо за отзыв :-)

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

      2. Александр

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

        1. Pashaster Автор

          Добрый день! Ответ на ваш вопрос содержится в комментариях выше — там описаны различные способы решения Вашей проблемы. Они все рабочие — выбирайте тот, который будет наиболее удобен Вам.

  3. SaraHayk

    Вопрос:
    Сборка 2.0 магазин автоматически тянет курс рубля к доллару, но не с центробанка. Можно ли это как-то изменить и использовать курс с Центробанка?

    1. Pashaster Автор

      Добрый день! Для правки источника курса валют для OpenCart нужно копать в направлении admin/model/localisation/currency.php и править функцию updateCurrencies(). Список конкретных действий я планирую оформить в виде отдельной статьи, поэтому описывать его сейчас не буду. Подписывайтесь на обновления, чтобы быть в курсе новых публикаций проекта.

  4. Алексей

    Интересует есть ли возможность задать курс для каждого конкретного товара, (или задать свою цену в каждой валюте для каждого товара)

    1. Pashaster Автор

      Здравствуйте! Конечно, существует такой способ. О нём я писал в одном из своих ответов в комментариях к данной статье. Достаточно отключить автоматическое обновление курса валют в админке и вручную указать цены для каждого товара в той валюте и по тому курсу, как Вам душа пожелает.

      Успехов в реализации!

  5. Олег

    Здравствуйте! Это все хорошо! Но как просто от покупателя убрать дополнительную цену? У меня на сайте в карточке товара показана для покупателя основная цена и дополнительная в скобках.
    Жаль, нельзя сюда прикрепить скрин…

    1. Pashaster Автор

      Добрый день! Зашёл на ваш сайт — не увидел того, что вы описываете. Возможно, проблема в админке? Можете, кстати, залить скрин на облако и прикрепить ссылку.

        1. Pashaster Автор

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

          Тогда это вполне возможно, что вам, как админу, доступна дополнительная информация, которая обычным пользователям не показывается. Проверьте мои предположения у себя на компьютере, открыв сайт в режиме «Инкогнито» (в Google Chrome такой режим точно есть).

          В любом случае, если Вас этот ценник раздражает и Вы не можете найти, как отключить его в админке, вы всегда можете убрать его раз и навсегда с сайта, воспользовавшись инструкциями, описанными здесь — http://cccp-blog.com/sozdanie-saytov/menyaem-interfejs-sajta-samostoyatelno

          1. Олег

            Вы не видите цену на сайте в долларах, так как я временно отключил эту функцию.

          2. Pashaster Автор

            Какую именно функцию? Вы отключили отображение цены в долларах для покупателей? Так разве это не то, чего вы изначально добивались? :-)

  6. Кирилл

    А подскажите что делать если часть цен на товары стоит в руб. а другая часть стоит в долларах в админке, и нужно чтобы все выводилось в рублях? как решить проблему? можно ли как-то сделать чтобы конвертировались цены в отдельных товарах?

    1. Pashaster Автор

      Здравствуйте! Честно говоря, затрудняюсь ответить на Ваш вопрос. Насколько я помню, в стандартном OpenCart (без всяких сборок) есть только поле «Стоимость», где можно указывать численное значение. Т.е. валюту указать нигде нет позможности для каждого отдельного товара. Как тогда у вас часть товаров в долларах, а часть в рублях??? Или у вас стоимость 49 — это доллары, а 3600 — это рубли? Объясните, пожалуйста.

      1. Кирилл

        Pashaster 29.08.2017
        Или у вас стоимость 49 — это доллары, а 3600 — это рубли? Объясните, пожалуйста.

        Да именно такая ситуация. Например товар от одного производителя стоит цена 35 ( это евро) а от другого производителя стоит 76 (доллары) а от третьего 2000 (это рубли), реально ли как то сделать, чтобы там где евро и доллары конвертировалось все в рубли?

        1. Pashaster Автор

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

          Что вам мешает выбрать валюту по умолчанию «рубли» и вводить в админку товару стоимость в рублях, пересчитав его цену в долларах по нужному курсу на калькуляторе?

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

          Но, боюсь, что самостоятельно Вы такое не реализуете. Нужно будет обращаться за помощью к профессиональным программистам, т.к. это масштабная и достаточно редкая кастомизация самого ядра OpenCart.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *