Serial Posted September 25, 2015 Share Posted September 25, 2015 Bonjour, J'ai ajouté une nouvelle colonne dans le panier (cf. voir image CoupeCart.png). Dans shopping-cart-product-line.tpl : <!-- Coupe de tissus --> {if $product.id_category_default != 99 && $product.id_category_default != 100 && $current_step != 'payment'} <td class="coupe_tissus" data-title="{l s='Coupe'}"> <input class="coupe_select" type="checkbox" value="no" name="checkbox_coupe_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}">Coupe</input> <div class="param_coupe {$icpClass}" name="param_coupe_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}"> <div class="coupe-content"><input id="nb_pieces" type="text" value="{$product.cart_quantity}" name="pieces_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" style="width:40px;"/> pièce(s) x <input id="nb_metres" type="text" name="metres_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" style="width:40px;" disabled /> m</div> <input class="bouton_calculer" type="button" value="Calculer" /> </div> </td> {else $product.id_category_default == 99 || $product.id_category_default == 100 && $current_step != 'payment'} <td class="coupe_tissus" data-title="{l s='Coupe'}"></td> {/if} <!-- Jusqu'ici --> Dans cart-summary.js, j'ai crée une fonction pour calculer ma nouvelle valeur quand le client clique sur "Calculer". // Par défaut, on cache les div pour la coupe [].slice.call(document.querySelectorAll(".param_coupe")).forEach(function(_node){ _node.style.display='none'; }); // Au changement d'une checkbox "Coupe" $('.coupe_select').change('click', function(e){ e.preventDefault(); var icp = ppCart.getIcp($(this)); if ($('.coupe_select' + ppCart.getIcpSelector(icp)).attr('checked')) { $('div.param_coupe' + ppCart.getIcpSelector(icp)).show('slow'); } else { $('div.param_coupe' + ppCart.getIcpSelector(icp)).hide('slow'); } } ); // Lors du clic sur le bouton Calculer $('.bouton_calculer').on('click', function(e){ e.preventDefault(); var icp = ppCart.getIcp($(this)); // On relève le numéro de la ligne var pieces = $("input#nb_pieces" + ppCart.getIcpSelector(icp)).val(); // On récupère le nombre de pièces de la ligne (par défaut : 1) var quantite = $('input.cart_quantity_input' + ppCart.getIcpSelector(icp)).val().replace(",","."); // On récupère la quantité // On appelle la fonction CalculCoupe avec les valeurs de la ligne du produit. CalculCoupe(pieces,quantite,icp); } ); function CalculCoupe(pieces, quantite, icp) { // Conversion des chaînes en tant que nombre pour pouvoir faire la division pieces = parseInt(pieces); quantite = parseFloat(quantite); // Déclaration d'une variable metres résultant de la division // On vérifie sir le chiffre contient plus de 3 chiffres après la virgule // Si c'est le cas, on fixe à 3 chiffres après la virgule // Puis on affiche le nombre de mètres dans la case var metres = quantite / pieces; if (metres.toString().split(".")[1].length > 3) { metres = metres.toFixed(3); } $('input#nb_metres' + ppCart.getIcpSelector(icp)).val(metres); } Maintenant, je veux sauvegarder dans une variable la chaîne suivante : $maVariable = pieces + "x" + metres pour chaque produits du panier. Ensuite, je veux sauvegarder cette variable dans la table order_detail pour chaque produits aussi. Merci à ceux qui me donneront un coup de main ! Link to comment Share on other sites More sharing options...
Serial Posted September 28, 2015 Author Share Posted September 28, 2015 Quelqu'un a une solution ? 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