0

我正在寻找一种方法,让潜在买家根据他们想要购买的商品数量计算价格。

我的产品的单价会根据数量而降低。

例如,从 1 件到 500 件,产品价格为 20 美元
,从 500 件到 1000 件,价格为 17 美元
,从 1000 件到 5000 件,价格为 13 美元,依此类推..

我找到了计算价格的脚本,但它们以“线性”方式进行。
比如这个
或者这个

是否可以调整这些脚本以在滑块中使用“断点”计算价格?
从 0 到 500,总价格 = 20 美元 x
500 到 1000 件的商品数量,总价格 = 17 美元 x 商品数量等……</p>

非常感谢

ps:你可以猜到,我有基本的编程技能

4

2 回答 2

1

你可能想要一个像这样的数据结构:

products = {
    7: {
        id: 7,
        title: "My Product",
        // note that the prices are in increasing order of minimum threshold
        // for quantity (i.e. 0 for 0-500, THEN 500 for 500-1000 THEN
        // 1000 for 1000-5000, etc., in that order)
        price: {
            0: 20,
            500: 17,
            1000: 13
        }
    },
    10: {
        id: 10,
        title: "My Other Product",
        price: {
            0: 50,
            500: 45,
            1000: 40
        }
    },
    ...
}

接下来,计算产品 X 的价格(即 id = X)和数量 Q:

var correctPrice = -1;
for (var threshold in products[X].price) {
    if (Q >= threshold)
        correctPrice = products[X].price[threshold];
}

if (correctPrice > -1)
    // use correctPrice here

使用它,您可以拥有任意数量的具有任意数量阈值和价格的产品,并以编程方式使用正确的价格进行计算。

于 2013-09-18T18:42:19.903 回答
0

这应该可以解决您的问题。

// quantity segment, price
var priceRanges = [500,20,
                   1000,17,
                   5000,13];

//the function returns the unit price for a given quantity or -1 if out of range.
function getPrice(quantity){
   for (var i = priceRanges.length - 2 ; i >= 0 ; i-=2){
      if (quantity < priceRanges[i]) return priceRanges[i+1];
   }
   return -1;
}
于 2013-09-18T18:38:32.713 回答