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!
