Limiting the Maximum Quantity of Products in ShopSite
This is an update to an earlier tutorial we posted here, with a script to prevent customers from purchasing more than a specified quantity of a product.
This update can handle multiple products, and it allows you to set different maximum quantities for each. If a customer exceeds the quantity of a restricted product customers will not be allowed to check out until all product quantities meet your restrictions.
You would add the following script under Commerce -> Order System -> Shopping Cart – “JavaScript added at start of built-in CheckIt function”. You would use an extra product field to enter the maximum quantity that can be purchased for each restricted product (leave the field blank if a product is not restricted). Finally, you would modify the script and replace the number ‘5’ in ss_field5 with the extra product field you are using in two places (for example, ss_field5 becomes ss_field25 if you are using product field 25). Be careful only to replace the number.
if (parseInt(button)==8) { var lineItems = {}; var limitSkus = false; var limitList = {}; var skuList = new Array(); for(ns=0; ns<ss_field5.length; ns++){ if(parseInt(ss_field5[ns]) > 0){ var sku = ss_sku[ns]; limitList[sku] = parseInt(ss_field5[ns]); if(lineItems[sku] > 0){ lineItems[sku] += parseInt(ss_quantity[ns]); } else{ lineItems[sku] = parseInt(ss_quantity[ns]); } } } ss_jQuery.each(lineItems, function( sku, qnty ) { var limit = limitList[sku]; if(qnty > limit){ limitSkus = true; skuList.push(limit + " of sku: " + sku); } }); if(limitSkus == true){ if(skuList.length > 1){ alert("You may only order: \n\n" + skuList.join("\n") + "\n\nPlease adjust your quantity accordingly"); } else{ alert("You may only order: \n\n" + skuList[0] + "\n\nPlease adjust your quantity accordingly"); } return false; } }
Looking for a web host that understands ecommerce and business hosting?
Check us out today!