Woocommerce: настраиваем многовалютность 21


Woocommerce в свое время стал для многих точкой сдвига парадигмы по отношению к wordpress. Еще несколько лет назад уже кто-то начал понимать, что wordpress уже никогда не будет просто блоговым движком, к которому костылями можно прикрутить убогое подобие чего-то еще кроме блога. WordPress стал полноценной платформой, на которой можно создавать самые разные и еще и очень красивые и удобные решения. На сегодня я не знаю ни одного движка, UI административной панели которого хоть отдаленно мог бы сравниться по удобство с wordpress. Может быть есть более гибкие, может быть есть более расширяемые, с более красивым и организованным кодом, с большей сопротивляемостью к нагрузкам. Но именно такого красивого в плане интерфейсов и простоты использования для пользователя — не видел. Это лирическое отступление было).

Задача: сделать возможность выбора валют в магазине.

Тут могут быть разные задачи:

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

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

Во-первых, в woocommerce не все валюты присутствуют по умолчанию.

Рубль в плагине уже есть (был добавлен в версии 2.0.9  в мае 2013 — ист. справка) и доллар, конечно, же тоже, можете не переживать. А вот, если вам понадобится какой-нибудь ливанский фунт, то вы его там не найдете. Со временем добавляется поддержка новых валют, но, все равно, возможна ситуация, что нужной вам валюты все-таки не окажется (например, вы создадите новое государство и вам понадобятся собственные денежные знаки).

Добавить новую валюту можно несколькими способами:

  1. Некоторые дополнительные валюты могут быть встроены в разные расширения для woocommerce — всякие локальные платежные шлюзы или расширения, предлагаемые локальными разработчиками.
  2. Есть плагин WooCommerce All Currencies, который добавляет на ваш сайт вообще все существующие валюты. Плагин давно не обновлялся, но, по идее, должен работать. Что там обновлять? Новые валюты не каждый день появляются, а совместимость с woocommerce 2.0 и выше заявлена на страница плагина. UPD: буквально на днях плагин все-таки обновился.
  3. Есть плагин WooCommerce Custom Currencies — позволяет добавить через админку новые валюты и даже задать для них обменный курс на основе курса paypal. Плагин на момент написания поста все еще в бета-версии, у меня выдал на одном сайте пачку ошибок и работать не захотел. Но вам-то, наверняка, повезет!
  4. Можно просто добавить следующий код в файл functions.php вашего шаблона (читайте комменты к коду):

это как раз пример для ливанского фунта. Сниппет взят из официальной документации

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

Например, если вы занимаетесь дропшиппингом из Китая (что сейчас очень популярно). И вам нужно, чтобы цена автоматически корректировалась в зависимости от курса доллара.

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

2. Плагин WooCommerce Currency Switcher

woocommerce_nastraivaem_mnogovalyutnost

дает возможность добавить в настройки woocommerce несколько валют (в бесплатной версии только 2, но для большинства этого будет достаточно), установить одну из них как базовую (в ней вы будете видеть цены в админке), установить одну как базовую для лицевой части сайта, а также задать какой сервис использовать для конвертации — Yahoo finance, Google finance или Центробанк России (в бесплатной версии нет автообновления курса, нужно каждый раз заходить в настройки и нажимать кнопку для обновления).

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

3. Плагин от российского производителя — WOOCOMMERCE. КОНВЕРТЕР ВАЛЮТ. МУЛЬТИВАЛЮТНОСТЬ

Converter-multi-currency-Woocommerce-Plugin-Currencies-Selector-300x300

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

Теперь о добавлении нескольких валют на сайт

1. Официальный плагин от woothemes:  Currency Converter Widget — 29$. Позволяет очень быстро настроить показ цен в вашем каталоге в самых разных валютах. Вводите столбиком 3-хбуквенные коды валют в настройках виджета и все. Обменный курс автоматически обновляется. Пользователь может посмотреть сколько будут стоить ваши товары в разных валют. Заказ при этом будет оформлен в валюте по умолчанию. Но вы сможете в уже оформленном заказе посмотреть — какую итоговую сумму видел пользователь и в какой валюте.

currency-converter-widget

2. Аналогичный, но более гибкий виджет с codecanyon: Smart Currency Converter for WooCommerce — 15$

smart-currency-converter

поддерживает 157 валют, позволяет выбрать способ отображения дополнительных валют — непосредственно вместо валюты по умолчанию или в виде всплывающей подсказки. Самая интересная фишка — автоопределение валюты пользователя на основании, видимо, геолокации. Обменный курс берется из Yahoo Finance, но может быть переопределен администратором магазина. Можно настроить отображение для каждого вида валют, а также выбрать несколько вариантов дизайна для показа цен.

 

3. Еще один плагин с codecanyon:  Woocommerce Multi Currency Store — 24$

woocommerce-multi-currency-store

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

 

4. Бесплатный плагин WooCommerce Product Price Based on Countries

woocommerce-product-price-based-on-countries

позволяет показывать цены на сайте в зависимости от региона пользователя. Можно создать и настроить группы из одной или нескольких стран пользователя и для каждой группы указать свою валюту. А также настроить для каждого товара вилку цен для всех или некоторых созданных групп (включая цену со скидкой). Вроде как чекоут тоже возможен в выбранной валюте. Но виджета-переключателя нет.

5. Про WooCommerce Currency Switcher  уже написал выше

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

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

Поделитесь полезной информацией с друзьями или подпишитесь на рассылку новых статей:

рассылка на почту всех новых статей сайта romapad.ru не чаще одного раза в неделю ->

Помогла статья или комментарий автора? Отблагодарите автора:


Про Роман Моренец

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


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

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

21 мыслей про “Woocommerce: настраиваем многовалютность

  • Евгений

    Добрый день!
    Статья оказалась полезной.
    Спасибо!
    Есть маленький вопрос и буду крайне благодарен за ответ.
    Скачал плагин. Установил курс доллара. Всё отлично. Но периодически цена на сайте отображается не в долларах (сумма, а не значок).
    Если кто-то знает ответ буду признателен за ответ на emаil dly-sto@ya.ru

    • Роман Моренец От автора

      Евгений, здравствуйте! Первая мысль, которая напрашивается — возможно, что у вас на сайте настроено кеширование, и результаты где-то застревают в кеше. Второй вариант — конфликт с какими-то другими плагинами. Третий — не хватает ресурсов на хостинге.

  • Николай

    Роман, добрый день!
    Возможно немного не разобрался, потому спрошу еще раз.
    Мне важно на сайте сделать не просто отображение в нескольких валютах, но чтобы и расчеты в зависимости от выбранной валюты велись через разные сервисы. Например для долларов — PayPal, для рублей — Тинькоф или Яндекс.касса.
    Иными словами, базовых валют у магазина нужно несколько. Как это возможно?

    • Роман Моренец От автора

      Николай, добрый день! Тинькоф, Яндекс.касса, Paypal — это просто способы оплаты. Которые вообще никак не участвуют в расчете стоимости товаров. Более того, они выбираются пользователем на последнем шаге оформления заказа. Система не может предсказать, какой метод оплат будет выбран. Пользователь может выбрать, например, для отображения цен на сайте валюту в рублях. А оплатить в итоге через Paypal. Я так понял, вы предлагаете завязать вместе валюту и конкретный способ оплаты. Где это вообще должно проявляться? Человек выбрал отображение в долларах, и автоматически цены отображаются по курсу Paypal? Вообще, насколько я знаю, ни Тинькоф, ни Paypal не дают возможности заранее узнать обменный курс с учетом всех комиссий системы, у них просто нет такого апи. Или во время оформления заказа при выборе способа оплаты должен происходить пересчет? Я такая понимаю, ваша задача — учесть комиссии систем? Если да, то это проще. Есть плагины для woocommerce, которые не имеют отношения к мультивалютности, но позволяют менять сумму заказа в зависимости от выбранных оплаты и доставки:
      https://woocommerce.com/products/payment-gateway-based-fees/
      https://woocommerce.com/products/conditional-shipping-and-payments/
      Возможно, что это то, что вам нужно

      • Николай

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

  • Алексей

    Добрый день!
    Задача намного проще, но решение так и не нашел…

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

    Никаких пересчетов не нужно, и оплаты у меня как таковой нет..

  • Andrey

    Роман, добрый день!

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

    мы продаем товар в России, Украине, и условно, в других странах.

    Как сделать так, чтобы из России покупали продукт за Х рублей, из Украины за Y гривен, при этом в России цена, если перевести в доллары — меньше, так как нет доставки за границу.

    Для доставки товара по России — привязать оплату клиента к моей карте СберБанка, Для доставки по Украине — получать на карту ПриватБанка (Украина).

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

    • Роман Моренец От автора

      Андрей, здравствуйте! Спасибо за ваш вопрос!

      Для мультивалютности вам стоит обратить внимание на вот этот плагин: https://ru.wordpress.org/plugins/woocommerce-product-price-based-on-countries/ — он автоматически определяет страну пользователя и показывает ему цены в валюте его страны. Можно выставить для каждой валюты свои цены. Это как раз то, что вы спрашиваете по поводу цен для России и Украины.
      По поводу приема оплат — Сбербанк, насколько я знаю, не имеет собственного эквайринга. И не уверен, что он есть у ПриватБанка.
      Это значит, что, скорее всего, вам придется использовать сторонний агрегатор, через который будут осуществляться все платежи на сайте. На данный момент самыми популярными подобными сервисами в России являются Яндекс.Деньги и Робокасса. Для международных платежей лучше всего подходит система Paypal. Первые две системы требуют (начиная с недавнего времени) наличия юридического лица. И выводы средств возможны только на расчетный счет. Привязать несколько счетов разных банков для вывода средств возможна в системе Paypal, но там вывод не делается автоматически. Деньги находятся у вас на внутреннем балансе и вы можете их вывести вручную на любой привязанный счет.
      Надеюсь, что чем-то вам помог.

        • Роман Моренец От автора

          Все эти плагины основаны на конкретных сервисах. С которыми нужно будет заключать договор, и которые будут с вас брать абонентскую плату или комиссию. Проблема в том, что как раз совсем недавно в России был принят закон, по которому принимать платежи в интернет-магазинах могут принимать только юридические лица. Был вопрос о том, что вообще могут работать только организации, но потом, вроде, разрешили и ИП. Я могу в формулировках ошибаться, но суть примерно такая. Еще не все сервисы перешли на эту модель, возможно какие-то еще работают с физ.лицами, но, скорее всего, это в ближайшее время прикроют.
          Возможно, что на Украине пока с этим таких проблем нет, тогда лучше попробовать поискать какой-нибудь украинский сервис по приему платежей на сайте.
          Самый простой вариант, конечно, вообще не пользоваться сервисами, а настроить систему уведомлений клиентов, когда клиенту после оформления заказа будет уходить письмо с прямыми реквизитами для оплаты — карточки, электронные деньги, счета. Да хоть на баланс телефона. И на самом деле в России очень многие даже достаточно большие компании так и работают, и не парятся — никаких ограничений, никаких комиссий

          • Andrey

            Благодарю Вас !!! вижу теперь два варианта — после заказа клиент попадает на страницу с предложением сразу оплатить онлайн и реквизитами, возможно, даже кнопками яндекс.денег и ликпей и т.д. или интегрировать e-autopay на сайт и лендинги, сказали, могут…

          • Andrey

            e-autopay не подходит, еще пробую Интеркасса, если нет — тогда, как Вы сказали — давать реквизиты желающим.

          • Роман Моренец От автора

            Есть еще плагин от saphali, и еще штуки 4 других, можно погуглить по запросу interkassa woocommerce. Даже один бесплатный нашел: https://github.com/denysrodman/interkassa

            Честно сказать, с интеркассой не работал еще, сложно сказать какой именно плагин будет лучше работать.
            Напишите потом, пожалуйста, здесь, какой именно выбрали

          • Андрей

            Как Вы просили, отчитываюсь. )))
            http://www.yoga-milk.com/shop/ Пока онлайн оплату не сделал, сделал так, что в конце после оформления заказа показываются реквизиты карт для оплаты ПриватБанка и СберБанка…
            украинский сервис по приему платежей на сайте — очень актуален, чтобы пока юр.лицо в России не делать…
            С наилучшими пожеланиями, Андрей.

  • Владислв

    Приветствую, а как быть с такой задачей:
    1. Базовая валюта для отображения во фронтенде и в бекенде — Руб
    2. Выбор установки валюты на ОТДЕЛЬНЫЕ товары в админке — Долл (то есть при создании товара нужно выбрать в какой валюте вводить цену для отдельных товаров с последующей актуальной конвертацией в рубль, согласно текущему курсу, например, Центробанка)
    Буду благодарен за подсказку!

    • Роман Моренец От автора

      Владислав, благодарю за вопрос! Задачка, действительно интересная. Нашел вот такой плагин:
      http://codeaffairs.com/product/woocommerce/product-default-currency/
      По ходу то, что вам нужно — можно выставить для каждого товара свою валюту, а на сайте выводить все товары в единой валюте. Единственный нюанс — плагин синхронизирует курс с Европейским Центробанком
      Еще один похожий плагин, но чуть понавороченнее (и подороже): https://aelia.co/shop/currency-switcher-woocommerce/ — для него синхронизация валют возможна с Open Exchange Rates, WebServiceX или Yahoo! Finance, или можно просто установить курс вручную.