sku多规格属性组合库存判断 - iOS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sku多规格属性组合库存判断 - iOS相关的知识,希望对你有一定的参考价值。

参考技术A   对于做移动端开发而言,算法,数据结构似乎只用于面试装B用,数据的查找,排序,增加,删除,如果一个for循环不能解决,那么再嵌套一层循环,如果再不行,那就再嵌套...。前段时间看到一篇文章说,面试招的是高级工程师,做的事情是一个初级程序员的事,似乎有点道理,但也不完全对,有时候还真的需要一些思路解决特殊的问题。
在做商城sku库存判断开发的过程中,就发现了一个使用很多层循环不能解决的问题,需要有特殊的思路。

选中某个元素的时候,如果其他元素和当前选择的元素组合成的sku没有库存,则把其他元素置灰,不可点击。

具体情况是这样的, 在购物袋中(商品详情页中),用户在点击购买或者加入购物车时需要选择所有的规则,但是不是所有规则下的属性都是可选的,比如上面的图片如果选择了黑色,二段,那么鞋码的36,41是不可选的,因为没有库存,如果按照上面的图中的所有可以产生的sku数总共有多少种呢

黑色 三段 50
黑色 三段 36
黑色 三段 41
黑色 二段 40
黑色 二段 36
黑色 二段 41
白色 三段 50
白色 三段 36
白色 三段 41
白色 二段 40
白色 二段 36
白色 二段 41
总共有2x2x3 = 12 种

skus是所有属性元素拼接可能产生的sku个数,包括有库存和没有库存的sku,单个sku使用sku对象中的store参数判断是否有库存,sku对象下的select_spec_id是specs对象对应的spec_value_id的多个元素使用‘_’拼接组合,比如黑色,二段,那么拼接的select_spec_id组合为3_5。

  初始化时当我们想要点击黑色,判断三段和二段可不可以选,如果判断三段可以选了,又要鞋码40,36,41码是否可以选,回头还别忘了白色是否可选。貌似需要使用三层循环判断,结果应该可以判断出来,但是问题是如果鞋子又增加了一个属性,那么理论上又得增加一层循环,常规思路好像很不好解决,逻辑难厘清,较劲脑汁,想不出什么好办法,但是又觉得应该有办法,毕竟这个问题做过sku库存判断的前段同学都实现过,然后在网上搜了一篇的文章,得到了提示 https://www.jianshu.com/p/7a17b4179225

  初始化时当我们想要点击黑色,判断三段是否可以点击,那么只需要判断 黑色_三段 是否可以点击,不需要做其他判断,如果已经选则了黑色_三段,判断40是否可以点击,那么只需要判断 黑色_三段_40 是否可以点击,不需要判断其他的元素。
思路似乎就清晰了许多

现在服务端返回的12个sku中,列举一下元素spec_value_id拼接和是否有库存

iOS小技能:SKU视图搭建

文章目录

引言

最小库存管理单元(Stock Keeping Unit, SKU)是一个会计学名词,定义为库存管理中的最小可用单元。
对于一种商品而言,当他的品牌、型号、配置、花色、容量、生产日期、保质期、用途、价格、产地等属性与其他商品存在不同时,就是一个不同的最小存货单元。

SKU 就是商品在规格上的一种组合,比如油焖大虾有微辣小份, 也有不辣中份 ,不同的组合就是不同的SKU,把一组满足条件的属性叫做条件式 。

商品规格  
款式 : F    M
颜色 : R    G    B
尺寸 : L    X    S    

SKU
M,G,X  -  36元,20件
F,G,S  -  38元,22件

以上是关于sku多规格属性组合库存判断 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

iOS小技能:SKU视图搭建

iOS SKU规格组合算法

ios SKU 组合算法

淘宝sku算法浅析

多规格的商品选择不同的规格值影响其他规格使之不可选

SKU商品规格选择