0 Пользователей и 1 Гость просматривают эту тему.
  • 91 Ответов
  • 10759 Просмотров
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Может быть кому-то будет полезно.

Конвертация и автоконвертация обменного курса валют в JoomShopping в соответствии с текущим курсом ЦБ РФ
1.   Основная валюта (по умолчанию) – рубль. Курс устанавливается для 38 валют (USD, EURO, GBP,….).
2.   Данные о текущем курсе берутся с сайта ЦБРФ: http://www.cbr.ru/scripts/XML_daily.asp
3.   Сделаны (на основе addons JoomShopping-import-currency-1.0) два php-скрипта:
a.   JoomShopping-update-currency-1.0.zip
b.   Update.php
4.   JoomShopping-update-currency-1.0.zip – это addons и должен выполняться вручную администратором сайта из компоненты JoomShopping («Установка и Обновление») каждый раз, когда он хочет изменить обменный курс на своем сайте по текущему курсу ЦБ РФ.
5.   Update.php – это скрипт, который должен запускаться автоматически через cron. Он должен быть в корне сайта с аттрибутами 755. Не забудьте файл update.php (предварительно распаковав из архива update.zip) записать на сайт в формате UNIX. Для этого можно обработать файл утилитой dos2unix.  Каждый раз, когда он выполняется, на email администратора сайта посылается извещение об изменении курса и об установленных значениях валют. Пример:

Information for site administrator: currency exchange have been made according to CBRF data. Date and time: Tue, 26 Mar 2013 12:46:02 +0400
Спойлер
[свернуть]





[вложение удалено Администратором]
« Последнее редактирование: 24.04.2013, 19:10:27 от nevigen »
*

x1

  • Давно я тут
  • 372
  • 14
Цитировать
JoomShopping-update-currency-1.0.zip – это addons и должен выполняться вручную администратором сайта из компоненты JoomShopping («Установка и Обновление») каждый раз, когда он хочет изменить обменный курс на своем сайте по текущему курсу ЦБ РФ.

Опробовал вашу разработку. После выполнения кроном файла Update.php курсы валют обновились и на сайте при смене валюты, цена отображается корректно, как и требовалось. Все чудесно работает, вам - плюсик. Только один вопрос, зачем нужен первый файлик, если  и так все работает?
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Вы имеете ввиду файл JoomShopping-update-currency-1.0.zip ? Представьте себе ситуацию, когда на сайте принят фиксированный обменный курс ЦБ РФ на какой-то определенный день и он не меняется долгое время. Но в какой-то момент администратор решил  поменять его на новый фиксированный курс для определенного дня. Вот для такого сценария и нужен этот файл.   
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
Попробовал у себя update.php и столкнулся с проблемой - валюты не обновляются, а пересоздаются с новым currency_id, отсюда всем товарам после исполнения скрипта назначается одна валюта, та что по умолчанию

Дополню:
PHP    5.3.18
Joomla! 2.5.7
JoomShopping 3.11

И также получаемая ошибка
Код
PHP Warning:  Invalid argument supplied for foreach() in .../public_html/libraries/joomla/string/string.php on line 970
« Последнее редактирование: 05.04.2013, 14:44:34 от mocart »
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Вы совершенно правы. Для простоты я реализовал самый простой алгоритм: при запуске update.php сначала удаляются все валюты, а потом заново создаются с новым курсом. Ввиду того, что поле currency_id определено с автоинкрементом, то currency_id при таком алгоритме увеличивается, начиная с максимального значения перед удалением. Но у меня это нигде не вызвало содержательных нестыковок и я пользуюсь этим вариантом. Если вас не страивает этот алгоритм и возникают коллизии, то есть исходный текст - можете модифицировать.  При случае я тоже попробую доработать update.php.

А где у вас идет привязка к currency_id ?
« Последнее редактирование: 05.04.2013, 14:49:39 от FIORD_CMS »
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
А где у вас идет привязка к currency_id ?
Дык, каждому товару задается currency_id.
Раньше рубль имел currency_id =1 (он по умолчанию), USD currency_id =2, EUR currency_id = 3
Соотвественно всем товарам задан свой currency_id, например 2 (USD), но так как теперь нет currency_id=2 то этот товар просто берет валюту по-умолчанию (рубль)
Вот и представьте - загружали майку по цене 5евро, после апдейта она стала стоить 5рублей :)
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Поправил. Сейчас протестирую и выложу.

[вложение удалено Администратором]
« Последнее редактирование: 05.04.2013, 16:06:07 от FIORD_CMS »
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Вот новый вариант

[вложение удалено Администратором]
*

x1

  • Давно я тут
  • 372
  • 14
Вот новый вариант
Не, так не пойдет... у меня рубль почему то не первый, а второй по id. Вот поля в настройках валюты магазина:
Код
Название* 	
Код*
Код (ISO)*
Код (Числовой)

Какие значения должны быть для Русского например? У меня:
Код
currence_name: Рубль
currence_code: RUB
currence_iso: 421
currence_num: 643

Это правильно?

Название, как вы пгонимаете, может быть произвольным. Вот вы обозвали рубль "RUB", а у меня на сайте "Рубль". Мне кажется удалять в базе все значения и потом переписывать заново - как то Неправильный подход.
Я бы при обновлении курса в вашем update.php в цикле задал бы поис "Код (ISO)*"  - это константа и менял только обменный курс currency_value, взятый вами с ЦентроБанка.    Остальное - название, публикацию - оставлял бы нетронутыми.

И наконец - Я бы убрал Вьетнам, Турцию... и оставил бы Россия-Казахстан-Украина... с кем реально торгуем.
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Я поправил вариант для крона (чтобы не путаться - теперь называется update1.php). В этом варианте изменен алгоритм модификации (соответсвует вашему предложению): В списке валют на вашем сайте изменяется только текущий обменный курс в соответствии со значением ЦБ РФ. В качестве ключа беретеся код ISO - трехбуквенный код российского рубля в соответствии с ISO 4217 — RUB. Все остальные поля - без изменений.
По-прежнему, устанавливается валюта по-умолчанию - рубль (RUB).



[вложение удалено Администратором]
« Последнее редактирование: 08.04.2013, 15:02:55 от FIORD_CMS »
*

buto

  • Завсегдатай
  • 525
  • 1
Для РБ бы такой конвектор, чтобы +2% к курсу Национального Банка Республики Беларусь считал
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Вот еще небольшая примочка (каа вы понимаете, имеет смысл использовать в связке с ранее описанным в этой теме аддоном или программой для CRON, тогда все будет идентично - значения в back end и во front end): модуль вывода во front end текущего курса ЦБ РФ. Модуль выводит текущий курс ЦБ РФ, взятый с сайта ЦБ РФ http://www.cbr.ru .
Выводится дата и время (на случай, если курс может меняться несколько раз в день) и обменные курсы для EURO и USD.
На некоторых сайтах принят курс ЦБ РФ плюс несколько процентов. Для это случая надо поправить одну строку в файле tmpl/default.php этого модуля (полный путь modules/mod_show_currency/tmpl/default.php ).
Например, Если у вас на сайте курс ЦБ РФ+2%, то вместо строки

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.00); //Plus 0%

надо сделать:

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.02); //Plus 2%

« Последнее редактирование: 21.04.2013, 19:25:20 от FIORD_CMS »
*

buto

  • Завсегдатай
  • 525
  • 1
Вот еще небольшая примочка (каа вы понимаете, имеет смысл использовать в связке с ранее описанным в этой теме аддоном или программой для CRON, тогда все будет идентично - значения в back end и во front end): модуль вывода во front end текущего курса ЦБ РФ. Модуль выводит текущий курс ЦБ РФ, взятый с сайта ЦБ РФ http://www.cbr.ru .
Выводится дата и время (на случай, если курс может меняться несколько раз в день) и обменные курсы для EURO и USD.
На некоторых сайтах принят курс ЦБ РФ плюс несколько процентов. Для это случая надо поправить одну строку в файле tmpl/default.php этого модуля (полный путь modules/mod_show_currency/tmpl/default.php ).
Например, Если у вас на сайте курс ЦБ РФ+2%, то вместо строки

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.00); //Plus 0%

надо сделать:

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.02); //Plus 2%


О клево спасибо. Так оперативно. Но проблема в том что живу в Беларуси. Есть вероятность привязать это все дело к Национальному Банку Республики Беларусь?)
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Вот еще немного доработал. Теперь процент, который добавляется к обменному курсу ЦБ РФ, задается в основных параметрах (настройках) модуля. По-умолчанию - 0. И кроме того при отображении добавлены пиктограммы валют (EUR, USD). При отображении для каждой валюты показывается курс магазина, а в скобках курс ЦБ РФ для каждой валюты.

Ну и наконец - плагин, который дает возможность вставить значения обменного курса EUR и USD в материал. Значение добавляемого процента сайта к курсуЦБРФ - также в настройках плагина.
Для добавления значений в контекст материала введены следующие теги:

{showcurrency-eur-my} - обменный курс евро в магазине
{showcurrency-eur-cbrf} - обменный курс евро ЦБРФ
{showcurrency-usd-my} - обменный курс доллара в магазине
{showcurrency-usd-cbrf} - обменный курс доллара ЦБРФ
{showcurrency-addvalue} - добавленный процент к курсу ЦБРФ

Ну и совсем последнее - даже написал для себя плагин кнопки для редактора, чтобы по нажатию вставлял нужный тэг в статью.
« Последнее редактирование: 24.04.2013, 16:38:52 от FIORD_CMS »
*

x1

  • Давно я тут
  • 372
  • 14
Я поправил вариант для крона (чтобы не путаться - теперь называется update1.php). В этом варианте изменен алгоритм модификации (соответсвует вашему предложению): В списке валют на вашем сайте изменяется только текущий обменный курс в соответствии со значением ЦБ РФ. В качестве ключа беретеся код ISO - трехбуквенный код российского рубля в соответствии с ISO 4217 — RUB. Все остальные поля - без изменений. По-прежнему, устанавливается валюта по-умолчанию - рубль (RUB).

Спасибо, но проверить смогу через пару дней и отпишу.
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Вот еще "проба пера" - AJAX версия. Буду признателен за советы и замечания.
« Последнее редактирование: 01.10.2013, 21:11:38 от FIORD_CMS »
*

dmitry_stas

  • Профи
  • 10030
  • 952
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
*

dmitry_stas

  • Профи
  • 10030
  • 952
ну хорошо, раз в личку, то покажу тогда только картинку, что можно сделать :) я не задавался целью, но можно я так думаю и что то другое написать  ;) понятно, что безобидные шутки... но кому они нужны?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Хотелось бы узнать, как это сделано и рекомендацию (если она есть), как исправить.
Этот ajax-вариант модуля - первая моя попытка освоить технологию, поэтому ваши замечания - это даже хорошо (позволяет глубже понять метод).
*

dmitry_stas

  • Профи
  • 10030
  • 952
это - последствие не фильтрации $_GET. $add_val_text=$_GET["add_value_text"] - ну аж никак нельзя. почитайте про фильтрацию данных $_GET и $_POST. плюс про обязательное использование defined( '_JEXEC' ) or die. просто как я уже сказал в данном случае это безобидно, и по сути вреда принести не может. но такой подход может обернуться гораздо более плачевными последствиями...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Спасибо. Поправил (перезалил архив). Если у вас есть желание, то посмотрите, пожалуйста, новый вариант.
*

sergey44

  • Захожу иногда
  • 10
  • 0
Я поправил вариант для крона (чтобы не путаться - теперь называется update1.php). В этом варианте изменен алгоритм модификации (соответсвует вашему предложению): В списке валют на вашем сайте изменяется только текущий обменный курс в соответствии со значением ЦБ РФ. В качестве ключа беретеся код ISO - трехбуквенный код российского рубля в соответствии с ISO 4217 — RUB. Все остальные поля - без изменений.
По-прежнему, устанавливается валюта по-умолчанию - рубль (RUB).


Скажите,  как сделать чтобы к текущему курсу также автоматом прибавлялся заданный процент (2%). Я в php ноль, не знаю как. 
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
В модуле update1.php это уже сделано (например, для 2%) в строке
   
Код
$currency_el['currency_value']=1.0/((float)str_replace(',','.',$valute->Value)*1.02); //Plus 2%
Если надо другой процент, то вместо 1.02 ставите нужное число.
*

sergey44

  • Захожу иногда
  • 10
  • 0
*

brood

  • Осваиваюсь на форуме
  • 47
  • 0
А как мне сделать если к примеру сайт в рублях но перед тем как клиент подтвердит заказ валюта изменилась автомотически в евро!?
*

St@lker

  • Осваиваюсь на форуме
  • 78
  • 0
А кто знает где можно брать для Украины курсы в таком же формате? Или может у кого-то есть уже готовый вариант для Украины?

Спасибо!
*

nevigen

  • Moderator
  • 8918
  • 755
  • http://n*****n.com
Или может у кого-то есть уже готовый вариант для Украины?

глобальное решение включая Украину.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

FIORD_CMS

  • Осваиваюсь на форуме
  • 115
  • 3
Я не проверял, но предполагаю, что надо просто заменить в файле update1.php ссылку с курсом валют в xml-формате: вместо ссылки на ЦБ РФ
Код
http://www.cbr.ru/scripts/XML_daily.asp
дать ссылку на Нац. банк Украины
Код
http://bank-ua.com/export/currrate.xml

Для Белоруссии, видимо, надо взять курс отсюда:
Код
http://www.nbrb.by/Services/XmlExRatesRef.aspx

« Последнее редактирование: 20.02.2014, 16:18:02 от FIORD_CMS »
*

prizrakx

  • Захожу иногда
  • 13
  • 0
поставил update1.php на выполнение в крон, смотрю сейчас курс доллара к рублю 0.028, странно. Что не так сделал? разжуйте пжлста.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Комплект товаров JoomShopping - конструктор

Автор vgromov

Ответов: 73
Просмотров: 14261
Последний ответ 04.09.2017, 08:28:02
от Jay
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 37
Просмотров: 2264
Последний ответ 10.08.2017, 00:41:38
от kit2m2
[FAQ] Условия вывода модулей в JoomShopping

Автор ELLE

Ответов: 275
Просмотров: 51435
Последний ответ 29.04.2017, 22:08:28
от kit2m2
Вытаскиваем меню JoomShopping в админке на верхний уровень, туда где Материалы, Компоненты и тд.

Автор danik.html

Ответов: 39
Просмотров: 5611
Последний ответ 29.03.2017, 18:50:06
от Linfuby
Плагин - Название категории JoomShopping под изображением [Скачать]

Автор kit2m2

Ответов: 6
Просмотров: 295
Последний ответ 20.02.2017, 13:14:07
от dmitry_stas