什么是sku
维基百科如下 最小存货单位(Stock Keeping Unit) 在连锁零售门店中有时称单品为一个SKU,定义为保存库存控制的最小可用单位,例如
例如: iPhone有规格有:颜色【红、金、黑】,内存大小【32g、64g、128g】 红色+32g就是一个sku,当然还可以分的更细
后台数据如下:(表1)
颜色 | 内存 | 屏幕大小 | 库存 |
---|---|---|---|
红色-a1 | 16G-b1 | 4.7-c1 | 100 |
金色-a2 | 32G-b2 | 5.1-c2 | 110 |
黑色-a3 | 64G-b3 | 4.7 | 120 |
蓝色-a4 | 128G-b4 | 4.7 | 130 |
对上面的数据排列组合得到,所有库存的sku
选项卡则为:(表2)
颜色 | 选择项 | |||
---|---|---|---|---|
颜色 | 红色 | 金色 | 黑色 | 蓝色 |
内存 | 16G | 32G | 64G | 128G |
屏幕 | 4.7 | 5.1 |
产品要求只用有库存的商品按钮才显示可选样式
选项卡
把以选择sku 存放到一个数组中 如:selectSku=[a1,b1,c1]
方案1:
把所有规格排列组合生成一个map,如:
skuMap={
a1:100,
b1:100,
c1:220,
}
优点是只需要运算一次,后期只需要通过key查找就可以了,但是初始化运算量比较大
方案2:
每次选择重新计算当前选项的库存,如:
selectSku=[a1,b1,c1];//已选择规格
//如果想知道c2是否可以选择,则需要获取 key=a1b1c2这个sku的库存
//其他类推
这里非常感谢网友的一片文章,写个非常仔细。有兴趣的可以参考
http://git.shepherdwind.com/sku-search-algorithm.html