《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
照你的想法,在添加规格的时候配置来限制,选中的时候根据规格限制来生成数据
可以考虑设计一个筛选器,一次性禁用符合条件的 SKU
你这种情况应该让用户自己添加的。设计web页面,让用户自己选择,用户选什么就生成什么。不建议自己去生成sku,因为会有无效的。
个人建议先设置可以组合的属性【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":{}}}
比如:习惯性每次都 delete 掉然后新建。
订单一定要存有商品的快照信息。