当前位置: 首页 > Web前端 > JavaScript

基于销售属性生成SKU的电商平台设计

时间:2023-03-26 20:54:43 JavaScript

电商系统中商品系统最重要的功能就是SKU的创建和维护,任何一个失误都会影响到电商的后续流程。设计业务流程,如图所示,通过设置sales属性值sales属性组实现skus的组合。整体业务设计SKU创建。添加、删除和修改属性值。删除的销售属性无法重新生成。检查属性值并取消检查属性值1.销售属性组合笛卡尔乘积组合calcDescartes(array){return[].reduce.call(array,function(col,set){letres=[];col.forEach(function(colItem){set.forEach(function(setItem){letnewArr=[].concat(Array.isArray(colItem)?colItem:[colItem]);newArr.push(setItem);res.push(newArr);});});returnres;});}改成属性组名和属性值作为判断,通过map结构存储。键值是属性组名和属性名的组合,形成一个唯一的attrValId全排列组合,每个组合与sku映射结构进行比较,contains(newdimension)isincluded(deletedimension,deleteattributevalue)hits(addattribute,editattributevalue)生成一个唯一标识的同维度的attrValId属性值不能重复属性组名称不能重复2.删除的skus不能重新生成1.记录最后一个销售属性值,最后一个之后的属性值sales属性(笛卡尔积)组合唯一标识attrValId组合2.lastskus,lastskulistmap结构生成3,map.keys()与sales属性全排列组合比较,比较差异(全等)并取差集4.对当前销售属性进行笛卡尔积,遍历5.差集不生成atesku3.未勾选的属性值不可以重新生成,判断是否取消勾选操作。取消检查后,再次检查。取消勾选:cancelSkusMap将当前的mapkey添加为id,value为上一个skusMap中包含当前id的skus信息数组。检查:cancelSkusMap中是否有数据,目前检查的数据不止一条(最后一条数据不能使用未勾选的数据,保留skuId原则)