Superbegood31 Posted April 24, 2013 Share Posted April 24, 2013 (edited) Bonjour à tous, J'ai mis en place sur mes fiches produits des petits boutons (+ et -) à la place du seul input pour gérer les quantités. Jusqu'ici tout va bien ! Mais je souhaiterai que mes prix (our_price_display et old_price_display) se mettent à jour automatiquement lorsque l'internaute clique sur le + ou le - Merci d'avance pour vos retours Edited April 24, 2013 by SWITCHBOARD (see edit history) Link to comment Share on other sites More sharing options...
Yaku Posted April 24, 2013 Share Posted April 24, 2013 Bonjour, Ca ne va peut être pas t'être d'une grande aide ce que je vais dire mais peut être devrais tu repérer la fonction Ajax qui fait la même chose dans le panier? Il te faudra utiliser quelque chose de très similaire dans ta fiche produit pour faire ce que tu veux. Link to comment Share on other sites More sharing options...
Superbegood31 Posted April 24, 2013 Author Share Posted April 24, 2013 Merci de votre retour. Je suis déjà en train de batailler avec cette fonction (dans le panier), car lorsque l'on ajoute ou enlève une quantité le prix ne se met pas à jour... Link to comment Share on other sites More sharing options...
Yaku Posted April 24, 2013 Share Posted April 24, 2013 Quelle est la version de votre presta? Dans le panier, rien ne change? Ou bien le prix total par produit change mais pas le prix unitaire? Car ici, en 1.5.3, cela fonctionne correctement dans le panier sauf si mon produit a des prix spécifiques. Dans ce cas, quand je diminue ou augmente la quantité, le prix unitaire ne change pas selon les règles définient par les prix spécifiques. J'ai ouvert un sujet là dessus sur le forum mais je n'ai pas eu de retour pour le moment. Link to comment Share on other sites More sharing options...
Superbegood31 Posted April 24, 2013 Author Share Posted April 24, 2013 PS 1.5.0.17 Avant mon intervention, seul la quantité changeait. J'ai rajouter un reload en javascript pour recharger la page en même temps et cela fonctionne (en attendant de trouver mieux). J'ai également des prix spécifiques (règles catalogue + prix dégressifs) Link to comment Share on other sites More sharing options...
Yaku Posted April 24, 2013 Share Posted April 24, 2013 Arf.... Désolée mais j'ai déjà cherché un bon bout de temps pour notre cas et je n'ai pas trouvé de meilleure solution que la tienne. Lien vers le sujet que j'ai créé au cas où il y aurait une réponse qui puisse t'être également utile : http://www.prestashop.com/forums/topic/241364-probleme-prix-specifiques-et-ajax-dans-panier/ Link to comment Share on other sites More sharing options...
Superbegood31 Posted April 24, 2013 Author Share Posted April 24, 2013 Continuons de chercher. Merci pour ta contribution en tous cas ! Link to comment Share on other sites More sharing options...
Superbegood31 Posted April 25, 2013 Author Share Posted April 25, 2013 Bonjour à tous, J'avance mais la solution n'est pas fonctionnelle en l'état... Voici mes bouts de code : product.tpl (la partie quantité avec les boutons + et - ) <!-- quantity wanted --> <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) OR $virtual OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}> <label>{l s='Quantity :'}</label> <span class="btn-qty"><a href="#" class="btn-down">-</a></span> <input type="text" name="qty" id="quantity_wanted" onchange="javascript:{if !isset($groups)}updateDisplay(){else}updatePrice(){/if};" class="text" style="width:20px; text-align:center" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" size="2" maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if} /> <span class="btn-qty"><a href="#" class="btn-up">+</a></span> </p> product.js (la partie qui est censée calculer le prix dynamiquement) //update price function updatePrice() { var tax = (taxRate / 100) + 1; var taxExclPrice = (specific_price ? (specific_currency ? specific_price : specific_price * currencyRate) : productPriceTaxExcluded); if (specific_price) var productPriceWithoutReduction = productPriceTaxExcluded * currencyRate; if (!displayPrice && !noTaxForThisProduct) { var productPrice = ps_round(taxExclPrice * tax, 2); if (specific_price) productPriceWithoutReduction = ps_round(productPriceWithoutReduction * tax, 2); } else { var productPrice = ps_round(taxExclPrice, 2); if (specific_price) productPriceWithoutReduction = ps_round(productPriceWithoutReduction, 2); } var reduction = 0; if (reduction_price || reduction_percent) { reduction = productPrice * (parseFloat(reduction_percent) / 100) + reduction_price; if (reduction_price && (displayPrice || noTaxForThisProduct)) reduction = reduction / tax; } if (!specific_price) productPriceWithoutReduction = productPrice; productPrice -= reduction; //get quantity var quantity_wanted = document.getElementById("quantity_wanted").value; var normal_price = productPriceWithoutReduction * parseInt(quantity_wanted); var new_price = productPrice * parseInt(quantity_wanted); $('#our_price_display').text(formatCurrency(new_price, currencyFormat, currencySign, currencyBlank)); $('#old_price_display').text(formatCurrency(normal_price, currencyFormat, currencySign, currencyBlank)); } footer.tpl (pour le script des boutons) <!-- on affiche le script uniquement si l'on se trouve sur la page produit --> {if $page_name eq 'product'} {literal} <script type="text/javascript">// <![CDATA[ $(document).ready(function() { var btn = $(".btn-qty a"); //on affiche les boutons +/- $(btn).css('display','block'); $(btn).click(function() { var $button = $(this); var input_qtity = $('#quantity_wanted'); var qty_value=$(input_qtity).val(); var qty_min=parseFloat($('#minimal_quantity_label').html()); var qty_min_p = $('#minimal_quantity_wanted_p'); //on vérifie si le le produit ou la combinaison a une quantité minimum de commande if($('#minimal_quantity_wanted_p').is(':hidden')){ var min=false; } else { var min=true; } //si le btn a la class btn-up, on est sur le btn + if ($button.hasClass('btn-up')) { var newVal = parseFloat(qty_value) + 1; $(input_qtity).val(newVal); $(qty_min_p).css('color',''); $(input_qtity).css('border', ''); } else { //btn - //condition pour vérifier que le champ est >= 1 if (qty_value - 1 >= 1) { //minimum de commande et qtité >= mini de commande if (min=true && qty_value - 1 >= qty_min) { var newVal = parseFloat(qty_value) - 1; $(input_qtity).val(newVal); $(qty_min_p).css('color',''); $(input_qtity).css('border', ''); } // qtité <= mini de commande else if(min=true && qty_value - 1 <= qty_min) { $(qty_min_p).css('color','red'); $(input_qtity).css('border', '1px solid red'); } } } return false; }); }); // ]]></script> {/literal} {/if} Si avec ces éléments, une âme charitable pouvait me débugger la chose... Link to comment Share on other sites More sharing options...
Superbegood31 Posted April 26, 2013 Author Share Posted April 26, 2013 un petit up Link to comment Share on other sites More sharing options...
Ceubex Posted January 26, 2014 Share Posted January 26, 2014 Ce problème m'intéresse fortement. Personne ne sait ? 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