请教下大家, 关于商品生成sku的问题

1. 一个商品的基本销售属性#

请教下大家, 关于商品生成sku的问题
在将该商品的所有规格及规格值创建完毕后,得到如下图:

请教下大家, 关于商品生成sku的问题

这时,分别选中了性别 , 类型这两规格,生成 sku 的笛卡积。但是这样会导致一些原本不存在的规格组合的产生.
例如性别这个规格,规格值为儿童时,是没有类型规格中的升级规格值的。以些类推,为了兼顾所有,生成了所有规格及规格值的笛卡积后,会增加太多的原本商品销售属性不存在的规格组合.
原本想的是,生成后,再依次将生成的所有组合中不存在的依次禁用,但是太多了,感觉这种方式不适合.
来请教下大家,在这种业务场景中是如何生成正确的 sku 的.

故地有明月,何慕异乡圆.
wenber
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 10

照你的想法,在添加规格的时候配置来限制,选中的时候根据规格限制来生成数据

2年前 评论

file 我是类似这种让商家自己填写规格值,规格名关联商品。这样就可以填写需要的规格就可以了。不会存在无效规格信息

2年前 评论

可以考虑设计一个筛选器,一次性禁用符合条件的 SKU

2年前 评论
IceBay (作者) 2年前
wenber (楼主) 2年前

你这种情况应该让用户自己添加的。设计 web 页面,让用户自己选择,用户选什么就生成什么。不建议自己去生成 sku,因为会有无效的。

2年前 评论
wenber (楼主) 2年前
yyy123456 (作者) 2年前
Buffett-Cai

个人建议先设置可以组合的属性【type】(比如 {"id":1,"name":"尺码"}{"id":2,"name":"颜色"}),
然后再围绕这个属性把可用值【type_value】记录下来(比如:
{"id":1,"type_id":1,"name":"L"} {"id":2,"type_id":1,"name":"M"}
{"id":3,"type_id":2,"name":"原谅绿"} {"id":2,"type_id":4,"name":"猛男粉"}
把【type_value】的数据筛选出来,然后在前端组合一遍,把组合出来的所有适用的值已表格的形式呈现出来,旁边加个删除按钮,用户不需要的组合就让他自己点击去掉(在前端剔除),提交的时候拼出一个 sku 名称,比如: [{"sku_name":"L-原谅绿","sku_index":"1-3"}, {"sku_name":"L-猛男粉","sku_index":"TYPE_VALUE_ID-TYPE_VALUE_ID"},{"sku_name":"M-猛男粉","sku_index":"M这个值的ID-猛男粉这个值的ID"}]
{"sku_index":"M这个值的ID-猛男粉这个值的ID"} 这里只是我的举例,实际你可以根据实际需求整一个 index 出来,其他端使用的时候按同样的规则拼出这个 index 就可以快速匹配这个 SKU(如果没有就是没有)。 把它存到 sku 表里就得到了
{"sku_id":1, "sku_name":"L-原谅绿","sku_index":"1-3"}
{"sku_id":2, "sku_name":"L-猛男粉","sku_index":"1-4"}
{"sku_id":3, "sku_name":"M-猛男粉","sku_index":"2-4"}
其他端需要用的时候,数据的格式 {"type":[{},{}],"example1":[{},{}],"example2":{"index1":{},"index2":{}}} 比如:

代码已被折叠,点此展开
2年前 评论

习惯性每次都 delete 掉然后新建。

订单一定要存有商品的快照信息。

2年前 评论