GS1 条码标准的基础与现场运用注意事项
· 小村 豪 · GS1, 条码, GTIN, GS1-128, GS1 DataMatrix, 库存管理
在条码相关的咨询中经常出现的问题,是把「想加上 JAN」「想用 GS1-128」「想用 QR」当作同一层面的事情混在一起谈。
实际上,有些内容应该先分开来考虑:
- 想识别的是什么
- 想附加什么样的属性信息
- 用哪种符号来表示
- 读取之后,上层系统要如何解释
GS1 是把这 4 者串联起来的标准,它不仅是「编号方式」,还是一套涵盖数据含义、条码载体、排版与印刷质量、读取后处理的契约。1
以下内容以 2026 年 4 月时点可以确认到的 GS1 / GS1 Japan / 日本厚生劳动省资料为前提整理而成。
目录
- 先说结论
- GS1 标准化的层次
- 实务中最先应该区分的用途
- GS1 规定的代表性规则
- 实际运用中容易踩坑的要点
- 法规或行业要求较强的例子
- 推进导入的顺序
- 总结
- 参考资料
1. 先说结论
在 GS1 相关的实务中,首先要掌握的是以下 5 点。
-
GTIN 和条码的种类是两件不同的事。 GTIN 是商品识别代码,EAN/UPC、ITF、GS1-128、GS1 DataMatrix、GS1 QR 码是它的表现方式。把这两者混在一起,设计就会崩溃。23
-
仅靠 GTIN 是不够的场景很多。 如果要处理批次号、有效期限、序列号,就需要用 GS1 应用识别符(AI)单独附加这些属性。4
-
POS、物流、追溯(traceability)适合的符号不同。 面向消费者的 POS 以 GTIN 为中心,物流以 GTIN-14 或 SSCC 为主,追溯与受监管领域基本上是在 GTIN 上再加批次、期限、序列号。25
-
实际运用中的事故,多发生在接收方而非印刷本身。 如果没有事先决定好 FNC1、可变长 AI 的分隔、扫描仪设置、符号体系识别符、上层系统的解析器、商品主数据的更新规则,即使能读取也用不了。43
-
零售业向 2D 迁移正在推进,但目前仍处于过渡期。 在 GS1 面向零售的 2D 指南中,前提是在 POS 充分支持 2D 之前,需要同时并列印刷 2D 与供 POS 使用的线性条码。67
总而言之,与其从「如何生成条码」入手,先决定好 谁在何处读取、用于什么业务,会更不容易失败。
2. GS1 标准化的层次
2.1 识别代码
GS1 首先有一套用于「识别什么」的识别键。
识别商品的代表就是 GTIN。GTIN 分为 GTIN-8 / 12 / 13 / 14,在日本,GTIN-13 和 GTIN-8 作为 JAN 码被广泛使用。GTIN-13 用于单品或最小交易单位,GTIN-14 用于箱、托盘等集合包装。2
识别物流单位的代表是 SSCC。在托盘、箱等包装上贴 SSCC,并与出货数据关联,从而简化收货检验,这是很典型的 GS1 用法。5
这里重要的是,GTIN 是表示「是哪个商品」的键,并不兼任批次或期限的角色。批次和期限要放在另一个层次上处理。
2.2 决定属性信息含义的 AI
要附加在 GTIN 上的属性,由 GS1 应用识别符(AI)来定义。AI 是 2 到 4 位数字,用于决定后面数据的含义与格式。43
先列举一些代表性的例子。
(01)GTIN(00)SSCC(10)批次 / 批号(17)有效期限(21)序列号
GS1 中重要的不是「能读出数字串」,而是 能以相同的含义来解释这串数字。有了 AI,即使把多种数据放进同一条条码里,接收方也不容易理解错含义。4
2.3 作为数据载体的条码符号
接下来,「用什么来表示这些数据」就是数据载体(data carrier)。在 GS1 的体系里,这一层也要分开考虑。18
只表示 GTIN 的用途中,EAN/UPC(在日本称为 JAN 符号)和 ITF 至今仍被广泛使用。而如果还想表示日期、批次号等追加属性,GS1-128、GS1 DataMatrix、GS1 QR 码就是候选方案。3
这里常见的误解是,GS1-128 并不等于「Code 128 本身」。同样,GS1 DataMatrix 是 Data Matrix 面向 GS1 的子集,GS1 QR 码是 QR 码面向 GS1 的子集。它们用 FNC1 来表明符合 GS1 规则,并按照 AI 的语法排列数据。83
也就是说,「能生成 Code 128」和「能正确生成 GS1-128」并不是一个意思。
2.4 排版、尺寸、品质、HRI
GS1 的总规格书不仅涉及识别代码和 AI,还涵盖符号尺寸、X 尺寸、静区(quiet zone)、排版、品质评估,以及人可读解释(Human Readable Interpretation, HRI)。1
因此,条码不能像设计元素那样随意缩放。尤其是在物流或高速 POS 场合,印刷品质与排版会直接影响读取率。面向零售的 2D 指南也指出,排版以及多条条码的运用方式会直接关系到 POS 的处理速度。6
3. 实务中最先应该区分的用途
3.1 面向消费者的 POS
在收银台高速读取的用途中,首要目标是能稳定读出 GTIN。想加入更多属性的场景在增加,但现状仍处于过渡期,有时需要 2D 与线性条码同时并列印刷。67
所以,「以后是 QR 的时代,全部改成 2D」这种决定方式很危险。除了 POS 扫描仪能不能读取之外,还要确认 主机 POS 能接收什么、能使用什么。67
3.2 物流、出入库、SCM 标签
在物流领域,核心是箱、托盘单位的识别、收货检验,以及与出货数据的核对。在这个场景下,GTIN-14 或 SSCC 与 GS1-128 的组合至今依然很强势。25
在物流中,比「装了什么」更重要的是「把哪个单位和哪份数据关联起来」。与其只设计条码本身,把它和 ASN、出货实绩数据一起设计会更自然。
3.3 追溯与受监管领域
在医疗、食品、安全管理、期限管理等领域,仅靠 GTIN 往往是不够的。需要在 GTIN 上追加批次、有效期限、序列号,才能实现单品或批次级别的追溯。49
GS1 DataMatrix 的指南也提到,GS1 DataMatrix 主要设想用于开放系统,前提是交易对方也能以同样的含义读到同样的数据。8
这里重要的不是 能印刷出来,而是 能包括交易对象与监管机构在内,以相同的含义流通。
4. GS1 规定的代表性规则
4.1 GTIN 不是可以随意重复使用的编号
在 GTIN 编号时,重要的是判断「能不能继续沿用和之前商品相同的编号」。GS1 Japan 整理出了「GTIN 需要变更的 10 项基准」。把背后的判断依据粗略归纳一下,大致是以下 3 点。10
- 消费者或交易对方希望能与之前的商品区分开
- 存在法规或责任披露方面的要求
- 存在会影响出货、保管、收货等供应链环节的重要变更
在实务中,容易犹豫的是 涉及尺寸、容量、包装形态、销售单位、标示责任的变更。如果只凭营业判断来运作,之后会在电商、订货、库存、主数据联动上出现扭曲。
另外,在日本,2019 年之后原则上不能重复使用已经用过的 GTIN。11
如果不了解这一点,把 GTIN 当成「空出来就能重复利用的内部代码」来处理,就会和旧商品信息或电商平台上的历史记录发生冲突。包括商品主数据与对外公开数据在内,最好把 GTIN 当作长期保持意义的键 来看待,这样比较安全。
4.2 AI 分为固定长度和可变长度
GS1 的 AI 中,后面接续的数据分为固定长度和可变长度两种。如果要在非固定长度的 AI 后面接续别的元素,就需要用 FNC1 来分隔。GS1 的语法字典中,已定义长度的 AI 会标上 *,表示不需要 FNC1。4
比如,批次号的 AI (10) 是可变长度的。如果要在后面连接其他 AI,就必须让接收方能判断出 (10) 的值到哪里结束。这一点如果实现得马虎,就会做出 看起来像那么回事,却解析不了的条码。
在实务中,把固定长度的元素放前面,可变长度的元素放后面,分隔次数会减少,稳定性也会相当提高。12
4.3 FNC1 不是字符,而是控制符号
FNC1 并不是「输入一个叫 FNC1 的字符」的意思。GS1 Japan 的基础指南也整理说明,FNC1 是用于 GS1 标准条码的控制符号,用于在符号开头表明这是 GS1 数据,或者作为数据分隔符使用。3
而且,其表现方式在不同条码类型之间并不相同。例如在 GS1 QR 码中,模式指示符和数据分隔符的处理方式,与 1D 条码并不一样。3
重点在于,不要把内部表示、扫描仪输出、HRI 显示当成同一个字符串。
4.4 最好把扫描仪返回的字符串也当作规格的一部分
在现场对接中容易被忽略的是,扫描仪解码后附加的符号体系识别符。GS1 Japan 的资料中给出了例子:GS1-128 会以 ]C1、GS1 DataMatrix 以 ]d2、GS1 QR 码以 ]Q3 的形式通知给上层系统。3
这并不是直接印刷在条码上的内容,而是 扫描仪附加上「读到的是哪种符号」这一信息后再发送出来的。也就是说,接收方需要事先决定以下两者之一:
- 接收符号体系识别符并据此分支处理
- 在扫描仪一侧抑制 / 转换,应用侧只接收已经规范化的字符串
如果不先决定好这一点就先做 UI 和数据库,一旦换了检验终端,匹配判定就会全部崩掉。
4.5 加上 2D 并不代表马上就能替换
在 GS1 面向零售的 2D 指南中,2D 条码是未来的核心候选方案,但当下仍处于过渡期,在 POS 对 2D 的支持还没充分普及之前,需要 2D 与线性条码同时并列印刷。6
另外,即便同样是 2D,GS1 DataMatrix 相对容易读取,但使用 GS1 Digital Link 的 QR / Data Matrix 的处理,会受限于最新或已更新的相机式扫描仪,以及主机一侧的支持情况。67
「有能读取的扫描仪」和「本公司的 POS / WMS / ERP 能作为业务使用」是两件不同的事。
5. 实际运用中容易踩坑的要点
5.1 在没有版本管理的情况下覆盖商品主数据的 GTIN
如果中途改变 GTIN 的含义,或者把过去的 GTIN 分配给别的商品,电商、订货、库存、分析、报表、数据库登记都会逐渐出问题。1011
在实务中,负责 GTIN 编号的人、负责更新商品主数据的人、负责出标签的人往往是分开的。所以,不只是编号规则,变更申请与历史管理的流程 也最好一并建立起来,这样更安全。
5.2 直接把「带括号的字符串」当成输入规格
在 GS1 的说明资料和 HRI 中,AI 大多以 (01) 或 (17) 这种带括号的形式表示。这是为了方便人眼辨别其含义。6
而在扫描仪输出或内部解析中,则是包含 FNC1、符号体系识别符的另一种表现形式。 也就是说,把用于显示的字符串和用于机器处理的字符串分开 会更安全。
5.3 不能只凭「读到了」就验收
GS1 中也定义了无效的 AI 组合,以及某些 AI 必须与特定 AI 组合使用的规则。43
印刷测试中读到一次就算完事,这样是不够的。至少应该分开确认以下几点:
- 能否作为符号被读取
- 能否收到预期的字符串
- AI 的分隔与长度是否正确
- 上层系统能否按照业务规则正确解释
- 是否与商品主数据 / 出货数据 / 数据库保持一致
扫描成功 ≠ 业务成功。
5.4 不能只凭屏幕上的外观来判断印刷品质
GS1 的总规格书中有关于 X 尺寸、静区、品质评估的规则。在物流场景下,GS1-128 与 2D 所要求的尺寸和留白也不一样。1
在实际运用中,以下这些不起眼的因素会导致读取率骤然下降:
- 标签打印机的分辨率与热转印条件
- 纸板或薄膜上的墨水扩散
- 光泽面或反光
- 印刷在曲面上
- 设计调整时随意缩小
- 压缩留白的排版变更
所以,判断基准不应该是 在 Illustrator 或 PDF 上看起来如何,而应该是 用实际的印刷物,在实际的距离、角度、扫描仪下读取的结果。
5.5 随意并排多条条码
面向零售的 2D 指南明确指出,多条条码的排列规则会影响 POS 的处理速度。6
在实务中,以下组合容易出事故:
- 在 POS 用的 JAN 附近放置营销用的 QR
- 线性条码和 2D 条码离得太近
- 把期限或批次的 HRI 塞进不容易读的位置
- 背面、侧面、吊牌上的扫描方向没有对齐
对于多条条码,不能只考虑「能不能放上去」,还要决定好 希望优先读取哪一个,这样才算得上是完整的设计。
5.6 没有确认现场实际会用到哪些 AI
GS1 面向零售的 2D 指南也指出,并非所有零售商都能使用所有 AI,哪些 AI 可用,会因读取场所而不同。13
比如,即便制造商想把 GTIN + 有效期限 + 批次都放进去,如果接收方只用 GTIN,那这些价值就只体现在上游。反过来,如果打算在现场使用期限信息,就需要连同 WMS、盘点、报废判定一起做好对应。
把 放进去的数据 和 实际使用的数据 分开确认,会让导入更容易推进。
6. 法规或行业要求较强的例子
6.1 零售业的 2D 迁移
GS1 已经整备了面向零售 POS 的 2D 条码标准化与迁移指南,未来方向是以 2D 为中心。不过目前仍处于过渡期,在 POS 一侧的读取与处理能力充分普及之前,与线性条码并列印刷是比较现实的做法。67
所以,在 B2C 商品上加上 2D 时,至少应该分别确认以下几点:
- 扫描仪能否读取
- 主机 POS 能否解释
- 是否需要保留线性条码
- HRI 与排版能否承受收银运营的实际使用
6.2 日本的医疗器械等领域
在日本的医疗器械、体外诊断用医药品等领域,通知中给出了相当具体的运用要求,包括按包装单位标示商品代码与制造识别符,以及使用 GS1-128 或 GS1 DataMatrix 作为条码符号体系等。9
这里重要的是,GS1 并不只是「民间为图方便而定的规则」。 实际上,法令、通知、行业指南、数据库登记,以及医院和流通方的运营,都是建立在 GS1 的前提之上叠加起来的。
在这类领域,不能只是「公司内部能读就行」,而需要 配合制度、交易对象、现场运营来使用 GS1 的思路。
7. 推进导入的顺序
如果想让条码导入不容易出问题,顺序大致可以归纳成下面这样。
-
确定业务用例 是 POS、还是出入库检验,还是追溯。
-
确定识别键 是 GTIN、GTIN-14,还是 SSCC。必要时也包括 GLN 等。
-
确定所需的属性 按 AI 逐一确定批次、有效期限、序列号、重量、价格等。
-
确定符号 EAN/UPC、ITF、GS1-128、GS1 DataMatrix、GS1 QR 码中哪一种更自然。
-
确定扫描仪输出规格 是否接收符号体系识别符、如何规范化 FNC1、要传给主机什么数据。
-
确定商品主数据与变更规则 把 GTIN 的新编号、变更、停用、不可重复使用、历史管理都明文规定下来。
-
用实物做印刷验证 用实际的标签、实际的包装材料、实际的扫描仪、实际的距离进行确认。
-
一直做到业务测试 要看的不是「能读取」,而是「盘点、检验、出货、期限管理是否都能跑起来」。
归根结底,在选择标签制作软件之前,先确定接收方的规格,才是捷径。
8. 总结
在 GS1 等条码标准中,最先要重视的是 把编号、属性、符号、读取后的处理分开来考虑。
- GTIN 是识别商品的键
- AI 是数据的含义与格式
- GS1-128 / GS1 DataMatrix / GS1 QR 码是表现手段
- 实现要包括品质、排版、FNC1、扫描仪输出、商品主数据运营
把这些分开来设计,条码就能从「只是能印出来的东西」,变成能与交易对象、现场共享的业务接口。
反过来,如果把这些混在一起推进, 条码明明能读到,库存、检验、追溯却会出问题。
使用 GS1 时, 比起先决定 贴哪种代码,先确定 谁读取什么、在哪个系统中用于什么,才是更实务的做法。
9. 参考资料
-
GS1 / GS1 Japan, GS1 General Specifications, GS1 Japan 公开 PDF ↩ ↩2 ↩3 ↩4
-
GS1, GS1 Application Identifiers, GS1 Barcode Syntax Resource User Guide ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
GS1 Japan, GS1-128 符号, SSCC(出货包装序列号) ↩ ↩2 ↩3
-
GS1, 2D Barcodes at Retail Point-of-Sale Implementation Guideline ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9
-
GS1 Support, What 2D barcodes can be read at Point-of-Sale scanners today? ↩ ↩2 ↩3 ↩4 ↩5
-
GS1 / GS1 Japan, GS1 DataMatrix Guideline, GS1 DataMatrix 指南(日文 PDF) ↩ ↩2 ↩3
-
日本厚生劳动省, 关于用于识别医疗器械的符号在容器上的标示等 ↩ ↩2
-
GS1 Japan, GTIN 需要变更的 10 项基准, GTIN 设定指南 ↩ ↩2
-
GS1 Japan, 关于停止重复使用 GTIN ↩ ↩2
-
GS1, GSCN 16-154 - pre-defined length element strings should appear before variable length element strings ↩
-
GS1, 2D Barcodes at Retail Point-of-Sale Implementation Guideline - common AI support varies by retailer / use case ↩
相关文章
共享相同标签的最新文章。可以围绕相近的主题进一步加深理解。
用 PerfView 与 dotnet-trace 定位“变慢”的原因 ── .NET 性能排查实务入门
当业务应用出现“变慢”“CPU 占满”“偶尔卡死”时,该用哪个工具看什么?本文梳理 PerfView 与 dotnet-trace 的分工、CPU 采样的解读方法(inclusive/exclusive)、用 ThreadTime 排查阻塞时间,以及与 EventSourc...
面向 BtoB 企业的 Google 广告小预算运营 ── 用每月数万日元做出成果的设计与每周操作流程
本文面向希望以每月数万日元预算启动 Google 广告的 BtoB 企业,是一份实务指南。内容整理了平均每日预算与结算上限的运作原理、转化跟踪的搭建、聚焦高意向关键词、否定关键词与搜索字词报告的每周运营方法,以及小预算下的出价策略选择,均以 Google 官方资料为依据。
打造能被地区名搜索到的网站 ── 中小企业的本地SEO实战指南(地区页面与Google商家资料)
用「地区名称+行业」搜索却找不到自家公司的中小企业,适合看这篇。内容涵盖修正本地SEO的先后顺序:整理Google商家资料、统一NAP信息、设计地区页面、网站端的基础建设,以及在Search Console上衡量效果,全部以Google官方信息为依据整理成实务步骤。
Windows 事件日志・ETW 入门 ── 让业务应用程序的日志接入操作系统标准机制
Windows 业务应用程序的日志,是不是只靠文件日志来解决?事件日志与 ETW,是运维人员和操作系统标准工具所能看到的另一层记录。本文整理三种手段的分工方式、.NET 中的写入方法、通过 EventSource 进行的 ETW 埋点、收集与排查的实务做法,以及来源未注册、...
不只是 appsettings.json ── Windows 业务应用的配置管理实务(环境差异化设置・敏感信息・写入位置)
本文从实务角度整理 Windows 业务应用的配置管理,涵盖 appsettings.json 的分层、IConfiguration 与 IOptions/IOptionsSnapshot/IOptionsMonitor 的选用方式、环境差异化设置、可写入配置的存放位置、敏...
常见问题
汇总了咨询这一主题时常见的问题。
- GTIN 和条码的种类有什么区别?
- GTIN 是商品识别代码,而 EAN/UPC、ITF、GS1-128、GS1 DataMatrix、GS1 QR 码是它的表现方式(数据载体)。把这两者混在一起,设计就会出问题。GTIN 分为 GTIN-8 / 12 / 13 / 14,在日本,GTIN-13 和 GTIN-8 作为 JAN 码被广泛使用。GTIN-13 用于单品或最小交易单位,GTIN-14 用于箱、托等集合包装。GTIN 是表示「这是哪个商品」的键,并不兼任批次或有效期的角色。
- GS1 应用识别符(AI)是什么?
- AI 是决定要附加在 GTIN 上的属性含义与格式的 2 到 4 位数字。代表性的例子有 (01) GTIN、(00) SSCC、(10) 批次/批号、(17) 有效期限、(21) 序列号。有了 AI,即使把多种数据放进同一条条码里,接收方也不容易理解错含义。AI 分为固定长度和可变长度两种,如果要在可变长度的 AI 后面接续其他元素,就需要用 FNC1 来做分隔。
- GS1-128 和 Code 128 是同一种东西吗?
- 不是同一种东西。GS1-128 是 Code 128 面向 GS1 的子集(subset),它用 FNC1 来表明符合 GS1 规则,并按照 AI 的语法排列数据。同理,GS1 DataMatrix 是 Data Matrix 面向 GS1 的子集,GS1 QR 码是 QR 码面向 GS1 的子集。也就是说,「能生成 Code 128」和「能正确生成 GS1-128」并不是一个意思。
- 用过一次的 GTIN 可以重新分配给其他商品吗?
- 在日本,2019 年之后原则上不能再重复使用已经用过的 GTIN。如果把 GTIN 当成「空出来就能重复利用的内部代码」来处理,就会和旧的商品信息或电商平台上的历史记录发生冲突。另外,GS1 Japan 整理了「GTIN 需要变更的 10 项基准」,在涉及尺寸、容量、包装形态、销售单位、标示责任等方面发生变更时,可能需要启用新的 GTIN。包括商品主数据和对外公开的数据在内,都应该把 GTIN 当作一个长期保持意义的键来对待。
作者简介
本文作者的个人简介页面。
Go Komura
小村软件有限公司 代表
以 Windows 软件开发、技术咨询与故障排查为中心,擅长难以复现的故障调查,以及既有资产仍在运行的项目。