更改属性的产品增量值
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 qauntity输入改变值高达每一次,当我按下增加按钮时,但是当我把代码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'"
},
...
}
所以,你需要从列表中获取上述选择的组合标识的对象内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();
});
当我在源代码中使用product.js:console.log(组合)时,我发现这个属性的组合对于minimal_quantity正确的值,但我不知道如何将它用于product.js中的此产品和常规产品? –
@AgnesTom我已经更新了答案。 – TheDrot
感谢您的更新,我只是检查此代码,这不适合我。也许我必须将这些代码放在product.js中的特定位置? –
在哪里宣布你的** minimalQuantity **变量?你如何定义一个有/没有属性的产品? – Mils
在产品的属性组合是选项为'minimalQuantity'设置为低于从product.js主题这个代码值为'如果(typeof运算minimalQuantity = '未定义' && minimalQuantity!) \t { \t \t checkMinimalQuantity(); \t \t $(文件)。在( 'KEYUP', '输入[名称=数量]',函数(E){ \t \t \t checkMinimalQuantity(minimalQuantity); \t \t}); \t}' –
我仍然困惑,你可以在这里添加一个jsfiddle或一个片段? – Mils