smonnard Posted June 5, 2013 Share Posted June 5, 2013 Bonjour à tous, J'ai commencé à utiliser prestashop en novembre 2012 et j'ai toujours trouvé mes réponses dans ce forum. Mais depuis dimanche, je bloque sur un problème dont les réponses ne m'ont pas apportées de solution. Du coup, j'ai décidé de m'inscrire et en cherchant la réponse à mon problème j'ai trouvé quelques pistes et posté quelques réponses ou plutôt début de réponses dans d'autres posts. Affichage automatique d'une déclinaison de produit Sur le template de base de Prestashop 1.5.4.1 (front-end), lorsqu'on change de déclinaison dans la liste déroulante d'un produit, le prix se met automatiquement à jour. Sur le template que j'ai récemment acheté, le changement automatique ne se fait pas. J'ai contacté le vendeur du template en question et il m'a répondu que ce n'était pas une fonctionnalité faisant partie de son template. Du coup, je me demande comment modifier le code pour obtenir cette même fonctionnalité. Mes connaissances sont assez sommaires mais voici un début de piste : Le bloc div "product_attributes" renvoie des valeurs à l'adresse de la page sous la forme : index.php?id_product=94&controller=product[b]#/evo_prime_led_barre-xil_ep1020_20[/b] <div class="product_attributes"> <div id="attributes"> <div class="clear"></div> <fieldset class="attribute_fieldset"> <label class="attribute_label" for="group_7">EVO PRIME LED BARRE : </label> <div class="attribute_list"> <select id="group_7" class="attribute_select" onchange="findCombination();getProductAttribute();" name="group_7"> <option value="151" title="XIL-EP420 20°">XIL-EP420 20°</option> <option value="139" title="XIL-EP1020 20°">[b]XIL-EP1020 20°[/b]</option> </select> </div> </fieldset> </div> J'imagine alors bien qu'un code javascript s'occupe de mettre à jour automatique le prix. Mais comme dit précedemment je sais comment ça fonctionne dans les grandes lignes, mais pas davantage. Je vous remercie pour toute aide à dénicher le fameux code derrière ce fonctionnement :-) ! Link to comment Share on other sites More sharing options...
smonnard Posted June 5, 2013 Author Share Posted June 5, 2013 (edited) J'ai continué mes recherches et j'ai une nouvelle piste. En remplaçant le code product.tpl du nouveau thème par celui du thème par défaut de prestashop, mon prix change en fonction de la déclinaison choisie. Par contre (ce qui est logique), la mise en page change également. Le nouveau template qui ne prend pas en charge le changement de prix de la déclinaison : Le nouveau template avec le product.tpl du template par défaut de prestashop qui prend en charge le changement de prix de la déclinaison : Donc ma conclusion est que cela ne se passe pas au niveau du code javascript mais du php du fichier product.tpl Reste à savoi où :-) ! Edited June 5, 2013 by smonnard (see edit history) Link to comment Share on other sites More sharing options...
smonnard Posted June 5, 2013 Author Share Posted June 5, 2013 (edited) J'ai enfin trouvé un début solution temporaire pour modifier le nouveau template. Dans le template officiel (ou par défaut de prestashop) on a <span id="our_price_display"> : <div class="price"> <p id="our_price_display"> {if $priceDisplay >= 0 && $priceDisplay <= 2} <span id="our_price_display">{convertPrice price=$productPrice}</span> <!--{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if}--> {/if} </p> Hors sur le template que j'ai acheté il est écrit ainsi <span class="our_price_display price"> : <div class="price"> <p class="our_price_display"> {if $priceDisplay >= 0 && $priceDisplay <= 2} <span class="our_price_display price">{convertPrice price=$productPrice}</span> <!--{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if}--> {/if} </p> Je constate également que le code de ce "nouveau template" a été mis à jour en 2012... Cela m'invite à comprendre le label "Attesté par Prestashop". A suivre pour cet apparté. La solution. Il d'ajouter l'id our_price_display en plus de la class our_price display et price. <div class="price"> <p class="our_price_display"> {if $priceDisplay >= 0 && $priceDisplay <= 2} <span [color=#b22222][b]id="our_price_display"[/b][/color] class="our_price_display price">{convertPrice price=$productPrice}</span> <!--{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if}--> {/if} </p> Même si cela est résolu, je me demande où se trouve ID our_price_display ? Edited June 5, 2013 by smonnard (see edit history) Link to comment Share on other sites More sharing options...
taoufiqaitali Posted June 12, 2013 Share Posted June 12, 2013 Bonjour le script jquery qui fait la mise a jour au prix exist dans le fichier product.js votre theme>js>product.js Link to comment Share on other sites More sharing options...
hbboy Posted April 7, 2014 Share Posted April 7, 2014 Bonjour, Est-il possible d'avoir la même fonctionnalité native de la page product au niveau de la page product-list ? C'est-à-dire qu'en fonction des choix fait via le filtre, qu'on puisse afficher le prix de la déclinaison correspondante et non pas celle par défaut Merci 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