如题:今天谈一谈商品编码的问题,咱们不是彻底从物流和商品自己的角度去谈商品该怎么编码才符合国际标准,EAN,UPC啥啥啥怎么样的。
咱们从计算机程序设计,电商,数据库存储的角度看一看商品编码,首先商品有哪些编码,而后这些编码和商品的关系,在而后这些编码该怎么使用。
要从电商的角度了解商品,立刻想到的多是淘宝,天猫,京东,亚马逊等他们的商品是怎么样子,是怎么存储的。程序员
这些这么成熟的电商彻底能够参考和借鉴。
关于商品这个话题仍是太大,由于商品自己设计的东西太多了,不一样活动先不一样的价格,多规格商品,不一样的计量单位,多图片展现该怎么存储等等。
每个点都值得单独拿出来仔细讨论和思考,因此商品这个话题仍是太大了,咱们就定位一个小的问题编码问题,其余的问题我会在以后每个都会细细谈到。数据库
那么关于编码,我网上搜到的有sku_code、spu_code、barcode、serial_number等,还有仓库给条的tag标签上也有编码。
那么这些编码各自表明什么含义,表示商品的什么属性和商品的对应关系,该怎么使用,具体到程序设计上,数据库该怎么设计,怎么存储。
下边咱们就一一把每一个名词给予讲解,这些讲解不是从物流,商品专业角度讲解的,但也和那些专业上的差的不是很远,因此也有助于理解。
这些解释是从程序开发,设计角度讲解,若是你是程序员,设计师,那么你应该好好读一下有些了解。数据库设计
一向的做风,为何要谈这个问题,为何要谈商品编码,在作和ERP对接的时候,让我带一个没有任何经验的产品妹妹,和没有对接经验的技术哥哥。
新人确定须要人带的,我当时脾气很差,而后咱们工期还特别的紧张,特别的紧张更加弄的我脾气暴躁,焦虑。我首先得认可本身的错误,脾气很差。
而后咱们在心平静气的来谈一谈,对接的故事。
首先对接,咱们商城和ERP对接确定须要有商品上惟一上标示能标示两边推送,对接的是同一个东西。
在咱们这个小team里,我对于这个小产品妹妹和技术哥哥算是一个天降leader,我还算不上一个彻底的leader,就是这个意思吧。
就是他们对我不了解,我也对他们不是很了解,并且在我对ERP对接这项目也不了解,就这么着,说咱们要一个月对接ERP项目。
而后对接技术细节呢,咱们的技术哥哥说要用咱们的gd_id来对接ERP,我当时就晕了,痛苦不已。测试
我在想咱们是用咱们本身数据库的自定序列ID来对接别人程序,这个是一个什么想法。
而后我仔细研究了咱们本身的数据库和ERP系统,还好,还好,还好咱们还有一个gsn这样的东西,首先说明gsn这个东西的值彻底等同于sku_code。
你们先听我把故事讲完,我们在细谈什么是sku_code这些,有这么离奇和好玩的故事,为何必定要急着知道各类编码,听故事岂不是很好。编码
而后因为程序和设计这边都是我本身来弄,说是让我带他们,其实我私下自私和不负责的想法是让他们看着我开发,
我有了这样的想法,加上我当时咱们工期紧,我压力大,我能不生气。我这样的想法是否是太臭屁了。
因此我最后执拗的坚持了本身的想法,就是我要本身作,我本身从新建表,我用本身强大坚持和执拗的想法,在有些地方彻底不放任何人的意见和建议。设计
最后我终于让他们知道了SKU,SPU,barcode这些概念。
最后程序开发出来,终于能让他们本身,从本身口中常常说SKU,SPU了,终因而让他们认同这些。
这期间好玩的事情是产品妹妹纠结条形码barcode纠结了3天,
最后我很是生气的告诉她若是咱们不使用什么条形码,若是条形码在咱们系统里没有多少意义和使用价值那咱们就不作barcode了,
而后咱们的采购还说一个产品可能有多个条形码,我真是醉了,最后我执拗的认为一个商品就只有一个条码,若是有多个之后再说,
咱们开发测试上线真的没有多少时间,纠结这个纠结3天,由于我生气,我被老大批评一顿。
还有好玩的事情,咱们和别人对接,好比仓库,好比ERP,有些东西,咱们不明白,须要请教ERP或仓库的人,
咱们的采购小哥再请教别人时,我听到的对话都是仓库那边的回答和讲解只有;“是,嗯,是,嗯”,最后问题没解决。code
而后我还要本身亲自在问一遍,让对方讲话,让对方说清楚。
更加搞笑的事情是,咱们有个QQ群,忽然有一天咱们的产品妹妹跟我说,QQ群里跟我们对接ERP那边一个哥哥退群了,好搞笑啊。
我感受没有什么搞笑的,可能那哥们忍受不了咱们的折磨,不肯意受打扰吧。
咱们时间紧,任务重咱们要加班,而后咱们也拉着ERP的人一块儿加班,这原本是合情合理你们都互相理解。
后来ERP那边来了个牛人以后咱们跟ERP对接算是比较顺畅的。图片
最后团队磕磕绊绊终于把开发搞定,到最后导入数据是,产品妹妹的一个好心修改ERP的默认设置,致使咱们加班了大半夜。
也由于开发测试不全面数据导入一半时发现导入的产品所有下架,当时我吓的满身冒冷汗,咱们的商城商品全下架了,吓死了。
还好导入的数据很少及时发现,中止了从新,修改程序,在测试再上线,最终也算是圆满的完成任务。
这就是咱们对接的故事,虽然你们都没有多少经验,但不能说你们不努力,咱们产品妹妹仍是的挺认真负责的这确实值得表扬。
这也是为何必定要谈商品编码的问题的缘由。开发
那么什么是SKU,是什么是SPU。
我我的理解要理解这两个名词,还得要结合计量单位,这样子更加全面。
我忘记了从哪里查到的例子了,我感受那个例子说的很是好,例子大概是这样子。
好比说烟这个商品,那么烟有中华烟,云烟,钻石等等,中华烟又分软盒,硬盒,钻石又分成钻,蓝钻,黄钻,QQ钻等等,
QQ钻,是我假设的,估计且这么认为吧,我不吸烟对烟了解很少。
那么在商城,特别上电商,看到的商品列表上必定只是展现了中华,钻石,云烟,在列表上通常不会在展现软盒中华,红色钻石烟。
只有在详细页面点开中华时会看到有软盒的硬盒的让你选。
SKU,SPU具体的名称解释我们不说了,百度,谷歌一堆一堆的,我解释也不必定彻底对,但我说的必定能帮助你理解。
到这里那么就能够这么看SPU和SKU了,列表上看到中华,钻石这一种类的集合算是SPU,
而具体的像软盒中华,红色钻石,那个很是具体的就是SKU了,这里须要明确和多想一想思考的地方就是商城卖的东西通常必定是一个SKU。string
那么刚才我说过了我的感受加上计量单位才算更加全面,
为何这么说,网上的例子也是很是棒的,仍是烟这个例子。咱们都知道烟的计量单位一箱子有20条,一条有10盒,一盒有20根。
不一样的人或者销售对烟的计量单位是不同的。
好比说,生产烟的烟厂,它卖烟必定是一箱一箱的卖,那么对于它来讲它的SKU应就是一整箱。
而小商店,小商城呢,必定是一条或一盒一盒的卖,那么这个SKU的计算应是条或者盒才对。
而在细化到你们聚餐喝酒,吸烟,你递我一支,我递你一支,这时的SKU计算是支才对。
因此从程序的角度理解这些感受是加上计量单位才完整。
不知道从真正的仓储,物流上怎么理解SKU和SPU,但愿懂的大神不吝赐教,很是感谢。
因此总结就是SKU是商城卖出货物的不能分割最小计量单位,包含了价格,颜色,尺寸,包装,等等的规格。
不一样的规格就是不一样的SKU,黑色和白色,软盒和硬盒就是不一样的SKU,而SPU是一组能够抽象的SKU的组合名称。
再有就是商品的条码barcode,我感受认为一个SKU,应该是只有一个条形码的就像我们买的矿泉水,纸笔,手机,等必定都有本身的一个条形码。
可是咱们采购的兄弟说一个东西是能够有不一样的条码的,是能够从新贴条码的,这东西我就很无奈,那就算是能够有吧,这在数据库设计时也有办法解决。
最后还有就是我在故事里讲的gsn,和我最开始提到的serial_number,这个是什么东西,通俗讲就是序列号,
我查了网上的一些资料,感受在买商品的时候不多说起序列号这东西,序列号是什么,我理解序列号就是商品的身份证。
不管商品到哪里怎么变幻按着序列号是变的且是惟一的。
那咱们故事中的gsn彻底不是序列号的意思,是的gsn在我接手以前,这个概念很是之弱化,你们居然都没人知道这个gsn是个什么东西,就知道这是咱们的一个序列号。
实际上这不是序列号,是咱们的SKU,这是我们的商城同事们作了一年的商城后,我给他们明确的概念。
在合做不算愉快磕磕绊绊的团队中,我不知道是由于我生气他们恨我,怕我,
仍是说我让他们了解了,更加清楚了看清了SKU,SPU,barcode,序列号,包括对接,ERP仓库,这些东西感谢我。
关于说商品编码的这块数据库设计就是一个SPU先有多个SKU,一个SKU下有一个或多个条码,有一个序列号。
大概就是这个样子:
SPU(
int id pk,
string code,
string name,
)
SKU(
int id pk,
int spu_id,
string spu_code,
string sku_code,
string sku_name,
string serial_number,
string unit,
string current_barcode,
timestamp update_time
)
barcode_history(
int id pk,
int sku_id,
string sku_code,
string barcode,
timestamp create_time
)
谈这些必定是要谈商品的设计的,而关于商品这块的数据设计,因为设计到多规格属性。我对现有的设计很不满意。
我本身也设计了一版,对比咱们如今设计是有天壤之别的,可是我也是感受仍是不满意,这个对多规格的设计仍是很头疼的。
不过,我会陆续把这个产品这块的总体设计和思路所有发出来。
最后最后,很是欢迎你们评论和讨论,whatever,什么都行。