Jump to content
NexusFred

Afficher les prix en euros et en dollars en meme temps ?

Recommended Posts

Bonjour !!

Je cherche a afficher les prix de la boutique a la fois en Euro et en Dollars !!
En sachant que la boutique est par defaut en Euro et que les payements ne se feront qu'en euros.
Les dollars ne seraient affiché qu'a titre d'information.

J'ai chercher un peu partout dans Tools.php, Product.php et product.tpl et j'ai pas trouver la solution.

Le truc génial serait de trouver comment modifier ce truc

{convertPrice price=$product->getPrice(true, $smarty.const.NULL, 2)}

En changeant $smarty->ps_currency->id ca marche pas.
En changeant $currency->id ca change pas non plus car en faite $currency->conversion_rate ne change pas ?



Quelqu'un aurait une idée ?

Share this post


Link to post
Share on other sites

Bonjour,

Peut-être une piste car il existe un fonction équivalente disponible depuis smarty

déclarée dans le init.php :

$smarty->register_function('convertPriceWithoutDisplay', array('Product', 'productPriceWithoutDisplay'));



et qui fait référence au traitement de la fonction de la classe Product.php :

   static function convertPriceWithCurrency($params, &$smarty)
   {
       if (!isset($params['convert']))
           $params['convert'] = true;
       return Tools::displayPrice($params['price'], $params['currency'], false, $params['convert']);
   }



Elle même retourne une valeur traitée par la fonction displayPrice de la classe Tools.

Sans aucun essai, je suppose qu'en rajoutant une ligne du type :
{convertPriceWithCurrency price=LE PRIX currency=LA DEVISE}
tu pourrais arriver à afficher où tu veux la valeur en fonction de la devise de ton choix !

Maintenant ça ne reste qu'une supposition et je n'ai pas testé !

A+

Share this post


Link to post
Share on other sites

Merci !!!

J'ai fini par trouver quelque chose

{convertPriceWithCurrency price=$product->getPrice(true, $smarty.const.NULL, 2) currency=$currencies.0}



Faut que je test encore ce code pour voir si il bug pas en cours de route mais normalement ca devrait tenir.

Share this post


Link to post
Share on other sites

Hello,

Fred tu peux nous faire un retour ou tu n'as pas eu l'occasion de tester ?

Share this post


Link to post
Share on other sites

Salut Big Steve

Je ne peux pas encore, la boutique n'est pas encore en ligne.

Mais sinon je teste depuis quelque temps et cela fonctionne bien (enfin jusqu'à maintenant) lol

Je posterais l'adresse de la boutique quand elle sera terminé et surtout si le propriétaire est d'accord.


A++ Nexus

Share this post


Link to post
Share on other sites

Bon petite mise à jour !!

Le code

convertPriceWithCurrency price=$product->getPrice(true, $smarty.const.NULL, 2) currency=$currencies.0



avec la version 1.3.1.1 cela ne fonctionne plus !! Sniff


La conversion ne se fait pas, par contre cela affiche le prix dans la monnaie par défaut avec le symbol de la monnaie dans la quelle on a voulu faire la conversion !! Suis je clair ? !!

Exemple prix de l'objet 100,00 €
Résultat du code $100.00


Quelqu'un aurait une idée de ce qui a changer entre la 1.2.5 et la 1.3.1.1 ???

HELPPPPPPPPPPPPP lol

Share this post


Link to post
Share on other sites

Je suis en utilisant le module PaySiteCash pour les paiements non-euro, et j'ai le même problème
Quand quelqu'un acheter quelque chose dans Lei la valeur est envoyée correctement, mais la monnaie est envoyé tort 100 lei => 100 euros au lieu de 100 lei => 23,80 euros. J'ai eu à faire rétrograder parce que je ne pouvais pas utiliser l'option de carte credit (Google translate)
Help! :-)

Share this post


Link to post
Share on other sites

Bon j'ai trouvé ce qui a changé

Dans le fichier Tools.php de la version 1.2.50 il ya cette fonction

Ligne 172

static public function displayPrice($price, $currency, $no_utf8 = false, $convert = true)
/* if you modified this function, don't forget to modify the Javascript function formatCurrency (in tools.js) */
       if ($convert)
           $price = self::convertPrice($price, $currency);
....




Alors que dans la version 1.3.10 la même fonction a changée

Ligne 214 :

static public function displayPrice($price, $currency = NULL, $no_utf8 = false)
   {
       if ($currency === NULL)
           $currency = Currency::getCurrent();
...




On peu remarquer que la variable $convert ne si trouve plus de meme que la condition de traitement if ($convert).

En modifiant la fonction displayPrice comme cela

   static public function displayPrice($price, $currency = NULL, $no_utf8 = false, $convert)
   {
       if ($convert)
           $price = self::convertPrice($price, $currency);
       if ($currency === NULL)
           $currency = Currency::getCurrent();
...




Ensuite dans product.tpl on utilise ce code

{convertPriceWithCurrency price=$product->getPrice(true, $smarty.const.NULL, 2) currency=$currencies.0 convert=true}



Tout fonctionne normalement à nouveau!!

Ce que j'espère c'est que cela ne pose pas de problème autre part.

Share this post


Link to post
Share on other sites

Bonsoir,

J'ai réussi à afficher les 2 devises sur la page produit mais j'aimerai les afficher dans product-list mais là je bloque.

Est-ce que quelqu'un peut m'aider ?

{if $product.reduction_percent != 0}(-{$product.reduction_percent}%){/if}
{if $product.reduction_price != 0}{displayWtPricep=$product.price_without_reduction}{/if}
{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}



Merci d'avance !

Vincent

Share this post


Link to post
Share on other sites

Salut !!

tu met cette ligne ou tu veux que le prix s'affiche en dollars

{convertPriceWithCurrency price=$product.price currency=$currencies.0 convert=true}



tu peux encadrer ce code d'un if si tu veux juste afficher les $ quand les pages ne sont pas en français.

{if $lang_iso != fr} xxxx {/if}

Share this post


Link to post
Share on other sites

ça fonctionne :) mille mercis !

juste pour info, est-ce que ça été testé avec la 1.4 ?

Share this post


Link to post
Share on other sites

Non j'ai pas testé avec la 1.4.

A mon avis tout doit fonctionner à condition de ne pas oublier d'éditer la fonction "displayPrice" dans le fichier Tools.php.

Share this post


Link to post
Share on other sites

Voilà une bonne nouvelle.

Merci pour le test.

PS(par contre si c'est pour ton site "www.skye-shop.fr" je viens de voir que le second prix a euro comme symbole monétaire)

Share this post


Link to post
Share on other sites

Effectivement j'ai un petit bug sur certain ordinateur. Tu avais € pour les 2 ?
La monnaie par défaut dans le back office est le £. Dans le Front l'£ devrait être la principale et l'€ pour information mais ça ne fonctionne pas toujours.
Y a-til un moyen pour forcer une monnaie (qui aurait le même effet que lorsque l'on sélectionne une devise via le bloc) ?

Par contre j'ai découvert un bug: si une déclinaison a une incidence sur le prix, la monnaie principale est mise à jour mais pas la deuxième :( as-tu une idée ?

merci pour ton aide et bonne soirée

Share this post


Link to post
Share on other sites

Oui j'avais € pour les deux prix.

Par contre pour les déclinaison je pense qu'il faut modifier le javascript. Je pense que c'est tout a fait possible a faire mais j'avoue ne pas trop avoir le temps en ce moment pour regarder cela.

Share this post


Link to post
Share on other sites

Bonjour, 

 

Je voulais savoir si cette méthode est toujours d'actualité sur la version 1.6 ?

 

Quelqu'un l'a t-il testé ?

 

En vous remerciant par avance pour votre réponse. 

Share this post


Link to post
Share on other sites

Bonjour, 

 

Je voulais savoir si cette méthode est toujours d'actualité sur la version 1.6 ?

 

Quelqu'un l'a t-il testé ?

 

En vous remerciant par avance pour votre réponse. 

 

SI qqn sait pour 1.6 je suis preneur, la modification affiche la même valeur en eur ou en dollars qlors que ca ne devrait pas avec la modi ci-dessus...

Share this post


Link to post
Share on other sites

Bonjour,

 

perso j'ai pris le temps de développer un module qui permet, outre le fait d'afficher le prix dans plusieurs monnaies ne même temps sur la fiche produit, de faire évoluer le prix total en temps réel lorsque le client augmente la quantité sur la fiche produit.

 

http://www.prestatoolbox.fr/fonctionnalites-front-office/400-calcul-de-prix-par-quantite-multi-devise.html

Share this post


Link to post
Share on other sites

Bonjour,

 

perso j'ai pris le temps de développer un module qui permet, outre le fait d'afficher le prix dans plusieurs monnaies ne même temps sur la fiche produit, de faire évoluer le prix total en temps réel lorsque le client augmente la quantité sur la fiche produit.

 

http://www.prestatoolbox.fr/fonctionnalites-front-office/400-calcul-de-prix-par-quantite-multi-devise.html

 

C'est cool merci, mais j'ai juste besoins de comprendre comment je peux ajouter une prix spécifique en dollars en plus de mon prix en euro. J'y arrive sans problème lorsque ce n'est pas un prix spécifique mais une conversion... Par contre prix spécifique... Mystère

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More