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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
Может быть кому-то будет полезно.

Конвертация и автоконвертация обменного курса валют в 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

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

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

FIORD_CMS

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

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Попробовал у себя 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

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

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

mocart

  • Захожу иногда
  • 112
  • 9 / 0
А где у вас идет привязка к 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

  • Захожу иногда
  • 119
  • 3 / 0
Поправил. Сейчас протестирую и выложу.

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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
Вот новый вариант

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

x1

  • Давно я тут
  • 616
  • 15 / 0
  • Linux — это Windows для бытовой техники
Вот новый вариант
Не, так не пойдет... у меня рубль почему то не первый, а второй по id. Вот поля в настройках валюты магазина:
Код
Название* 	
Код*
Код (ISO)*
Код (Числовой)

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

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

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

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

FIORD_CMS

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



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

buto

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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
Вот еще небольшая примочка (каа вы понимаете, имеет смысл использовать в связке с ранее описанным в этой теме аддоном или программой для 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

  • Давно я тут
  • 568
  • 1 / 0
Вот еще небольшая примочка (каа вы понимаете, имеет смысл использовать в связке с ранее описанным в этой теме аддоном или программой для 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

  • Захожу иногда
  • 119
  • 3 / 0
Вот еще немного доработал. Теперь процент, который добавляется к обменному курсу ЦБ РФ, задается в основных параметрах (настройках) модуля. По-умолчанию - 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

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

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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
Вот еще "проба пера" - AJAX версия. Буду признателен за советы и замечания.
« Последнее редактирование: 01.10.2013, 21:11:38 от FIORD_CMS »
*

dmitry_stas

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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
*

dmitry_stas

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

FIORD_CMS

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

dmitry_stas

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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
Спасибо. Поправил (перезалил архив). Если у вас есть желание, то посмотрите, пожалуйста, новый вариант.
*

sergey44

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


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

FIORD_CMS

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

sergey44

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
*

brood

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

St@lker

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

Спасибо!
*

nevigen

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

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

FIORD_CMS

  • Захожу иногда
  • 119
  • 3 / 0
Я не проверял, но предполагаю, что надо просто заменить в файле 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 / 0
поставил update1.php на выполнение в крон, смотрю сейчас курс доллара к рублю 0.028, странно. Что не так сделал? разжуйте пжлста.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин - Вывод значения поля из таблицы продуктов в корзине JoomShopping

Автор draff

Ответов: 3
Просмотров: 727
Последний ответ 26.02.2024, 07:00:01
от kit2m2
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 58
Просмотров: 9163
Последний ответ 18.05.2023, 12:59:00
от Akeksandr
[Решено] Комплект товаров JoomShopping - конструктор

Автор vgromov

Ответов: 96
Просмотров: 28031
Последний ответ 14.12.2022, 15:21:24
от kit2m2
Функционал сравнение товаров в JoomShopping

Автор falur

Ответов: 53
Просмотров: 13365
Последний ответ 22.08.2022, 09:54:16
от kit2m2
[скачать] Выбор отделения Новой Почты для JoomShopping 4+

Автор v42bis

Ответов: 18
Просмотров: 3535
Последний ответ 06.07.2022, 07:17:06
от denxio