繁体   English   中英

更改属性的产品增量值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM