变量计量条码解码器
熟食、果蔬或肉品的秤会打出一个以 02 或 20–29 开头的 EAN-13,价格或重量就写在号码里面。把它粘贴进来,即可看到货号、内嵌金额,以及价格校验位对不对 —— 并且是在每一套使用该前缀的国家写法下分别给出,因为同样的十三位数字在不同国家含义不同。
🔒 你的数据不会离开浏览器。
解码一个号码
构造一个号码(价格校验位计算器)
用于配置秤或标签打印机:选好写法,给出货号与价格或重量,即可得到带校验位和校验码的完整号码 —— 每一步加权乘积都展示出来,可以逐项对照标准核算。
为什么普通的校验位计算器做不了这件事
每一个免费的条码计算器算的都是最后那一位 —— 每个 GTIN 都有的模 10 校验位。而内嵌价格的号码在中间还带着第二个校验位:价格校验位,它只由价格数位按 GS1 的加权因子 2−、3、5+、5− 算出。四位价格字段用的因子与五位的不同,所以拿普通的校验位计算器算这一位,得到的一定是错的。
这是哪个国家的写法?
GS1 只定下框架:前缀 02 与 20–29 是受限流通编码,由各成员组织自行分配,而通用规范的表 2-29 也只是推荐了四种结构。前缀之后各位数字的含义由各国自行决定 —— 这正是本工具逐套写法都取自其成员组织自己那份文档、而不是照抄某个二手清单的原因。
- GS1 US(北美) —— 前缀 02 · 5 位货号 · 校验位 · 4 位价格 · GS1 General Specifications §2.1.12.2 (first row: the structure specified by GS1 US) ↗
- GS1 UK —— 品牌变量计量 —— 前缀 20, 28 · 5 位货号 · 校验位 · 4 位价格 · GS1 UK — How to barcode variable measure items ↗
- GS1 UK —— 店内 —— 前缀 02 · 4 位货号 · 校验位 · 5 位字段 · GS1 UK — How to barcode variable measure items ↗
- GS1 Australia(VMN-13) —— 前缀 22, 24, 28, 29 · 4 位货号 · 校验位 · 5 位字段 · GS1 Australia — Retail Point-Of-Sale variable measure Fact Sheet (Aug 2023) ↗
- GS1 Germany(Spezialcode 专用码) —— 前缀 22, 23, 25, 26, 28, 29 · 4 位货号 · 校验位 · 5 位字段 · GS1 Germany — GTIN in der Anwendung v1.1, Tabelle 8 & 9 ↗
- GS1 Sweden(受限流通编码) —— 前缀 20, 21, 22, 23, 24, 25 · 6 位货号块 · 4 位取值 · 无校验位 · GS1 Sweden — How do I create my Restricted Circulation Numbers? ↗
- GS1 Greece(变量计量前缀) —— 前缀 25, 26, 27, 28, 29 · 5 位货号块 · 5 位取值 · 无校验位 · GS1 Greece — Barcoding Variable Measure Trade Items ↗
同一个前缀会出现在好几份清单里 —— 22 在澳大利亚是带校验位的五位澳元价格,在瑞典则是不带校验位的整数克朗价格。所以解码器会把该前缀下每一种有文档依据的读法都列出来,把校验位对得上的排在前面,并允许你在知道国家时把它钉住。不带校验位的写法永远无法被排除 —— 这一点会明说,而不是替你挑一个。
本工具不做什么
它解码的是号码,不是条码的照片。它只认识上面列出的那几套写法 —— 换成其他国家、或某家零售商的私有格式,它只会展示 GS1 推荐的那四种拆分方式,到此为止。北美读法假定两位隐含小数,因为标准把小数点位置留给贸易伙伴约定;英国、澳大利亚与德国的两位小数则来自各自成员组织的文档。
本工具执行的全部检查(共 15 条规则)
VMN-001 不是 12 位或 13 位数字
变量计量的受限流通编码是 RCN-13(EAN-13)或 RCN-12(UPC-A)。RCN-8 放不下价格或重量字段,而含非数字字符的输入无法解码。
修复: 粘贴 EAN-13 下方的 13 位数字(或 UPC-A 下方的 12 位),只要数字。
VMN-002 校验位错误
最后一位是前 12 位的标准模 10 校验位,与任何 GTIN 一样。扫描器在读到价格之前就会先拒绝这个符号。
修复: 重新计算最后一位;如果这个号码来自秤,那是秤的配置有问题。
VMN-003 前缀不属于变量计量号段(02 或 20–29)
只有 GS1 前缀 02 与 20–29 会被成员组织分配给变量计量贸易项目。其他前缀是普通 GTIN、优惠券或出版物号码:里面没有嵌入任何东西。
修复: 如果你以为这个号码里有价格,那它并不是由带变量计量前缀的秤打出来的。
VMN-004 前缀 04 是企业内部的定量商品编号
GS1 前缀 04(UPC 系统位 4)保留给定量商品的企业内部编号。它属于受限流通编码,但 GS1 没有为它定义任何价格或重量结构。
修复: 找分配这个号码的企业查各位数字的含义。
VMN-005 价格 / 计量校验位与所选写法不符
在所选的国家写法下,校验位由价格或计量数位按 GS1 的 2−、3、5+、5− 加权因子算出。不符意味着价格编错了,或者这个号码并不是按这套写法写的。
修复: 用价格数位重新计算校验位,或者改选这张标签实际所属的那套写法。
VMN-006 没有任何带校验位的写法能对上
所有能匹配这个前缀、且带校验位的写法,算出的校验位都与号码里的那一位不同。要么这个号码用的是不带校验位的写法(瑞典、希腊,以及 GS1 推荐的 20–29 写法都没有校验位),要么价格数位是错的。
修复: 先确定这张标签来自哪个国家或地区;如果那套写法带校验位,就用价格数位重算一遍。
VMN-007 校验位与这些写法一致
号码里的校验位,与按下列写法从价格数位算出的结果相同。一致是判断写法的有力证据,但不是证明 —— 十分之一的概率会碰巧对上。
VMN-008 已归一化 12 位 UPC-A 形式
以 2 开头的 12 位号码是 UPC-A 形式的 RCN-12(系统位 2)。前面补一个零就得到 13 位形式,前缀为 02 —— 各套写法正是定义在这个形式上的。
VMN-009 嵌入的价格或计量为零
价格或计量字段全是零。秤在称重之前就打印,或者扫到的是测试标签时,就会出现这种标签 —— 结账时不会计任何金额。
修复: 重新称重并重新打印标签。
来源: yaktool engineering rule: not from the GS1 General Specifications, which permit any digits in the field.
VMN-010 受限流通 —— 不是可上架的 GTIN
受限流通编码只在分配它的门店、企业或地区内部有意义,不得用于开放环境。它不能作为商品 GTIN 发布到亚马逊、Google 购物或任何平台,也不能带着应用标识符出现在 GS1-128 或二维符号里。
修复: 公开销售此商品需要一个真正的 GTIN,向 GS1 或品牌方获取。
VMN-011 该前缀被多套国家写法使用
20–29 前缀由各 GS1 成员组织各自独立分配,所以同样两位数字在不同国家含义不同(22 在澳大利亚是带校验位的五位价格,在瑞典是整数克朗价格)。并列展示的都是有文档依据的读法。
修复: 先确定这张标签来自哪个国家或地区,再取对应的那一种读法。
VMN-012 货号位数不对
每套写法都固定了货号占多少位(四位价格字段时是五位,五位价格字段时是四位,不带校验位时是六位或五位)。货号长了或短了,它后面的每一个字段都会错位。
修复: 给货号补前导零,或缩短到该写法所用的长度。
VMN-013 取值放不进字段
带两位隐含小数的四位价格字段最大到 99.99,五位的到 999.99,五位的克字段到 99999 g。再大就必须换一个前缀或写法才能编码。
修复: 改用字段更大的写法,或换一个计量单位,或者把商品拆开。
VMN-014 小数位多于隐含小数点所允许的位数
小数点不在条码里;写法固定了这个字段带几位小数。小数位更多的取值会被秤静默四舍五入,结果是顾客被收了另一个金额。
修复: 编码前先把取值四舍五入到该写法允许的小数位数。
VMN-015 前缀不属于所选写法
每套国家写法各自使用特定的前缀;当前缀决定字段含义时(瑞典:20–22 价格、23–25 重量;德国:22/23 价格、25/26 计数、28/29 重量),前缀就必须给出。
修复: 从该写法有文档记载的前缀里选一个。
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →