SamXIV Posted June 10, 2013 Share Posted June 10, 2013 (edited) Bonjour, A défaut d'avoir trouvé une réponse sur le net, j'ai recours à vous. Ce que je cherche à faire est assez simple à expliquer et je m'étonne de ne pas pouvoir le faire facilement dans prestashop (à moins d'avoir mal regardé ?). J'aimerais qu'on ne puisse passer de commande que dans la devise du pays où le visiteur se trouve. C'est à dire que j'ai des prix dans deux devises qui ne sont pas le fruit d'un ratio, mais ce sont bien deux prix différent plus avantageux dans une devise que dans l'autre. J'aimerais qu'au final, en france seul l'achat en euros soit possible. On peut restreinte deux modules de paiement différents selon la devise mais je serai amené à utiliser le meme module de paiement. Un réglage est aussi disponible au niveau des groupes d'utilisateurs, mais ca ne réponds pas à mon besoin. Je n'ai rien concernant une restriction pays -> devise. Version 1.5.4.1. Une idée ? Je vous en remercie d'avance. Edited June 10, 2013 by SamXIV (see edit history) Link to comment Share on other sites More sharing options...
SamXIV Posted June 10, 2013 Author Share Posted June 10, 2013 (edited) J'ai mené mon petit bout de chemin, voici deux solutions. Si qqn voit une faiblesse dans mon système (pour sûr il y en a ), je lui serait grandement reconnaissant de les pointer J'ai tout d'abord trouvé ce lien (mais je n'ai pas utilisé cette technique) : http://www.prestasho...nction-du-pays/ Pour ma part, j'ai simplement surchargé la méthode FrontController->init() ainsi : public function init() { parent::init(); // si l'utilisateur est connecté, on force les CHF pour les suisses et l'EUR pour tous les autres if( isset($this->context->customer->id) ) { if( $this->context->country->id == 19 ) // le 19 est l'id de la suisse { // le 1 est l'id de la devise CHF $this->context->smarty->assign('forced_currency', 1); // assignation à smarty pour le module bloccurrencies $this->context->currency = new Currency( 1 ); $this->context->cart->id_currency = 1; } else { // le 2 est l'id de la devise EUR $this->context->smarty->assign('forced_currency', 2); // assignation à smarty pour le module bloccurrencies $this->context->currency = new Currency( 2 ); $this->context->cart->id_currency = 2 ; } } } Et ensuite mon /modules/blockcurrencies/blockcurrencies.tpl : {if !isset($forced_currency) } <!-- si on a forcé la devise, alors le visiteur ne peux plus choisir la devise --> <form id="setCurrency" action="{$request_uri}" method="post"> {foreach from=$currencies key=k item=f_currency} <a class="devise {if $id_currency_cookie == $f_currency.id_currency} deviseCourante{/if}" href="javascript:setCurrency({$f_currency.id_currency});" title="{$f_currency.name}">{$f_currency.iso_code}</a> {/foreach} <input type="hidden" name="id_currency" id="id_currency" value=""/> <input type="hidden" name="SubmitCurrency" value="" /> </form> {/if} Edited June 10, 2013 by SamXIV (see edit history) Link to comment Share on other sites More sharing options...
AndyAAZ Posted October 2, 2013 Share Posted October 2, 2013 Bonjour, Avec prestashop 1.5.5 et la géolocalisation activée, la devise s'ajuste de façon automatique par pays. Une fois le pack importé pour l'Argentine, la devise locale s'affiche. J'ai aussi forcé la devise pour avoir un dollar argentin avec un taux de conversion faux pour absorber les taxes d'importation, j'ai donc des prix majorés. Par contre j'ai voulu appliquer ce dollar majoré pour toute l'Amérique latine et bien que j'ai choisi cette devise pour chaque pays, la devise qui s'affiche dans un deuxième pays d'Amérique est l'euro. Vraisemblablement si l'on n'importe pas le pack du pays la devise par défaut reste l'euro. Je n'arrive pas encore à la gérer à 100% la localisation. Si vous avez des pistes sont les bienvenues. Bonne journée Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now