GTIN 格式转换器
亚马逊要 UPC,Google 要 GTIN,仓库要箱码 —— 同一件商品,三种格式。粘贴一列条码,选好目标,拿回一份干净的 CSV。
🔒 你的数据不会离开浏览器。
什么能转成什么
| 从 → 到 | 发生了什么 |
|---|---|
| UPC-A → EAN-13 | 前面补一个零。校验位不变 —— 它是同一个商品代码。 |
| EAN-13 → UPC-A | 去掉前导零。只对以 0 开头的码有效。 |
| 任意 → GTIN-14 | 在最前面加一位指示位,并重新计算校验位。 |
| GTIN-14 → EAN-13 | 去掉指示位并重新计算校验位(箱码自己的校验位不会沿用)。 |
| GTIN-8 → 任何格式 | 拒绝 —— 见下文。 |
为什么 GTIN-8 不能转换
GTIN-8 来自一个独立的 GS1 号段,专门分配给小到放不下完整条码的包装。给它补零得到的 13 位数字,属于一个完全不同的厂商识别代码。任何声称能把 GTIN-8「转换」成 EAN-13 的工具,递给你的都是别人家的商品代码。
为什么有些 EAN-13 没有 UPC 形式
UPC-A 其实就是首位为 0 的 EAN-13 —— 那个 0 属于美国/加拿大的前缀号段,可以省略不写。而以德国前缀(400–440)之类分配的码,根本不存在 12 位形式。美国各平台的 UPC/GTIN 字段接受 13 位的值。
校验优先
每个码转换前都先校验。如果校验位错了,或者值已被表格软件损坏,转换会被拒绝并给出原因 —— 因为比一个系统里有一个坏条码更糟的,是五个系统里都是同一个坏条码。
本工具执行的全部检查(共 26 条规则)
INPUT-001 输入为空
去掉空白和格式字符之后什么都不剩。
修复: 请输入一个 GTIN:8、12、13 或 14 位数字。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-002 科学计数法损坏(Excel)
输入形如 “8.71E+12”。Excel 会把长数字转成科学计数法,并永久丢弃中间的数位——原始 GTIN 无法从这个值还原。
修复: 回到源文件。在 Excel 里先把该列设为「文本」格式(或在数值前加一个半角单引号),再重新导出。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-003 已移除格式字符
校验前去掉了空格、连字符、千分位分隔符,以及不可见字符(零宽空格、BOM、不换行空格)。从表格、PDF 或网页复制时很常见。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-004 已转换全角数字
全角数字(123,常见于中日韩输入法与文档)已转换为标准的半角数字。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-005 含非数字字符
清洗之后,输入里仍有不是数字的字符。GTIN 只由数字组成。
修复: 去掉字母和符号。如果数据里混进了内部 SKU,请单独取出条码所在的数字列。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-006 11 位——很可能被吃掉了前导零
以 0 开头的 UPC-A 被 Excel 当作数字处理时会丢掉前导零。11 位本身不是合法的 GTIN,但它极常见地是一个丢了首位 0 的 UPC-A。
修复: 补一个 0 后重新校验。要从根上避免,请在 Excel 里把条码列设为「文本」格式。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-007 长度不合法
GTIN 必须恰好是 8 位(GTIN-8 / EAN-8)、12 位(GTIN-12 / UPC-A)、13 位(GTIN-13 / EAN-13)或 14 位(GTIN-14 / 箱码)。
修复: 检查是否被截断或与其他值连在了一起。7 位的值可能是丢了前导零的 GTIN-8。
INPUT-008 已移除末尾的 “.0”(表格软件的数值转换)
形如 “4006381333931.0” 的输入,说明这个值经过了某个把它当浮点数处理的工具(Excel、pandas)。“.0” 已被去掉、校验照常进行——但请检查该列其余的值有没有更严重的损坏(科学计数法、丢失的零)。
修复: 在源头把该列设为「文本」格式,从根上阻止数值转换。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
CHECK-001 校验位不匹配
最后一位必须等于前面各位按 GS1 模 10 算法(自右起 3、1、3、1… 交替加权)算出的校验值。不匹配意味着录入错误、OCR 识别错误,或者这个码是编造的。
修复: 与实物包装上条码下方印的数字逐位核对。不要直接把校验位改成算出来的那个数,除非你确认其余各位都是对的。
FORMAT-001 GTIN-12 ⇄ GTIN-13 等价
UPC-A(GTIN-12)前面补一个 0 之后,与它的 GTIN-13 形式是同一个商品代码,校验位不变。不同平台可能显示其中任意一种形式。
FORMAT-002 13 位且以 00000 开头——很可能是被错存的 GTIN-8
GTIN-8 是独立的号段,不是补零得到的 GTIN-13。13 位且以 00000 开头,通常意味着一个 GTIN-8 被存进了 13 位的字段;把它当 EAN-13 解读会把前缀归属判错。
修复: 如果源头的条码是 8 位,请按 GTIN-8 校验(取后 8 位)。
FORMAT-003 GTIN-14 的指示位
GTIN-14 的首位是指示位:1–8 表示包装层级(例如基本单元的整箱),9 表示变量计量贸易项目,0 表示该值等价于它所包含的 GTIN-13。
FORMAT-004 GTIN-8 有自己的号段
GTIN-8(EAN-8)由 GS1 为小包装直接分配。GTIN-8 不是截短的、也不是补零的 EAN-13,它开头几位是 GS1-8 前缀,而不是厂商识别代码。
RANGE-001 GS1 前缀归属
(按 GTIN-13 形式)前三位标识分配这个号码的 GS1 成员组织。这不是原产地——在任何地方生产的商品,都可能带着任何一个 GS1 成员组织的前缀。
RANGE-002 受限流通号段(店内码)
020–029、040–049 和 200–299 前缀保留给受限流通用途:店内码、变量计量商品、内部编号。它们是合法条码,但不能作为商品 GTIN 发布到公开平台(亚马逊、Google 购物等)。
修复: 公开销售此商品前,先从 GS1(或品牌方)获取一个真正的 GTIN。
RANGE-003 优惠券号段
050–059、981–984 和 990–999 前缀标识的是优惠券,不是商品。商品数据源里出现优惠券码会被平台拒收。
RANGE-004 ISBN(Bookland 978/979)
978 和 979 前缀是图书标识(ISBN-13 的 EAN 形式);其中 979-0 专用于印刷乐谱的 ISMN。作为条码是合法的,但图书类目通常要求把 ISBN 填在专门的 ISBN 字段里。
RANGE-005 ISSN(977)
977 前缀标识连续出版物(期刊、杂志)——它是 ISSN 的 EAN 形式,不是普通的商品 GTIN。
RANGE-006 前缀不在本工具的表内
这个前缀不在本工具的 GS1 前缀表里。GS1 会不断分配新前缀,所以仅凭这一点不能判定该码无效——但请核实号码的来源。
PLAUS-001 全零
全零的值能算过校验位,但不是真实的 GTIN——它是「没有条码」最经典的占位写法。
修复: 取得该商品真正的 GTIN;平台会拒收全零的码。
来源: Yaktool plausibility rule — these values pass the GS1 checksum but are placeholders that marketplaces reject in practice. Sourced from documentation samples and observed feed data, not from a GS1 specification.
PLAUS-002 所有数位相同
每一位都一样(例如 4444444444444)。即便校验位碰巧算得过,这类值也是占位码,不是被分配出去的 GTIN。
修复: 取得该商品真正的 GTIN。
来源: Yaktool plausibility rule — these values pass the GS1 checksum but are placeholders that marketplaces reject in practice. Sourced from documentation samples and observed feed data, not from a GS1 specification.
PLAUS-003 已知的占位码 / 示例码
这个值正是文档和教程里广为流传的演示码(例如 1234567890128)。它能算过校验位,却不指向任何真实商品,平台会把这类码列入黑名单。
修复: 换成实际分配给你的商品的那个 GTIN。
来源: Yaktool plausibility rule — these values pass the GS1 checksum but are placeholders that marketplaces reject in practice. Sourced from documentation samples and observed feed data, not from a GS1 specification.
CONV-001 未转换——输入不是合法的 GTIN
输入没通过校验时拒绝转换。把一个校验位错误或数位已损坏的码转换出去,等于让同一个坏号码扩散到每一个销售渠道。
修复: 先修掉校验错误,再做转换。
CONV-002 GTIN-8 不能转换
GTIN-8 是 GS1 为小包装分配的独立号段,不是缩短版的 EAN-13。把 GTIN-8 补零到 13 位,得到的号码归属于完全不同的厂商识别代码。
修复: 原样使用这个 GTIN-8。如果某个渠道要求 13 位或 14 位,只在该渠道自己的字段内补零(GS1 数据库就是这么做的),绝不要把它当成一个新的商品代码。
CONV-003 该 GTIN-13 没有对应的 UPC-A 形式
只有以 0 开头(美国/加拿大厂商识别代码)的 GTIN-13 才有 12 位的 UPC-A 形式。以其他前缀分配的码,根本不存在合法的 UPC 表示。
修复: 保留 13 位形式——美国各平台的 GTIN / UPC 字段都接受 GTIN-13 的值。
BATCH-001 批次内重复
同一个 GTIN 在这批数据里出现了不止一次(比较前统一补零到 14 位,所以一个 UPC 和它的 GTIN-13 形式算作同一个码)。不同商品用同一个 GTIN 会让平台上架失败。
修复: 每一个不同的商品 / 包装层级都需要各自的 GTIN。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
转换器先校验再转换,所以任何一条没通过的码都会被拒绝,而不是被传播到另一个渠道。这就是为什么这份清单是完整的规则集,而不是只与转换相关的子集。
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的;本工具的来源最近一次复验于 23 August 2026. 规则如何编写、测试与保持更新 →