跳到正文
prodid
Spec v1 · 运行中

条形码不是产品。 prodid 才是。

为每一件实体产品提供永久、开放的标识符。每个条形码和零件号都解析到它,关于它的每条信息都注明说出这条信息的来源。

规范只以英文发布,以英文文本为准。

prodid.org/01/09506000134352→ /id/kq7m3v9dn2hb4t5x

Item · Acme

Trail Jacket

海军蓝 · M · 在 ⁨TR, DE⁩ 销售

  • material100% recycled polyester✓ acme.example
  • weight480 g✓ acme.example
  • nameAcme Trail Jacket, navy, Mlapsed · shop.example
扫描标签上的代码得到的结果。这条记录就是规范自带的示例。
发布者在自己的域名上、通过托管或从开放数据集发布信息。索引把标签上的每个代码关联到一个永久的 opid,整个索引都可以下载。

问题

四个代码,一件夹克,彼此之间毫无关联。

一件产品每进入一个市场、换一种包装规格、改一次包装,就会得到一个新条形码,而它的数据分散在各自不同的系统里。两个系统一旦不一致,其中一个就会被悄悄覆盖。

prodid 为产品本身提供一个标识符,条形码变了,它也不变。

  • 09506000134352

    DE 和 TR 的零售单元

  • 另一个 GTIN

    同一件夹克的两件装

  • 另一个 GTIN

    明年的包装

  • TJ-2041-NVY-M

    制造商零件号

一个变体

9p2d4kv7mq3nbhxf

永不复用,永不删除。曾经指向这里的每个代码都会继续有效。

模型

系列、变体、单品。代码指向它们,但不是它们。

每一层都有自己的 opid:16 个不编码任何信息的字符,所以产品的任何变化都不会让它出错。

  1. family · 3n7k2q9vdfhb4mta

    Acme Trail Jacket

    人们日常所说的那件产品。

  2. variant · 9p2d4kv7mq3nbhxf

    海军蓝 · M 码

    颜色、尺码等属性的一种组合。

  3. item · kq7m3v9dn2hb4t5x

    DE 和 TR 的零售单元

    印着条形码的那个东西。

    • gtin09506000134352
    • mpnTJ-2041-NVY-M
    • skuTJ-2041-NVY-M

新包装会在同一个变体、同一个系列下增加一个带新条形码的新单品。原来指向旧单品的一切都不会失效。

工作方式

在你的域名上发布,prodid 建立索引,任何人都能解析。

  1. 01 · 发布

    域名上的三样东西

    • /.well-known/prodid.json
    • /prodid/items.ndjson
    • _prodid TXT "v=prodid0; host=…"

    一个发现文档、一个每行一件产品的 feed,以及一条证明域名归你所有的 DNS 记录。

    如何发布 →
  2. 02 · 索引

    校验、匹配、归属

    • 每一行都按 schema 校验
    • 匹配到已有的 opid,或分配一个新的
    • 每个字段都作为你的域名的声明保存

    零售商、注册机构和开放数据集也以同样的方式作为来源:与制造商并列,而不是凌驾于它之上。

    声明如何运作 →
  3. 03 · 解析

    印在产品上的一个 URL

    prodid.org/01/09506000134352

    浏览器 → 一个网页

    API → JSON 记录

    路径采用 GS1 Digital Link 语法,因此它本身就可以是标签上的二维码。

    解析如何运作 →
开始发布

声明

每条信息都注明来源,分歧始终可见。

没有任何内容会被合并成唯一的“真相”。当一个来源停止发布时,它的声明会被保留并标记为 lapsed,而不是删除。

属性值来源可信度可见自
nameTrail Jacketacme.exampleverified2026-09-14
brandAcmeacme.exampleverified2026-09-14
material100% recycled polyesteracme.exampleverified2026-09-14
weight480 gacme.exampleverified2026-09-14
mediaimage · CC-BY-4.0acme.exampleverified2026-09-14
marketsTR, DEacme.exampleverified2026-09-14
nameAcme Trail Jacket, navy, Mshop.exampleunverified · lapsed2026-08-02
authoritative
控制该域名,并已确认为品牌所有者。
verified
已通过 DNS 或自己的网站证明对某个域名的控制。
unverified
没有域名的托管名称、数据集或社区贡献。

适用对象

产生数据的人,和需要数据的人。

制造商

在自己的域名上声明一次产品数据。你所制造产品的描述,不归任何经销商页面或电商平台所有。

在你的域名上发布 →

电商、ERP 和 PIM 厂商

每个商户域名一个发现文档和一个 feed,用你已经掌握的数据生成。

选择发布方式 →

开发者

把任何代码解析为一个经得起重新包装的标识符。每条信息都说明是谁说的、何时说的,以及该来源是否仍然为它负责。

获取数据 →

关于欧盟数字产品护照。 ESPR 要求可以通过产品上的数据载体访问护照,而 GS1 Digital Link 是为此正在标准化的载体语法之一。prodid 不是护照服务,在这里发布也不代表符合任何法规;它做的是同样的基础工作:每件产品一条机器可读的记录,放在一个由你控制的稳定地址上。

现状

项目的真实进展。

Spec v1。索引和托管发布服务运行在 prodid.org 上。任何人都可以发布,可以用自己的域名,也可以使用托管。

  • 稳定

    规范 v1。 它只会以新增的方式变化;其他任何改动都会是 v2。v0 发现文档在 2027-01-26 00:00 UTC 之前仍被接受。阅读规范,并指出哪里有错。

  • Canary 和一个数据集

    目前还没有任何发布者的目录被索引。 索引中有两个来源:项目自己的 canary canary.prodid.org,用于端到端验证发布、抓取和解析;以及 dataset:wikidata,一次限定为 5 个 Wikidata 条目的测试导入,unverified,采用 CC0-1.0。

  • 有意为之

    索引是可替换的。 规范、schema、opid 和代码映射都采用 CC0。每条声明都保留其来源的许可。信息存放在发布它们的域名上,所以任何人都可以重新抓取,印好的代码也会保持其含义。

给你的产品一个比条形码更长久的身份。

在你自己的域名上放两个文件和一条 DNS 记录,或者在没有域名的情况下使用托管站点。

prodid 是开源项目。帮助它成长。

给仓库加星,让更多人发现它;告诉我们哪里有问题;提交修复;或者无需 GitHub 账号,直接在这里给我们留言。