首页 > 工具箱 > UPC/EAN 条码校验

UPC/EAN 条码校验与生成

上架前平台要校验条码,一位数字打错整批 listing 就被打回。这页把 GTIN 家族(UPC-12、EAN-13、ITF-14、EAN-8)的校验位算清楚,互相转换,识别前缀属于哪个国家,也能批量把一列条码过一遍找出错的那几个。想把码画成条形图,用 条形码生成

条码这套编号是怎么回事

校验位是怎么算的
GTIN 全家用同一套算法:从右边的数据位开始,依次乘 3、1、3、1……全部加起来得到 S,校验位就是「把 S 补到 10 的整数倍还差多少」,即 (10 − S mod 10) mod 10。以 EAN-13 的数据位 690123456789 为例:从最右的 9 起按 3、1 交替加权,得 S = 27+8+21+6+15+4+9+2+3+0+27+6 = 128,补到 130 还差 2,所以完整码是 6901234567892。因为权重是从右边数的,不同位数的码里同一个位置的权重不一样——UPC-12 的首位权重是 3,EAN-13 的首位权重是 1,这也是很多人手算出错的地方。本页会把每一位的权重和乘积都列出来。
UPC-A、EAN-13、GTIN-14 是同一个号
它们之间只差前面补几个零:UPC-A 的 12 位前面补一个 0 就是 EAN-13,EAN-13 前面再补一个 0 就是 GTIN-14。补零不会改变校验位(因为 0 乘任何权重都是 0,而补零的个数是偶数或不影响后续权重的排布)。GTIN-14 第一位不是 0 时叫「包装指示符」,1–8 表示不同的箱规层级,9 表示变量计量商品——所以同一款货的单件码和整箱码前 13 位一样、第 1 位不同,校验位也会跟着变。
UPC-E 是怎么压缩的
UPC-E 把 12 位压成 8 位,靠的是让厂商代码里出现连续的 0。压缩规则由最后一位数据位决定:它是 0/1/2 时还原成「厂商前两位 + 它 + 四个 0 + 产品后三位」;是 3、4 时零的位置各往后挪;是 5–9 时还原成「厂商五位 + 四个 0 + 它」。所以不是所有 UPC-A 都能压成 UPC-E,只有零的排布刚好符合上面四种模式的才行。本页会告诉你能不能压。
前缀不代表产地
690–699 是中国物品编码中心分配的,但它只说明这个厂商代码是在中国注册的,不代表商品在中国生产。一家中国公司在越南代工的货,条码照样是 690 开头;反过来外企在中国生产的货也可能是 40 开头。拿条码前缀判断产地是常见误区。
978 和 979 是图书
ISBN-13 就是以 978 或 979 开头的 EAN-13,所以它也能被普通条码枪扫。老的 ISBN-10 转 ISBN-13 的办法是:前面加 978、去掉原来的校验位、再按 GTIN 规则重算校验位。注意 ISBN-10 的校验位用的是模 11 算法,余数为 10 时写作 X,和 GTIN 的模 10 完全不同,不能混用。977 是期刊 ISSN,980–984 是各类票券。
EAN-8 不是 EAN-13 的缩写
EAN-8 是给包装太小放不下 13 位码的商品单独申请的短码,它和同款商品的 13 位码之间没有换算关系,必须单独向 GS1 申请。不要试图把 EAN-13 截短成 EAN-8。
相关工具
条形码生成二维码生成校验码计算亚马逊链接生成成本利润与 ROI 计算
已复制