[英]Change product increment value for attribute
Prestashop v1.6.1.13 default-bootstrap主题。
当我在product.js中更改时
// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
e.preventDefault();
fieldName = $(this).data('field-qty');
var currentVal = parseInt($('input[name='+fieldName+']').val());
if (!allowBuyWhenOutOfStock && quantityAvailable > 0)
quantityAvailableT = quantityAvailable;
else
quantityAvailableT = 100000000;
if (!isNaN(currentVal) && currentVal < quantityAvailableT)
$('input[name='+fieldName+']').val(currentVal + 1).trigger('keyup');
else
$('input[name='+fieldName+']').val(quantityAvailableT);
$('#quantity_wanted').change();
});
对此:
// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
e.preventDefault();
fieldName = $(this).data('field-qty');
var currentVal = parseInt($('input[name='+fieldName+']').val());
if (!allowBuyWhenOutOfStock && quantityAvailable > 0)
quantityAvailableT = quantityAvailable;
else
quantityAvailableT = 100000000;
if (!isNaN(currentVal) && currentVal < quantityAvailableT)
$('input[name='+fieldName+']').val(currentVal + 2).trigger('keyup'); //this line changed
else
$('input[name='+fieldName+']').val(quantityAvailableT);
$('#quantity_wanted').change();
});
每次按下增量按钮时,我都可以更改输入的值2个数量,但是当我输入代码minimalQuantity
,代码看起来像: $('input[name='+fieldName+']').val(currentVal + minimalQuantity).trigger('keyup');
这仅适用于产品witout属性。 如果产品具有属性,这是行不通的,则似乎没有属性的产品的minimalQuantity
给出正确的值,但具有属性的产品的值始终为1。我该如何解决?
在产品页面上,您有一个全局JS变量combinations
,用于存储有关组合的所有信息。 它已包含在DOM中,因此您可以在其中进行搜索。
变量示例:
var combinations =
{
"31": {
"attributes_values": {
"1": "S",
"3": "Yellow"
},
"attributes": [
1,
16
],
"price": 0,
"specific_price": false,
"ecotax": 0,
"weight": 0,
"quantity": 300,
"reference": "",
"unit_impact": 0,
"minimal_quantity": "1",
"date_formatted": "",
"available_date": "",
"id_image": 16,
"list": "'1','16'"
},
...
}
因此,您需要从上面的列表中在所选组合ID的对象内获取minimal_quantity
变量。
// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
e.preventDefault();
fieldName = $(this).data('field-qty');
var curCombinationId = $('#idCombination').val();
var minCombinationQty = minimalQuantity; // set default product minimal quantity
if (combinations != 'undefined') { // check if product has combinations
for (var combData in combinations) {
if (combData.idCombination == curCombinationId) {
minCombinationQty = parseInt(combData.minimal_quantity);
break;
}
}
}
var currentVal = parseInt($('input[name='+fieldName+']').val());
if (!allowBuyWhenOutOfStock && quantityAvailable > 0)
quantityAvailableT = quantityAvailable;
else
quantityAvailableT = 100000000;
if (!isNaN(currentVal) && currentVal < quantityAvailableT)
$('input[name='+fieldName+']').val(currentVal + minCombinationQty).trigger('keyup');
else
$('input[name='+fieldName+']').val(quantityAvailableT);
$('#quantity_wanted').change();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.