设置Javascript订单价格最低

时间:2016-08-22 16:40:56

标签: javascript

我正试图设置一种方式,这样如果我的购物车价格低于125美元,它将收取125美元。我已经用Google搜索了多种方式来添加订单最小值,但是这些代码的设置方式没有任何效果。请查看以下代码:

function Recalculate() {
  var total = 0;
  $.each(cart, function(index, item) {
    var options = {};
    if (item.o) $.each(item.o, function(opt_ind, opt_item) {
      options[opt_item.name] = opt_item.value;
      options[opt_item.id] = opt_item.value;
    });

    var width_ft = parseInt(options.width_ft);
    if (!width_ft || isNaN(width_ft)) width_ft = 0;

    var width_in = parseInt(options.width_in);
    if (!width_in || isNaN(width_in)) width_in = 0;

    var width = width_ft + width_in / 12;

    var length_ft = parseInt(options.length_ft);
    if (!length_ft || isNaN(length_ft)) length_ft = 0;

    var length_in = parseInt(options.length_in);
    if (!length_in || isNaN(length_in)) length_in = 0;

    var sq = width * length;
    var inshop = options.type_of_cleaning == 'In_Shop_Cleaning';

    var base_price = 0;
    var base_min = 0;
    switch (item.p) {
      case 'livingroom':
        base_price = LIVING_ROOM;
        break; 
      case 'stair':
        base_price = STAIR;
        break;
    }

    var i_total = sq * base_price;
    if (i_total < base_min) i_total = base_min;
    $('span.isize').eq(index).html('$' + i_total.toFixed(2));
    total += i_total;

    if (options.SCOTCHGARD == 'on') total += Math.min(sq * SCOTCHGARD, 25.00);
    if (options.DECON == 'on') total += Math.min(sq * DECON, 25.00);
    if (options.DA == 'on') total += Math.min(sq * DA, 25.00);
    if (options.clean_or_buy == 'buy') total += i_total * NEW_PAD_TAX / 100;

  });
  return [total];
}

1 个答案:

答案 0 :(得分:0)

如果您想要收取至少125美元的费用,您可以做的最简单的事情就是在返回之前将总数设置为最小值。 e.g。

if (total < 125) { total = 125; }
return total;

(请注意,这将返回total而不是[total],因为我不清楚为什么要返回单个值的数组。)

您的问题包括短语&#34; ...最少添加订单&#34;。这对我来说没有意义,即如果实际总数是100美元,我怀疑你想要 添加 125美元(总计225美元),而是你只想将总数设置为最小值。如果这是正确的,但你确实想要跟踪你添加的额外内容,那么也许你可以在从函数返回之前再次执行以下操作:

var extraForMinimum = 0;
if (total < 125) { extraForMinimum = 125 - total; }
return {total: total, extraForMinimum: extraForMinimum };

在这种情况下,该函数返回的对象包含实际总数(可能仍然低于125美元)以及将费用降至最低所需的额外成本。但是,如果您这样做,则可能需要将变量名称从total更改为subtotal或类似的其他内容。