Jump to content

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 ?

Link to comment
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+

Link to comment
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.

Link to comment
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

Link to comment
Share on other sites

  • 2 months later...

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

Link to comment
Share on other sites

  • 2 weeks later...

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! :-)

Link to comment
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.

Link to comment
Share on other sites

  • 3 months later...

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

Link to comment
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}

Link to comment
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

Link to comment
Share on other sites

  • 5 years later...
  • 2 months later...

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...

Link to comment
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

Link to comment
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

Link to comment
Share on other sites

  • 4 years later...

Bonjour,

après ajouter ce code (pres V1.6.1.12 )

dans Tools.php 

if ($context) {
           $price = self::convertPrice($price, $currency);
        }

et dans product.tpl

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

 

j'ai réussir d'afficher des devise en même temps Mais ..

142DT  €46

quand j'ouvrir le site en euro, le prix n'est pas €46 ... il est  €14

Comment je peux garder le prix en euro €46 !!

 

Link to comment
Share on other sites

1 hour ago, walidkira said:

Bonjour,

après ajouter ce code (pres V1.6.1.12 )

dans Tools.php 

if ($context) {
           $price = self::convertPrice($price, $currency);
        }

et dans product.tpl

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

 

j'ai réussir d'afficher des devise en même temps Mais ..

142DT  €46

quand j'ouvrir le site en euro, le prix n'est pas €46 ... il est  €14

Comment je peux garder le prix en euro €46 !!

 

 

DT.PNG

EURO.PNG

Link to comment
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...