供应链系统中的编码和条码,你真的懂吗?
前言
在供应链系统中,虽然我们日常都要和一些编码、条码打交道,但是我发现很多从业好几年的业务人员、产品经理、技术研发等同事,可能对这里面的知识还是一知半解、朦朦胧胧的。
不知道“商品编码和SKU”是不是一个概念,是不是指同一个东西; 不知道“商品编码和条码”有没有区别,是不是一个概念; 不知道录入“产品条码”和“其他条码”的时候,到底选择哪个字段去录入; 不知道“EAN和69码和国际码”是什么,是不是一个东西; 不知道一个商品包装背后印刷的一些条码分别指什么的东西; 不知道为什么扫码枪扫描条码,有些时候可以扫出来,有些时候扫不出来; ……
这些问题对于供应链产品经理来说算是基本功,应该是在入门不久后就要掌握清楚的,但是我发现有一些知识比较隐性,如果没有经历过一些项目实战,同时加上自己的总结复盘,可能工作多年之后也是浮于表面,没有吃透。
所以这一篇文章,是我结合过去多年的供应链系统实战经验和一些拓展知识的总结,旨在帮助想要学习供应链系统的朋友从更底层的视角、更细节的视角去了解和掌握编码与条码的知识。
什么是编码?
“编码”是一个比较有歧义的词,在不同的语境中有不同的含义,这里我们聊到的“编码”,是名词,是指在供应链系统中常常看到的“商品编码”,“海关编码”,“客户编码”,“仓库编码”等。
当然,在一些系统里也称之为“代码”,“代号”,“编号”……
当我们在讲什么是SKU的时候经常会这样一句描述:“一个商品编码就等同于一个SKU”。
此处,可以请大家思考一下,那就是:SKU一定是数字、字母等常见的编码格式吗?可以是中文描述吗?
SKU最小粒度的库存管理维度下区分不同的商品而定义的一串编码,即不同的商品会有不同的SKU。
通过上面的定义,我们可以知道,只要不同商品的SKU不一样,那么就达到了SKU的作用和效果,而至于SKU是“由字母、数字、部分特殊字符等构成”,还是“可以由任意字符构成”,这些都是可以的。
基于信息化系统的演进经验,以及大家普遍对数字、字母等简短的代码更容易记忆和检索,于是现在的供应链系统基本上在维护SKU的时候都会限制“只能维护字母、数字和部分特殊字符”,避免用户维护了一些奇奇怪怪的SKU。于是乎,大家也开始用“SKU编码”,“SKU代码”,“SKU编号”等词语来描述SKU所代表的字符内容。
SKU编码的规则被限制为“只能维护字母、数字和部分特殊字符”,除了上述原因,还有一个比较重要的点,是很多公司会把SKU当做条码来使用,即将SKU打印成条形码(一维码),然后使用PDA、扫码枪或者手机相机等进行扫描,用来解析条码并快速录入到信息化系统中。
由于条形码普遍采用的编码方式是Code 128,有很多字符是不能支持的,所以如果SKU是一些不支持的字符,那么就无法生成相关的条形码或者生成的条形码会自动变成“?”。条形码的知识,我们将会在下文中进行详细解答。
什么是条码?
讲完了编码,现在来聊聊条码。在很多人的认知里,编码和条码是相同的,甚至某些时候做多语言翻译的时候两者都会翻译成为“Code”。
确实在很多时候这两者的使用和定义会有重复,但是我认为它们两者底层逻辑还是不一样的,我们得要“知其然,还要知其所以然”,才能在后续的供应链产品设计中不踩坑,不埋雷。
条形码或称条码(英语:barcode),是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。
条码/条形码是指一组图形符号,可以将相关的信息写入到条码中,然后通过扫描之后解码接收原始的信息,扫描需要对应的设备,例如说扫码枪、PDA、手机相机等都可以识别并解码条形码的内容。
例如上面的左边的第一个条码,拿出手机扫描之后就会展示“97703117847001”,而第二个条码,拿手机扫描之后会展示“619012341567892”。
一般来说条形码写入的信息就是下方展示的信息,所以扫描之后的内容也和条码下方的内容展示是一样的。
不过也要注意,“条码/条形码”指的就是这组图形符号,并不包含下方的文字,因为不是所有的条码下面都一定会有文本。只不过是“上面条码下面文字”这种方式更具有可读性,也可以解决一些因为条码损坏而无法识别的问题,所以变成了广泛流传的一种“默认规则”。
在创建商品基础信息的时候,需要录入产品的条码,意思就是这个值未来会用来打印成条码,所以这个条码在录入的的时候要限制字符类型和长度,一般也是“只能维护字母、数字和部分特殊字符”,因为其他符号可能也会面临无法转化为成条码的问题。
条码知识的扫盲
很多第一次接触仓库知识的朋友可能都会在条码这一块翻车踩坑,所以我觉得很有必要对条码的知识进行一波科普讲解,帮助大家避开一些很容易踩的坑,只要掌握了条码的核心知识,基本上是一通百通的。
仓库中常见的条码就是一维码,少数场景下会用到二维码。一维码和二维码都可以包含一些信息,但是二维码包含的信息量级更大,能支持的字符类型也更多。
无论是条形码还是二维码,本质上都是将一些字符信息写入到图像中,然后使用相机或者扫描器解析的时候,可以拿到这些字符信息。通俗点来说,就是把字符信息转化为图片(条码/二维码)叫做编码,反过来扫描图片(条码/二维码)就叫做解码。
拿条形码来举例,生成条码的时候需要进行编码,于是就有一个“编码规则”的选择,不同的编码规则生成的条码是会有一些差异的,一般来说,条形码的生成规则常见是就是“Code128,EAN,UPC,ISBN”等。
Code128的编码方式有三种,分别是:
Code128A Code128B Code128C
这三种编码方式的区别,可以看我在语雀知识库上写的文章:“Code128相关知识普及”。一般来说,默认使用Code128 Auto即可,Auto是根据数据内容自动选择A/B/C代码集,以最短的方式编码图形。
在仓库的作业中,除了要考虑生成的条码所使用的编码规则之外,还需要考虑硬件是否支持。如果使用了比较冷门的编码方式生成条形码,可能会导致扫码枪不支持,就会无法识别和解析。例如:有一些扫码枪是不能支持二维码的,就会导致无法扫描并解析出结果。
在设计供应链系统的产品资料填写或者一些编码字段填写的时候,稍不注意就很容易踩坑,以下是我整理的一些常见的和编码/条码有关的踩坑点,都是实战经验,非常的细节。
供应链系统中的一些常见编码的解释
在供应链系统中,会遇到很多形形色色的编码、Code或者是ID之类的字段,很多人一开始可能对这些信息会感觉很绕,那是因为对业务信息掌握的还不够,等后续掌握了业务就觉得其实这些也比较简单。
下面是我整理的一些常见的编码类字段,这些字段在我们设计产品字段和对应功能的时候都会有很关键的作用,一定要理解并吃透,做到举一反三最佳。
SKU ID
由于不同的客户有可能会有重复SKU,所以系统为所有的SKU都生成一个内部的SKU ID; SKU ID还可以用来打印条码,类似亚马逊的FNSKU,可以打印出来贴在商品上; 亚马逊的FNSKU就是亚马逊库内唯一生成的编码,不同客户的每一个SKU都对应一个FNSKU,哪怕不同的客户卖相同产品,也会生成不同的FNSKU;
SKU
每个产品都会有SKU,SKU由客户自己生产,然后填写在ERP或者OMS系统中; 海外仓OMS场景下,同一个客户内,不允许SKU重复,但是不同的客户有可能SKU重复; 张三和李四卖的东西不一样,但是用了一套编码规则,所以张三的一瓶水和李四的一件衣服可能都会用相同的SKU(1234567);
产品条码
一般来说,产品实物上印刷的条码称之为产品条码,中国常见的条码叫做EAN码,一般是69开头的13位码,也叫做69码; 北美地区一般是用UPC码,和EAN码类似,不过UPC码一般是12位长度; 国际标准书号(英语:International Standard Book Number,缩写为ISBN)是国际通用的图书或独立的出版物(定期出版的期刊除外)代码,这个也算是一种产品条码;
FNSKU
亚马逊的库内产品条码,称之为FNSKU,指货物送到亚马逊的仓库之前亚马逊自动为货物生成的一个产品编码 卖家需要使用FBA发货的时候,需要向亚马逊申请FNSKU,然后贴好FNSKU标之后,发到亚马逊仓库中; 一个SKU可能会对应多个FNSKU,因为SKU背后的客户不同,货物存放在亚马逊不同地区的仓库等,但是站在亚马逊的角度一个FNSKU一般只会对应一个“SKU”+“不同的客户代码”;
其他条码
为了兼容某些客户的特殊场景,一个产品会有多个条码,所以引入了这个字段; 和产品条码类似,用来做条码的拓展,例如:一品多码,就是指同一款商品但是有多个条码;
SN码
SN码叫做序列号码,也称之为唯一码; 同一个SKU中的唯一码是具有唯一性的,例如:都是iPhone14,张三和李四的iPhone14是不一样的唯一码; 但是由于不同的厂商生成唯一码的规则不一样,所以不同厂商的产品之间可能会有相同的唯一码,例如:小米手机和华为手环的唯一码可能会一样,这种概率比较低 例如:手机是IMEI号,然后iPhone手机的序列号,电子产品的序列号等,每个有序列号的产品,自己的序列号都是独一无二的(不考虑不同厂商撞车的情况);
批号/生产批号
批号/生产批号一般是印刷在包装盒外部的,表明该商品的生产批号是什么。需要特别注意,生产批号和WMS收货入库的批次号不是一个概念,生产批号是录入的,收货入库的批次号是系统根据规则生成的; 也有系统会用“外部批号”和“内部批次号”这种定义来区分;
实战中的一些案例说明
SKU不要求一定是可扫描的,所以SKU≠条码,在做一些查询或者数据传输的时候要注意,什么时候传递SKU,什么时候传递条码,要支持SKU查询,也要支持商品条码查询.
商品上可扫描的条码最好只有一个,在WMS作业的时候打印的纸质单据上可以展示3个关键信息,一个是商品名称,一个是可扫描条码(默认是产品条码),还有一个是SKU。实际作业的时候在实物上最容易看到的是条码,可以通过条码再结合商品名称或者图片确认一下产品是否正确。
但凡涉及到要可能会讲“XX编码”打印成条码,便于作业的时候扫描的场景,都要考虑到编码的字符约束和长度约束,简单来说就是:不要有奇怪的字符,不要太长的编码。例如:1. OMS需要生成箱唛,然后打印箱唛;2. WMS需要生成库区编码,库位编码,容器编码,包材编码等;
总结
编码和条码相关的知识,说复杂也复杂,说简单也简单,核心点应该还是在“实操”二字。有一些概念和知识,文字描述起来可能很费劲,但是实操做一遍就很好理解了。
如果上述的内容,在看的时候感觉没理解,那么我就建议可以自己尝试实操一下。例如去生成条形码,自己拿手机扫描一下,看一下哪些字符是支持的,哪些字符是不支持的,同时也可以感受一下不同的字符长度生成的条码有多大的差别……