Jump to content

Modulul currencies - Rata de schimb valutar


Cipboy

Recommended Posts

Exista o modalitate de a automatiza procesul de update al ratei de conversie? Sau trebuie facut manual...zilnic...? Eu am instalat modulul BNR insa inafara faptului k se afiseaza pe prima pagina (cam inestetic din pct meu de vedere) nu ii vad rostul. Se poate face conversia automata cu ajutorul acestui modul sau exista vreo alta procedura pt asta?

Link to comment
Share on other sites

  • 4 weeks later...

si eu am kinul asta , nui prima oara cand ma uit pe postu asta sa vad daca sa gasit vro rezolvare, si eu vreu sa se poata face automat updateurile la preturi, si din ce am amflat e cam destul de greu mai ales varianta mea, eu in BO am 3 valute dolar euro si leu, si pun pretu la produse in lei, in FO am numai in romana preturile si default e limba romana, nu am engleza, ca sa pun de ex dolar, si va trebuii editat produsul si pt romana cu valuta lei si produsul in engleza cu pretul in dolar si la update atunci o sa ia , dar cine stie cum programatorii or scoate la capat asteptam cu mainile in san

Link to comment
Share on other sites

nu e greu creati un fisier nou numit cron.php in dir radacina unde aveti cart.php, footer.php etc...:

<?php
include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/init.php');

Currency::refreshCurrencies();
echo 'gata';



apoi setati-l ca si cron sa ruleze in fiecare zi - cpanel are posibilitatea adaugarii de cron-uri

poate va spune cipboy cum a facut sa ia cursul bnr

Link to comment
Share on other sites

am facut fisierul respectiv, dar cred ca nui pt ce imi trebuie mie, pe mine nu mar deranja sa fac update currency rates manual in fiecare zi

am leu default si in FO si BO , si in BO am si euro si dolar in plus fatza de FO , nu stiam si asa am gandit de la inceput , creadeam ca daca fac asa si doar dau update currency pt ca e lasat si euro si dolar o sami modifice toate preturile de pe site automat in functie de currency si iete ca na fost asa :) , miam luato in barbitza, ca acum dupa o vreme asa vad eu lucrurile ca daca eu nu iam pus si o valoare a pretului in euro sau dolar nu stie sa calculeze

omu cat traieste invatza, din greseli :)

Link to comment
Share on other sites

  • 2 months later...

a rezolvat cineva problema asta? la mine e nasol am deja puse 200 produse si tre sa pun manual si fiecare data cand se skimba cursul euro sau dolar
daca o sa ajung la vro mie de piese o sa tampesc ca in FO am nevoie in RON, iar in BO tre sa pe pun in euro sau dolar depinde ce produse am si cu ce valuta intra in tzara

Link to comment
Share on other sites

  • 6 months later...

stiu ca este un thread vechi dar imi incerc norocul :)

daca doresc sa folosesc un xml local merge sa faca conversie? nu folosesc cursurile bnr

ce modificari ar trebui aduse in currency.php inafara de linkul catre xml?

multumesc

Link to comment
Share on other sites

  • 2 weeks later...
  • 9 months later...
  • 1 year later...

nu e greu creati un fisier nou numit cron.php in dir radacina unde aveti cart.php, footer.php etc...:

 

<?php
include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/init.php');

Currency::refreshCurrencies();
echo 'gata';

 

apoi setati-l ca si cron sa ruleze in fiecare zi - cpanel are posibilitatea adaugarii de cron-uri

 

poate va spune cipboy cum a facut sa ia cursul bnr

valorile le poti lua zilnic de aici – script-ul de sus face update la baza de date direct

http://www.bnro.ro/nbrfxrates.xml

unde in scriptul de mai sus pui xml-ul sau cum faci legatura cu xml-ul ?!

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

Deci..

1. Instalez modulul Crontab

2. Configurare: Shop traffic si adaug URL-ul din Location->Currencies.

 

Totul merge struna pana aici. Dar vreau sa aplic cursurile de la BNR (si nu de la Prestashop). Am inteles ca valorile se gasesc la adresa http://www.bnr.ro/nbrfxrates.xml , dar cum fac prestashop-ul sa ia aceste valori si sa updateze?

 

Incercarea mea a fost ca in fisierul Currency.php (folderul classes) la functia refreshCurrencies() sa inlocuiesc adresa xml..

public static function refreshCurrencies()
{
 // Parse
 if (!$feed = Tools::simplexml_load_file('http://www.bnr.ro/nbrfxrates.xml'))

 

Evident nu merge.. presupun deoarece codul paginii BNR nu e la fel cu al paginii prestashop..

Ma gandesc ca ori trebuie modificate niste functii care sa poata lua si aplica valorile din XML-ul BNR, ori ar merge rescrierea XML-ului BNR.

 

Nu ma pricep f bine la prima varianta dar am gasit pe internet un cod care preia valorile BNR si le reda. Daca aceste valori pot fi redate intr-un XML asemenator prestashop presupun ca apoi pot fi preluate de actualizarea automata.

 

Sunt doar niste idei.. orice ajutor e binevenit.

Edited by Vantalk (see edit history)
Link to comment
Share on other sites

Modificarile au constat in:

1.

if (!$feed = Tools::simplexml_load_file('http://www.bnr.ro/nbrfxrates.xml'))

Am inlocuit linkul prestashopului cu cel al XML-ului BNR ce contine cursurile.

 

2.

 $isoCodeSource = strval($feed->Body->OrigCurrency);

Pur si simplu obtine valoarea "RON" din XML-ul BNR (puteam scrie la fel de bine = 'RON', dar am pastrat modeulul). Partea aceasta e important pentru calculele privind conversia valutelor.

! Atentie la literele mari, conteaza! (ex. Body trebuie scris cu B mare) La fel si mai jos!

 

3.

$currency->refreshCurrency($feed->Body->Cube, $isoCodeSource, $default_currency);

la partea cu feed este trecuta navigarea corecta pentru listarea monezilor din XML-ul BNR.

 

4. In functia refreshCurrency

  foreach ($data->Rate as $currency)

currency este inlocuit in XML-ul BNR cu "Rate"

 

5.

if ($currency['currency'] == $defaultCurrency->iso_code)

iso_code este inlocuit cu 'currency'

 

6.

$conversion_rate = round((float)$currency, 6);

dupa currency nu mai este trecut ['rate'] deoarece valoarea se regaseste intre tagurile de inceput si sfarsit, si nu in atributele unui tag.

 

7.

foreach ($data->Rate as $obj)
 if ($this->iso_code == strval($obj['currency']))
 {
  $rate = (float)$obj;
  break;
 }

Aici se aplica ca si la cele de mai sus Rate in loc de currency, currency in loc de iso_code si se elimina ['rate'] dupa object.

 

8.

$this->conversion_rate = round($conversion_rate / $rate , 6);

 

Sunt inversate pozitiile celor doua variabile deoarece acum este luat RON ca reper in calcule si nu EURO.

 

Cam atat, daca nu am explicat ceva indeajuns de clar e poate ora de vina. Lasati mesaj daca apar probleme, o sa verific threadul cateva zile.

Edited by Vantalk (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 3 months later...

Modificarile au constat in:

1.

if (!$feed = Tools::simplexml_load_file('http://www.bnr.ro/nbrfxrates.xml'))

Am inlocuit linkul prestashopului cu cel al XML-ului BNR ce contine cursurile.

 

2.

 $isoCodeSource = strval($feed->Body->OrigCurrency);

Pur si simplu obtine valoarea "RON" din XML-ul BNR (puteam scrie la fel de bine = 'RON', dar am pastrat modeulul). Partea aceasta e important pentru calculele privind conversia valutelor.

! Atentie la literele mari, conteaza! (ex. Body trebuie scris cu B mare) La fel si mai jos!

 

3.

$currency->refreshCurrency($feed->Body->Cube, $isoCodeSource, $default_currency);

la partea cu feed este trecuta navigarea corecta pentru listarea monezilor din XML-ul BNR.

 

4. In functia refreshCurrency

  foreach ($data->Rate as $currency)

currency este inlocuit in XML-ul BNR cu "Rate"

 

5.

if ($currency['currency'] == $defaultCurrency->iso_code)

iso_code este inlocuit cu 'currency'

 

6.

$conversion_rate = round((float)$currency, 6);

dupa currency nu mai este trecut ['rate'] deoarece valoarea se regaseste intre tagurile de inceput si sfarsit, si nu in atributele unui tag.

 

7.

foreach ($data->Rate as $obj)
 if ($this->iso_code == strval($obj['currency']))
 {
  $rate = (float)$obj;
  break;
 }

Aici se aplica ca si la cele de mai sus Rate in loc de currency, currency in loc de iso_code si se elimina ['rate'] dupa object.

 

8.

$this->conversion_rate = round($conversion_rate / $rate , 6);

 

Sunt inversate pozitiile celor doua variabile deoarece acum este luat RON ca reper in calcule si nu EURO.

 

Cam atat, daca nu am explicat ceva indeajuns de clar e poate ora de vina. Lasati mesaj daca apar probleme, o sa verific threadul cateva zile.

 

Am facut toate modificarile si merge perfect. Insa trebuie sa-l actualizez manual.

 

Cum fac sa se actualizeze singur la ora 14.15 p.m ?

 

P.S.: Varianta mea de prestashop este 1.5.4

Edited by longip (see edit history)
  • Like 1
Link to comment
Share on other sites

Este scris mai la inceputul topicului despre actulizarea automata. Se face prin crontab.. am scris si eu asta in postul de pe 03 January 2013 - 01:35 PM din topicul asta:

 

1. Instalez modulul Crontab

2. Configurare: Shop traffic si adaug URL-ul din Location->Currencies.

 

Ca si adaos la ce am scris, tin minte ca trebuie sa si setezi crontabul sa ruleze la un interval selectat de tine. (Se rezolva simplu din sectiunea Modules si ii dai configurare)

Edited by Vantalk (see edit history)
Link to comment
Share on other sites

  • 7 months later...

am reusit sa fac sa-mi ia cursul in BO, sa vad daca se schimba automat la 14.00;

acum cum se poate face sa-mi apara preturile pe site NUMAI in RON, iar in BO sa pot sa folosesc si usd, si eur si lei la preturile de intrare? daca trec ca moneda default usd, atunci la rata de schimb imi apare ron 1, usd 1, eur 4.xxxx!

multumim frumos!

Link to comment
Share on other sites

REZOLVAT!

Actualizarea la valuta o fac manual (cu modificarile de mai sus), si cu ajutorul lui  valentin.g , care a realizat  un modul, s-a rezolvat si treaba cu valute multiple in BO: cand bagi un produs, ii pui pretul care il ai de la distribuitor , IN ORICE VALUTA aveti nevoie, iar pe site apar numai in lei (asa am vrut eu) ;se poate schimba moneda implicita din FO!.

Luati legatura cu valentin, o sa gasiti tot sprijinul necesar! multumesc frumos Vali !!!

Link to comment
Share on other sites

×
×
  • Create New...