ruisonika Posted May 8, 2020 Share Posted May 8, 2020 hello guys, I'm using prestashop 1.6, and i'm trying to goal this: - in product list i created a add quantities buttons <!------------------------ quantity wanted ----------------------------------------------> {if !$PS_CATALOG_MODE} <p class="quantity_wanted_p_"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: block;"{/if}> <!-- <label>{l s='Quantity'}</label> --> <a class="btn button-minus product_quantity_down decrement_qty" data-field-qty="{$product.minimal_quantity}"> <span><i class="icon-minus"></i></span> </a> <input type="number" min="1" name="qty" id="quantity_wanted_{$product.id_product|intval}" class="text inputqtyfield" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product.minimal_quantity > 1}{$product.minimal_quantity}{else}1{/if}{/if}" /> <span class="minQty" style="display:none;">{$product.minimal_quantity}</span> <a class="btn button-plus product_quantity_up increment_qty"> <span><i class="icon-plus"></i></span> </a> <span class="clearfix"></span> </p> {/if} - in global js file i created this to the + and - work /////quantities in default product list jQuery(document).ready(function(){ jQuery('.increment_qty').click(function() { var oldVal = jQuery(this).parent().find("input").val(); if ( parseFloat(oldVal) >= 0 ) { var newVal = parseFloat(oldVal) + 1; jQuery(this).parent().find("input").val(newVal); } console.log(oldVal); console.log(newVal); console.log(minQty); }); jQuery('.decrement_qty').click(function() { var oldVal = jQuery(this).parent().find("input").val(); if ( parseFloat(oldVal) >= 1 ) { var newVal = parseFloat(oldVal) - 1; jQuery(this).parent().find("input").val(newVal); } }); }); and all works well, but now i wanna increase or decrease with minimal quantity instead of 1, so if the product has 10 of minimal buy when the customer click on + button the result is 20, another click 30 and so on...but i cant get the minimal quantity in this file global.js, any ideias how to achive this? Link to comment Share on other sites More sharing options...
EvaF Posted May 8, 2020 Share Posted May 8, 2020 <!------------------------ quantity wanted ----------------------------------------------> {if !$PS_CATALOG_MODE} <p class="quantity_wanted_p_"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: block;"{/if}> <!-- <label>{l s='Quantity'}</label> --> <a class="btn button-minus product_quantity_down decrement_qty" data-field-qty="{$product.minimal_quantity}"> <span><i class="icon-minus"></i></span> </a> <!-- change the min --> <input type="number" min="{$product.minimal_quantity}" name="qty" id="quantity_wanted_{$product.id_product|intval}" class="text inputqtyfield" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product.minimal_quantity > 1}{$product.minimal_quantity}{else}1{/if}{/if}" /> <span class="minQty" style="display:none;">{$product.minimal_quantity}</span> <a class="btn button-plus product_quantity_up increment_qty"> <span><i class="icon-plus"></i></span> </a> <span class="clearfix"></span> </p> {/if} ////quantities in default product list jQuery(document).ready(function(){ jQuery('.increment_qty').click(function() { var oldVal = jQuery(this).parent().find("input").val(); var minQty = jQuery(this).parent().find("input").attr('min'); minQty = (typeod minQty !== 'undefined' ) ? parseFloat(minQty) : 1; if ( parseFloat(oldVal) >= 0 ) { var newVal = parseFloat(oldVal) + minQty; jQuery(this).parent().find("input").val(newVal); } console.log(oldVal); console.log(newVal); console.log(minQty); }); jQuery('.decrement_qty').click(function() { var minQty = jQuery(this).parent().find("input").attr('min'); minQty = (typeod minQty !== 'undefined' ) ? parseFloat(minQty) : 1; var oldVal = jQuery(this).parent().find("input").val(); if ( parseFloat(oldVal) >= minQty ) { var newVal = parseFloat(oldVal) - minQty >= minQty ? parseFloat(oldVal) - minQty : minQty; jQuery(this).parent().find("input").val(newVal); } }); }); something like that 1 Link to comment Share on other sites More sharing options...
ruisonika Posted May 8, 2020 Author Share Posted May 8, 2020 2 hours ago, EvaF said: <!------------------------ quantity wanted ----------------------------------------------> {if !$PS_CATALOG_MODE} <p class="quantity_wanted_p_"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: block;"{/if}> <!-- <label>{l s='Quantity'}</label> --> <a class="btn button-minus product_quantity_down decrement_qty" data-field-qty="{$product.minimal_quantity}"> <span><i class="icon-minus"></i></span> </a> <!-- change the min --> <input type="number" min="{$product.minimal_quantity}" name="qty" id="quantity_wanted_{$product.id_product|intval}" class="text inputqtyfield" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product.minimal_quantity > 1}{$product.minimal_quantity}{else}1{/if}{/if}" /> <span class="minQty" style="display:none;">{$product.minimal_quantity}</span> <a class="btn button-plus product_quantity_up increment_qty"> <span><i class="icon-plus"></i></span> </a> <span class="clearfix"></span> </p> {/if} ////quantities in default product list jQuery(document).ready(function(){ jQuery('.increment_qty').click(function() { var oldVal = jQuery(this).parent().find("input").val(); var minQty = jQuery(this).parent().find("input").attr('min'); minQty = (typeod minQty !== 'undefined' ) ? parseFloat(minQty) : 1; if ( parseFloat(oldVal) >= 0 ) { var newVal = parseFloat(oldVal) + minQty; jQuery(this).parent().find("input").val(newVal); } console.log(oldVal); console.log(newVal); console.log(minQty); }); jQuery('.decrement_qty').click(function() { var minQty = jQuery(this).parent().find("input").attr('min'); minQty = (typeod minQty !== 'undefined' ) ? parseFloat(minQty) : 1; var oldVal = jQuery(this).parent().find("input").val(); if ( parseFloat(oldVal) >= minQty ) { var newVal = parseFloat(oldVal) - minQty >= minQty ? parseFloat(oldVal) - minQty : minQty; jQuery(this).parent().find("input").val(newVal); } }); }); something like that Thanks @EvaF with a small difference it works like i want, i will mark solved. Thanks again. By the way this were my changes. product-list.tpl <!------------------------ quantity wanted ----------------------------------------------> {if !$PS_CATALOG_MODE} <p class="quantity_wanted_p_"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: block;"{/if}> <!-- <label>{l s='Quantity'}</label> --> <a class="btn button-minus product_quantity_down decrement_qty" data-field-qty="{$product.minimal_quantity}"> <span><i class="icon-minus"></i></span> </a> <input type="number" min="{if $product.minimal_quantity > 0}{$product.minimal_quantity}{else}1{/if}" name="qty" id="quantity_wanted_{$product.id_product|intval}" class="text inputqtyfield" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product.minimal_quantity > 1}{$product.minimal_quantity}{else}1{/if}{/if}" /> <a class="btn button-plus product_quantity_up increment_qty"> <span><i class="icon-plus"></i></span> </a> <span class="clearfix"></span> </p> {/if} <!-------------------------------------------------------------------------------------> global.js /////quantities in default product list jQuery(document).ready(function(){ jQuery('.increment_qty').click(function() { var oldVal = jQuery(this).parent().find("input").val(); var minQty = jQuery(this).parent().find("input").attr('min'); if ( parseFloat(oldVal) > 0 ) { var newVal = parseFloat(oldVal) + parseFloat(minQty); jQuery(this).parent().find("input").val(newVal); } }); jQuery('.decrement_qty').click(function() { var oldVal = jQuery(this).parent().find("input").val(); var minQty = jQuery(this).parent().find("input").attr('min'); if ( parseFloat(oldVal) >= 1 ) { var newVal = parseFloat(oldVal) - parseFloat(minQty); jQuery(this).parent().find("input").val(newVal); } }); }); 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