跳到主要内容

规格的编辑以及组合筛选开发说明

1 SKU的维护需求

参考有赞

https://www.youzan.com

用户名:18618487753

密码:wangfeng

2 开发说明

2.1 交付数据格式:

如上的效果要形成的skuList数组

[
{
sku:{
{
spec\_name:"颜色",spec\_value\_name:"红色",spec\_value\_id:1
},
{
spec\_name:"尺寸",spec\_value\_name:"S",spec\_value\_id:2
}
},
price:100,
quantity:10
cost:50
},
{
sku:{
{
spec\_name:"颜色",spec\_value\_name:"红色",spec\_value\_id:1
},
{
spec\_name:"尺寸",spec\_value\_name:"L",spec\_value\_id:3
}
},
price:100,
quantity:10
cost:50
},
{
sku:{
{
spec\_name:"颜色",spec\_value\_name:"绿色",spec\_value\_id:1
},
{
spec\_name:"尺寸",spec\_value\_name:"S",spec\_value\_id:2
}
},
price:100,
quantity:10
cost:50
}
...
]

2.2 数据源

组合上述sku的数据源:

[
{
spec_name:"颜色",
spec_value_list:
[
{
spec_value_name:"绿色" , spec_value_id:1
},
{
spec_value_name:"红色" , spec_value_id:2
}
]
},
{
spec_name:"尺寸",
spec_value_list:
[
{
spec_value_name:"S" , spec_value_id:3
},
{
spec_value_name:"L" , spec_value_id:4
}
]
}
]

即由下面的操作结果形成的:

组合算法参考:

/shoptnt-web/src/main/webapp/themes/b2b2cv4/new_store/js/pages/goods/spec-v2.js

中的

也就是由源,组合成目标格式的json

2.2.1 规格列表来源:

2.2.1.1 规格列表获取API

get:/goods-info/seller/category/1spec.do

其中1是商品分类的id

返回值:

[
{
spec_id:1
spec_name:"颜色"
},

{
spec_id:2
spec_name:"尺寸"
}
...
]

2.2.1.2 规格项的获取

get:/goods-info/seller/spec/1/spec-values.do

其中1是规格的id

返回值:

[
{
spec_value_id:1
spec_value_name:"颜色"
},
{
spec_value _id:2
spec_value _name:"尺寸"
}
...
]

3 sku的展示和选择

skuShowAndChoose

4 开发说明

4.1 某商品可选择规格获取API

返回数据格式:

[
{
spec_name:"颜色",
spec_value_list:
[
{
spec_value_name:"绿色" , spec_value_id:1
},
{
spec_value_name:"红色" , spec_value_id:2
}
]
},

{
spec_name:"尺寸",
spec_value_list:
[
{
spec_value_name:"S" , spec_value_id:3
},
{
spec_value_name:"L" , spec_value_id:4
}
]
}
]

即用上述的数据形成的这个界面:

4.2 某商品的sku获取API

get:/goods-info/goods/sku/1.do

返回的数据结构:

[
{
sku:{
{
spec_name:"颜色",spec_value_name:"红色",spec_value_id:1
},
{
spec_name:"尺寸", spec_value_name:"S", spec_value_id:2
}
},
price:100,
quantity:10,
sku_id:1
},
{
sku:{
{
spec_name:"颜色", spec_value_name:"红色", spec_value_id:1
},
{
spec_name:"尺寸", spec_value_name:"L", spec_value_id:3
}
},
price:100,
quantity:10 ,
sku_id:2
},
{
sku:{
{
spec_name:"颜色", spec_value_name:"绿色", spec_value_id:1
},
{
spec_name:"尺寸", spec_value_name:"S", spec_value_id:2
}
},
price:100,
quantity:10 ,
sku_id:3
}
...
]

用户点击选择spec(规格),程序通过运算来确定sku,这个过程中要根据库存(quantity)来确定某些(或个)的规格是否可选,当所有规格都选择完成时,要得到用户最终选择的sku。

4.3 其它

一、算法参考:

http://blog.csdn.net/liu_jun_y/article/details/53066490

http://www.cnblogs.com/rubylouvre/p/3422004.html

或根据下面的关键词在网上找找资料

SKU组合查询算法

二、json模拟:

上述api都在开发中,可以在statics目录下建立.json文件来模拟数据。