GS1 Digital Link 二维码生成器
一个 GTIN 错误的二维码扫起来完美无缺 —— 然后在收银台失败,而那时它已经印在一万个箱子上了。本生成器拒绝做出那种码:GTIN 先校验,限定符按标准强制的顺序排列,保留字符按标准自带的对照表编码,而每一个生成出来的 URI 都会用驱动我们Digital Link 检查器的同一个解析器复验一遍。
🔒 你的数据不会离开浏览器 —— 校验、URI 构造与二维码渲染全部在你的机器上完成。
批量
每行一个 GTIN。符合规范的会打包成 SVG 的 ZIP;被拒绝的会连同原因一起列出 —— 不会有任何一行被悄悄丢掉。批量模式只编码 GTIN:上面那些限定符字段在这里不生效,这是有意的 —— 把同一个序列号盖到许多件商品上,恰恰会让序列化失去意义。
关于 Sunrise 2027,如实说明
Sunrise 2027 是一个行业能力里程碑,不是法律强制:该倡议「给出了一份计划,以确保到 2027 年底,二维条码能在任何零售 POS 上被扫描和处理」。义务的方向是零售商的 POS 能力;对品牌方而言,加上二维码是准备工作,不是合规义务。 (GS1 US)
过渡期内,GS1 US 把双重标记描述为「必备的一维条码 + 可选的二维条码」。2027 年起,包装上的选项变成一维或二维条码,「取决于贸易伙伴的能力」—— 一维不会被关掉。 (GS1 US)
它必须印多大?
《零售 POS 二维条码实施指南》(1.1.0 版,2025 年 12 月)要求二维码四边都留出 4 倍 X 尺寸的静区,并确认零售场景的二维载体是「承载 GS1 Digital Link URI 的 QR Code」或 GS1 DataMatrix。 (GS1 指南) GS1 UK 公布了用于销售点扫描的 X 尺寸允许区间 —— 每个模块 0.396 mm 到 0.99 mm —— 以及尺寸公式(模块数 + 8)× X。本生成器把这个公式套用到你实际的符号上,并随每一个码给出对应的毫米区间。
GS1 没有规定必须用哪一档二维码纠错等级:指南列出 L/M/Q/H,并说按使用场景自行选择。本生成器默认用 M,这是一个工程取舍 —— 在包装磨损与图形密度之间取平衡。 (GS1 指南)
为什么「拒绝出码」是一项功能
在线二维码生成器什么都肯编 —— 校验位错误的 GTIN、带空格的批次号、标准明令禁止的限定符顺序。产出的码扫得出来(二维码的纠错保证了这一点),然后在数据真正被使用的地方失败。本工具拒绝生成的每一样东西,都是那种会一路印出来、发出去、直到很久以后才被发现的东西。检查器是用来审计既有 URI 的;而这个生成器的存在,是为了让新的 URI 根本不需要被审计。
本工具检查并如实披露的全部事项(共 8 条规则)
QRG-E01GTIN 未通过校验 —— 不生成码
GTIN 没有通过完整的校验引擎(校验位、长度、清洗)。一个 GTIN 错误的二维码扫得出来、看着也正常 —— 然后在收银台失败,而那时它已经印在包装上了。本生成器拒绝产出它;下面各条说明了具体是哪里不对。
修复: Fix the GTIN first — the check-digit calculator completes a payload, the validator explains a failing code.
来源: Own engineering rule. The generator refuses to emit a non-conformant code rather than warning after the fact — a printed QR cannot be patched.
QRG-E02限定符取值超出标准字符集或长度
批次号 (10)、序列号 (21) 与消费品变体 (22) 的取值最多 20 个字符,且必须取自 82 个字符的 XCHAR 集合(数字、字母,以及 " - . _ ! % & + , / * ( ) ' ; : < > = ?")。其他的 —— 空格、€、emoji、控制字符 —— 都无法编码。
修复: 把取值限制在 XCHAR 集合内,并缩短到 20 个字符以内。
QRG-E03域名不是一个纯 http(s) 源
解析器域名必须是一个裸的源,形如 https://id.gs1.org 或 https://brand.example —— 不带路径、不带查询、不带空格。标准在技术上允许路径前缀,但它与真实解析器的键检测配合很差,所以本生成器把域名部分限制为纯源。
修复: 只填协议加主机名,不要带路径。
来源: Own engineering rule. The generator refuses to emit a non-conformant code rather than warning after the fact — a printed QR cannot be patched.
QRG-W01受限号段的 GTIN —— 这个码在公开环境解析不了
这个 GTIN 的算术是有效的,但它落在受限号段里(店内码 02/04/2xx、优惠券,ISSN/ISBN 另有处理)。为它生成的 Digital Link 二维码能扫出来,但签发门店之外的公开解析器与零售 POS 系统认不出它。
来源: Own engineering rule. The generator refuses to emit a non-conformant code rather than warning after the fact — a printed QR cannot be patched.
QRG-W02http:// 开头 —— 请改用 https
规范解析器与 URI 语法标准里的示例用的都是 https。http 在机制上能用,但会把每一次扫描降级为一次不安全的跳转,而且有些手机扫码器直接拒绝。
修复: 把域名改成 https:// 开头。
QRG-W03过长的 URI 把二维码推过了版本 12
数据已经装不进一个紧凑的符号了:到 69 个模块及以上(版本 13+)时,按允许的最小 X 尺寸算,符合规范的最小印刷尺寸每边超过 30 mm。过长的序列号与过长的自有域名是常见原因。
修复: 缩短你能控制的部分 —— 序列号、批次号,以及域名本身。
QRG-I01规范域名与品牌域名
id.gs1.org 开箱即可被 GS1 生态解析;品牌域名让你掌控扫描落到哪里,但需要你自己的解析器(或一个链接服务)在后面撑着。两者都符合规范 —— 这是运营层面的选择,同一条 GS1 路径在两者上都成立。
QRG-I02印刷尺寸由模块数 × X 尺寸决定
用于零售 POS 扫描时,GS1 UK 给出的 X 尺寸允许区间是 0.396–0.990 mm,尺寸公式为(模块数 + 8)× X —— 那个 8 对应两侧各 4 个模块的强制静区。这里的纠错等级默认取 M。
GTIN 本身由与 GTIN 校验器相同的 23 条规则引擎检查 —— 号段警告(店内码、优惠券)会一路带到结果里。范围说明,如实相告:第一版只支持 GTIN(AI 01)作为主键;GS1 DataMatrix 是另一种载体,有意不在范围内。同一套引擎也驱动 yaktool MCP server 里的 generate_digital_link_qr。
下载的 SVG 里带有一行 XML 注释,标明它的出处(<!-- Generated by yaktool.com -->)。它不可见,不影响码的扫描与打印,PNG 下载则完全不带 —— 但你应当知道它在那里,也可以用任何文本编辑器把这一行删掉。
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →