GTIN 示例:格式、校验位与使用边界
GTIN 示例用来说明商品标识怎样书写,以及最后一位校验位怎样计算。完整 GTIN 有八位、十二位、十三位或十四位。一个号码长度正确、校验位也正确,并不表示它已经分配给你的商品、属于你的企业,或会被销售渠道接受。学习格式可以使用示例;商业商品的号码应从对应的 GS1、品牌方、制造商或经过验证的供应商记录中取得。
下文数字都是算术演示,未核实其商业分配状态,也不提供任何使用授权。不要把它们复制到真实商品、包装标签或供应商档案中。号码看起来真实,检查器也显示通过,仍然只能说明这串数字满足了相应的机械条件。要确认它与正在销售的商品有什么关系,还需要商品记录。
如果你只需要定义,可以先看什么是 GTIN。本文解决的是读懂示例、复算校验位、解释检查结果这三个相连的问题,不展开完整商品建档或 Feed 排错流程。GS1 的 GTIN 标准说明提供标识与贸易项目的标准背景,不能把本地计算器的结果当成 GS1 分配证明。
四种长度,使用同一套计算方法
GTIN 的位数包含最后的校验位。十三位号码由前十二位与最后一位组成,并不是十三位数字后面再补一个数字。使用计算页面时,先确认输入框要的是完整号码,还是尚未补校验位的前置数字。把完整值放进补位输入框,得到的结果就可能回答了另一个问题。
| 格式 | 校验位之前的位数 | 算术示例 | 最后一位 | 这个例子能说明什么 |
|---|---|---|---|---|
| GTIN-8 | 七位 | 12345670 |
0 |
八位数字,校验位计算一致 |
| GTIN-12 | 十一位 | 012345678905 |
5 |
十二位数字,开头的零需要保留 |
| GTIN-13 | 十二位 | 1234567890128 |
8 |
十三位数字,末位与计算相符 |
| GTIN-14 | 十三位 | 12345678901231 |
1 |
十四位数字,不代表已分配某种包装 |
表里没有任何一行能证明商业分配。不能因为某种长度更容易填进表单,就从表中挑一个号码给商品使用。实际贸易项目关联的标识才是起点,表格只是帮助识别完整数字的结构。也不要根据示例长得像某家公司的号码,就推断它属于那家公司。
日常交流里,GTIN-12 常与 UPC 一起出现,GTIN-13 常与 EAN 一起出现。条码是可以被设备读取的载体,GTIN 是它承载的标识。对方说“把条码发过来”,可能指完整数字、包装上的条码照片,也可能指后台某个字段。先确认收到的是哪一种材料,再决定怎样比较,能够减少把图片、编号和字段混在一起的误解。
GS1 Canada 的 GTIN 说明介绍企业前缀、项目参考、校验位和包装配置。阅读示例时,最后一位很好定位,但前面各个商业组成部分不能随意划分。不要把任意位置画成前缀分界线,再据此推断企业或商品归属;这种解释需要相应的分配背景。
从右向左读一个完整号码
以十三位示例 1234567890128 为例,先取出最后的 8,留下 123456789012。从这十二位最右边的数字开始,依次乘以三、一、三、一,向左交替。把乘积相加,再找出补到十的整数倍需要多少,得到的就是校验位。如果加权和已经是十的整数倍,校验位取零。
| 前置序列从左数的位置 | 数字 | 权重 | 乘积 |
|---|---|---|---|
| 第一位 | 1 | 1 | 1 |
| 第二位 | 2 | 3 | 6 |
| 第三位 | 3 | 1 | 3 |
| 第四位 | 4 | 3 | 12 |
| 第五位 | 5 | 1 | 5 |
| 第六位 | 6 | 3 | 18 |
| 第七位 | 7 | 1 | 7 |
| 第八位 | 8 | 3 | 24 |
| 第九位 | 9 | 1 | 9 |
| 第十位 | 0 | 3 | 0 |
| 第十一位 | 1 | 1 | 1 |
| 第十二位 | 2 | 3 | 6 |
乘积合计为九十二,补到一百需要八,因此完整示例是 1234567890128。用紧凑表达式写,就是 校验位 = (10 - (加权和 mod 10)) mod 10。最后再取一次余数,是为了让整十的情况得到零,而不是得到两个字符的“十”。校验位始终只有一位。
再看八位示例。前七位是 1234567,从左往右对应的权重为三、一、三、一、三、一、三,加权和是六十,因此末位为零,完整值为 12345670。这也说明,不宜死记“最左边一定乘一”或“最左边一定乘三”。不同长度下左端起始权重会变化;从校验位之前最右边的一位开始,才容易保持计算方向一致。
十二位示例 012345678905 的前十一位加权和是八十五,校验位为五。十四位示例 12345678901231 的前十三位加权和是一百零九,校验位为一。这些结果是针对示例数字进行的算术计算,不意味着它们与某个企业、品牌或包装建立了商业关系。读者可以复算,不需要也不应该因此宣称号码已经注册。
Ecomwith GTIN 工具可以辅助检查结构和校验位,适合开发或 Feed QA 中的机械检查。它不分配商业号码,也不证明商品有权使用某个值。本文讲的是怎样理解号码示例,没有解释工具实现、条码导出或其他功能行为;需要实际计算时,再进入工具页面。
校验失败能告诉你什么
如果相同的前十二位写成 1234567890129,末位就与计算不符。这是一个明确的结构问题,但它没有指出究竟哪一位抄错了。错误可能在最后一位,也可能在前面某一位,还可能发生在拼接或导出过程中。检查器看到的是最终字符串,看不到原始商业记录。
假设供应商材料以八结尾,表格却以九结尾,逐位比较可以定位到一个具体差异。重新计算能够说明这组前置数字应当配什么校验位,但不能单独决定真实商品记录怎样改。如果前面的数字本来就错了,只改最后一位也可能得到另一个通过计算的号码,商品对应关系仍然没有解决。
还有一种值得手算的情况:前置序列 123456789012 与 623451789012 的加权和分别是九十二与八十二。两者除以十的余数都是二,因此完整示例都以八结尾。数字变化使总和减少了十,却没有改变余数,所以检查仍然通过。这个反例只是在展示算术限制,不是在估计真实商品库里这种错误有多常见,也没有把第二个号码认定为某种已分配标识。
所以,通过检查之后仍要与来源完整比较。校验位可以帮助发现部分抄录错误,却不是品牌方的签名,也不能保证每一位都正确。遇到不一致时,保留原始值和有疑问的值,说明差异,再用商品来源材料解决。不要在没有证据的情况下,把“重新算出一个能通过的末位”写成“已经修复真实号码”。
开头的零也是数据
012345678905 是十二位。表格如果把它当普通数字处理,可能显示或导出成十一位的 12345678905。视觉上只少了一个零,原来的标识表示却已经丢失。准备示例或核对供应商资料时,应把编号作为文本保存,并查看最终导出内容,而不只看单元格的显示效果。
另一个概念是固定十四位表示:在要求这种表示的字段里,较短 GTIN 可以通过左侧补零表示。例如,同一个十二位算术示例可以写成 00012345678905。原有校验位仍在最右边,补上的零不会创建一个新分配的贸易项目,也不会把零售单件自动变成整箱商品。
这两类变化需要分别解释。数字转换造成的丢零,是数据保存问题;为了满足明确的固定宽度要求而左侧补零,是表示规范化。实际处理时保留原始值,并记录目的字段要求哪种形式。不能因为一个数据库用十四位,就断言所有表单、渠道或打印条码都应该使用十四位。
零加在哪里也会改变含义。左侧补零不等于中间插零,更不等于右侧追加零。在右边追加数字会把原校验位挤到前置序列里,使计算对象变化。只检查长度可能看不出这件事,必须比较完整字符串,并说清楚这次转换原本想完成什么。
做教学表格时,可以把十二位原值与十四位表示放在相邻两列,明确标注“同一示例的两种表示”。不要写成“两次分配”或“两种商品”。如果真实商品库里出现这两个字符串,仅凭表示不同,也不能判断两行记录是否代表不同商品;还需要商品资料和实际使用的规范化规则。
把四个问题分开回答
“有效”这个词如果没有说明检查范围,很容易造成误会。格式检查、分配记录、商品规格和渠道处理结果分别回答不同问题。把它们压成一个绿色通过状态,会让尚未解决的部分消失。记录结果时,用证据能够支持的最具体说法。
| 要回答的问题 | 可以使用的证据 | 这份证据还不能证明什么 |
|---|---|---|
| 字符串内部是否一致 | 支持的长度、数字字符、校验位计算 | 商业分配或商品关联 |
| 标识是否通过相应路径分配 | 对应 GS1、品牌、制造商或已验证供应商记录 | 当前销售配置是否正是该记录指向的项目 |
| 标识是否对应眼前商品 | 与号码相连的商品和包装资料 | 当前销售渠道的处理结果 |
| 目的端怎样处理了提交数据 | 目的端已处理商品和问题状态 | 普遍的归属保证或其他渠道也会接受 |
商品对应关系需要单独判断。一个号码可能出现在合法记录里,却不适用于你正在出售的这一项。单瓶和整箱可能是不同贸易项目;两个变体的大部分描述可以相同,但标识证据需要分别核对。示例中的数字本身没有足够信息来决定这些关系。
同样,已经上传不等于已经处理。Google 的查找 GTIN 指引说明商家应从哪里取得商品标识。商业提交应依据目的端要求与实际商品证据。本地算术通过不是 Merchant Center 接受回执,而渠道接受也不承诺曝光、排名或销售结果。
图里同一串数字会出现在多个位置,但每个位置的职责不同:有的是来源证据,有的是店铺字段,有的是渠道输入,有的是网页标记。在一个位置读到号码,不能证明另一个位置已经收到或处理了相同数据。当问题涉及页面与渠道两边时,可以看商品 Schema 与商品 Feed 的区别,先明确各自负责什么。
一个供应商表格场景
假设一家店铺准备上架瓶装商品,供应商表格同时列了单瓶描述、整箱描述和标识列。店铺另外还有一份员工练习表,里面放着校验位正确的算术示例。练习号码能通过计算,并不能让它变成这瓶商品的号码。这是一个假设场景,不是某家店铺的实际处理记录。
先分清三个对象:正在销售的单件、供应商的整箱配置,以及练习用的示例。店铺需要的是实际销售项与相应供应商记录之间的关联证据。不能因为整箱号码刚好能填进字段就选它,也不能在商业资料没拿到之前,用练习号码临时填空。格式检查无法替代这两项选择所需的证据。
如果供应商相关记录以零开头,导入表格后却丢了零,团队可以记录来源文本与导入文本的差异。这支持修正数据保存方式,不支持创造新号码,也不能据此宣布渠道现在一定会接受。这个发现的范围很明确:某种表示在导入时发生了变化。结论写到这里,后续证据才有地方继续补充。
假设同事又提出,单瓶和整箱号码都通过计算,因此任选一个即可。两者都通过,完全可能与它们代表不同贸易项目同时成立。下一份需要查看的材料是供应商的商品和包装关联,而不是再算一遍校验位。如果来源没有说清配置,对应关系就仍然待确认;整箱标签照片不能不加说明地充当单瓶证据。
这个场景最终能得到的,是一份有边界的解释:哪串数字通过计算、它来自哪条记录、哪项商品关系尚未证实。这里没有宣称假设店铺取得了商业分配、修复了拒登或改善了经营表现。示例的作用是帮助读者判断每份材料能支撑哪一步结论。
需要完整理解标识对象时,可以继续看GTIN 在商品 Feed 中识别什么。如果已经出现明确的缺失警告,则进入Missing GTIN 排查。定义与警告诊断分别有独立文章,本文不把相邻任务重新展开。
读标签、截图和复制文本时怎么解释
包装标签通常是容易拿到的候选来源,但练习记录应该说明实际读了什么。照片可能拍的是外箱,截图可能截掉第一位,文本导出可能去掉空格或开头的零。先记录这些限制,再判断两串数字是否真的不一致。来源看不清时,计算器的确定输出不能消除输入的不确定性。
空格可以帮助人阅读长号码,却不是数字标识本身的一部分。做示例比较时,可以保留原始抄录与整理后的比较值,说明去掉了什么。不要从一句话中机械删除所有非数字字符,再把剩下的数字拼成候选 GTIN;数量、日期或其他参考编号可能因此被接进去。
包装上也可能有多个编号。不能因为附近某个数字刚好是支持的长度,就认定它是 GTIN。应确认来源把哪个值标为商品标识。如果标签无法可靠辨认,就补充更清晰的材料或相应商品记录。一次偶然通过的计算,不足以把模糊的抄录变成确定的商品事实。
一条实用的说明可以写成:“从单件记录抄录十二位,保留开头零,算术检查通过,商品关联仍待来源确认。”它比“条码已验证”长一些,却能让复核者知道还缺什么。下一步可能是找清晰图片、问供应商,或拿到另一份产品记录,而不是反复运行同一个检查。
示例用于练习,不直接进入商品资料
一组练习可以包含末位一致、末位错误、开头丢零,以及较短值的十四位表示。每行注明练习目的和预期机械结果,让读者知道应该观察哪种变化。这样也能减少把“这道题算对了”理解成“这个商品已经可以使用该号码”的误会。
失败示例要说清楚失败点。如果想解释错误校验位,就保持前置序列不变,并给出应有末位;如果想解释丢零,就把原始字符串与损坏后的字符串并排展示。一次无说明地改变多处,会让读者虽然发现问题,却弄不清是哪种转换造成的。
练习材料与真实商品输入应分开放置。号码旁边注明“算术示例,未确认商业分配与商品对应关系”,导出练习表时也保留这句话,因为文件离开文章以后,原来的上下文可能不再可见。通过的示例同样需要标注,恰恰是它容易得到绿色结果,才更容易被误当成可以直接使用的资料。
本文没有宣称这些数字属于保留测试号段。它们可能与真实分配重合,这也是不能放到商业标签或商品列表中的原因。测试环境如果能够向真实目的端发送数据,应使用目的端有文档支持的测试安排与获准数据;文件名写着“测试”,并不自动获得商业使用或外部提交许可。
让别人能够复算你的结果
分享练习时,写出完整输入、所选长度、前置序列、加权和及应有末位。只有绿色结果的截图,省掉了产生结果的输入。收到截图的人无法判断开头的零是否保留,也不知道计算页面收到的是完整值还是待补位序列。
对十三位示例,一条可复算记录可以写清输入 1234567890128、前置序列 123456789012、加权和九十二、应有末位八,再说明未调查分配与商品对应关系。这样足以重复算术并理解边界,不会把练习包装成供应商核验记录。
如果另一人得到不同结果,先比较输入字符串,再讨论算法。检查字符数量、最右位置,并区分辅助阅读的空格与实际数字。输入不同,意味着双方还没有计算同一个例子。字符串一致之后,再对照权重表寻找算术差异,问题会清楚得多。
解释示例时的检查清单
- 先确认拿到的是完整号码,还是等待补校验位的前置数字。
- 逐位计数,保留开头的零,并把最后的校验位算在总长度内。
- 确认所讨论的格式是八位、十二位、十三位或十四位。
- 从校验位前最右一位开始,按三和一交替加权。
- 比较应有末位与实际末位,不悄悄改写商业商品记录。
- 抄录或规范化改变表示时,保留原始字符串和转换说明。
- 把练习数字标为示例,分配与商品关联未核实就明确写出来。
- 分别记录机械结果、分配证据、商品对应与渠道处理,不合并成一个“已验证”。
这份清单用于解释眼前示例。完整商品发布需要更广的流程,有争议的商业分配也需要相应来源核实。有关责任划分,可继续学习商品数据责任;完整诊断方法见商品 Feed 排错。它们仍是独立教程,本文不把课程步骤搬进来。
常见问题
能把 GTIN 示例用于正在销售的商品吗?
不能。示例说明结构或算术,不证明商业分配或与商品的关联。应从对应 GS1、品牌方、制造商或经过验证的供应商记录中取得标识。本文也没有把这些示例认定为保留测试号码。
校验位正确能证明 GTIN 真实吗?
只能证明末位与这串数字的加权计算一致,不能证明分配、归属、商品对应或渠道接受。多处错误也可能相互抵消而继续通过,因此还需要把完整值与来源比较。
应该去掉开头的零吗?
应把来源标识作为文本保留。有明确要求的固定十四位表示可以在较短 GTIN 左侧补零,但这不同于数字转换造成的丢零。按照目的字段的表示要求处理,不据此创造新的贸易项目。
检查失败后,直接改最后一位可以吗?
算术练习可以计算应有末位。商业记录的失败却不能指出哪一位错误,应先把完整值与权威商品来源比较。只重算末位可能掩盖前面数字的问题。
来源与延伸阅读
- GS1:Global Trade Item Number:商品标识与标准背景。
- GS1 Support:What is a product identifier?:标识术语。
- GS1 Canada:Global Trade Item Numbers:号码组成、校验位与包装背景。
- Google Merchant Center:查找 GTIN:商品数据中的标识来源。
需要处理示例之外的商品数据问题,可以从GTIN 与商品数据质量专题选择相应文章。
