Digital Link

GS1 Digital Linkの技術:URIの構文をルールごとに、例とともに解説

更新日

Mia

著者 Mia

GS1標準とEUの製品表示規制を専門とするライター。

ティール、オレンジ、紫で描かれたスマートフォンと製品カードのイラスト。そのいくつかにQRコードのアイコンが表示されている

TL;DR

  • GS1 Digital Link URIは、決まった文法を持つウェブアドレスです。ドメイン、/01/ と14桁のGTINのような主キー、パスに置く任意のキー修飾子、そしてクエリ文字列に置くデータ属性で構成されます。
  • そこで使う番号はGS1アプリケーション識別子(AI)で、GS1-128バーコードで使われるものと同じです。そのため、URIは従来のエレメントストリングに変換でき、GS1のデータを失わずに元に戻すこともできます。
  • つまずきやすいルールは次のとおりです。GTINは14桁にゼロ埋めし、有効なチェックデジットで終えること。修飾子は決まった順序(22、10、21)で並べること。属性は ? の後にだけ置くこと。値に含まれる記号はパーセントエンコーディングすること。

GS1 Digital Link URIは、GS1識別子を標準の構造で含むHTTPSのアドレスです。スマートフォンはそれを開くことができ、スキャナーはそこから識別子を取り出せます。パスはアイデンティティを、クエリ文字列は追加データとリゾルバへの指示を保持します。用語についてはGS1 Digital Linkの基礎を、スキャン後に何が起きるかについてはリゾルバのガイドをご覧ください。

パターンhttps://{domain}/{key AI}/{value}/{qualifier AI}/{value}?{attribute AI}={value}
アイデンティティパスに置く。主キーを1つだけ置き、その後に任意のキー修飾子を決まった順序で続ける
追加データクエリ文字列に置く。有効期限 17 や正味重量 310n などのデータ属性
GTINの形式常に14桁。先頭をゼロで埋め、有効なチェックデジットで終える
特殊文字パーセントエンコーディングする。バッチ番号の中の / は %2F になる
リゾルバへの指示クエリ文字列に置く linkType。linkType=gs1:pip や linkType=linkset など

部分ごとにラベルを付けたGS1 Digital Link URI:ドメイン、主識別キー01、GTIN、キー修飾子22、CPV、データ属性17、有効期限

完全な例は次のとおりです。

https://id.example.com/01/09506000134352/22/2A/10/LOT42/21/1234?17=271231&3103=000750

部分例での該当箇所ルール
ドメインid.example.comhttps:// の後に置く任意のドメイン。スマートフォンにどのリゾルバが応答するかを決めるが、製品のアイデンティティの一部ではない
主キー/01/095060001343521つのURIに1つだけ。AIの後にその値を続ける
キー修飾子/22/2A/10/LOT42/21/1234任意。パスに置き、そのキーについて定められた順序で並べる
データ属性?17=271231&3103=000750任意。AI=value の組を & でつなぎ、順序は自由

左から順に読むと、GTIN 09506000134352、消費者向け製品バリエーション2A、バッチLOT42、シリアル番号1234、有効期限2027年12月31日、正味重量0.750 kgです。

GS1 Digital Linkで使える主キー

消費者向けの製品で使うキーはGTINですが、構文はその他のGS1キーにも対応しています。

GS1キーAI識別するものキー修飾子
GTIN(国際取引商品番号、Global Trade Item Number)01あらゆる包装段階の取引商品22、10、21
SSCC(Serial Shipping Container Code)00パレットなどの物流単位(18桁)なし
GLN(Global Location Number)414物理的なロケーション(13桁)254 GLN拡張コンポーネント

GRAI(8003)やGIAI(8004)といった資産のキーも、同じパターンに従います。

GTINのキー修飾子の仕組み

キー修飾子は、GTINを製品からバリエーション、バッチ、または1個の個品へと絞り込みます。パスに、次の順序で置きます。

順序AI修飾子形式識別するもの
122消費者向け製品バリエーション(CPV)最大20文字1つのGTIN内のバリエーション
210バッチまたはロット最大20文字1回の製造ロット
321シリアル番号最大20文字1個の個品

どれも省略できますが、使うものはこの順序を守ります。

パス有効か
/01/09506000134352/10/LOT42/21/1234有効
/01/09506000134352/21/1234有効:バッチなしのシリアル番号
/01/09506000134352/21/1234/10/LOT42無効:シリアル番号がバッチより前にある
/01/09506000134352/17/271231無効:有効期限はクエリ文字列に置く

リゾルバは修飾子を使って最も詳細なエントリを探し、なければ製品単位にフォールバックします。

クエリ文字列に置くデータ属性

データ属性は、アイデンティティを変えずに、その品目について記述するものです。

AI属性形式例
17有効期限YYMMDD17=271231:2027年12月31日
15賞味期限YYMMDD15=270630:2027年6月30日
310nkg単位の正味重量。n は小数点以下の桁数6桁3103=000750:0.750 kg
422原産国ISO 3166の3桁の数字コード422=380:イタリア

各属性は1回だけ、任意の順序で記述します。リゾルバはリダイレクトするときにクエリ文字列をそのまま引き継ぐため、行き先のページでそれを読み取れます。

GS1 Digital LinkではGTINをどう記述すべきか

常に14桁で記述します。それより短いGTINは先頭にゼロを加えます。これによって番号もチェックデジットも変わりません。

バーコードの下のGTINURI内での表記
GTIN-12(UPC-A):614141123452/01/00614141123452
GTIN-13(EAN-13):9506000134352/01/09506000134352

最後の桁はチェックデジットです。9506000134352 の場合、その前の12桁に右から順に3、1、3、1…を掛けて合計すると78になります。チェックデジットは、その合計を次の10の倍数にする数です。80 − 78 = 2 となります。

パーセントエンコーディングが必要な文字

英字、数字、-、.、_ はそのまま記述します。バッチ、シリアル番号、CPVの値に含まれるその他の記号は、アドレスの構造と取り違えられないよう、パーセントエンコーディングします。

文字エンコード後値URI内での表記
/%2FAB/12/10/AB%2F12
%%2550%OFF/10/50%25OFF
&%26A&B/21/A%26B

値は大文字と小文字を区別するため、LOT42 と lot42 は別のバッチです。また、スペースは使えません。

圧縮形式とは

標準は、非常に小さなコードのための圧縮形式も定めています。ドメインより後ろのすべてを、英字、数字、-、_ からなる短い文字列にまとめたもので、目で読むことはできず、リゾルバが検証の前に展開します。シンボルのサイズからほかに選択肢がない場合を除き、圧縮しない形式を使ってください。印刷前に確認しやすく、また圧縮されたコードは、チェーン内のすべてのスキャナーとアプリが展開できる場合にしか機能しないためです。

linkTypeとリンクセットはURIのどこに入るか

linkType は識別子ではなく、リゾルバへの指示で、クエリ文字列に記述します。

URIリゾルバが返すもの
https://id.example.com/01/09506000134352既定のリンク(通常は製品ページ)へのリダイレクト
https://id.example.com/01/09506000134352?linkType=gs1:recallStatus回収状況のリンクがあれば、そこへのリダイレクト
https://id.example.com/01/09506000134352?linkType=linksetそのGTINのリンクの一覧全体を、機械可読な形式で

リンクタイプはGS1 Web Vocabularyから取ります。gs1:pip(製品情報ページ)、gs1:instructions、gs1:allergenInfo などです。言語はURIでは指定しません。リゾルバがスマートフォンのリクエストから読み取ります。

GS1 Digital Linkとエレメントストリングの関係

どちらも同じGS1のデータを、2つの構文で担います。

形式例使われる場所
エレメントストリング(01)09506000134352(10)LOT42(17)271231GS1-128バーコードと、GS1シンボルの下に印字される文字
GS1 Digital Link URIhttps://id.example.com/01/09506000134352/10/LOT42?17=271231スマートフォンで開けるQRコードとData Matrixのシンボル

エレメントストリングでは、括弧は印字される文字にだけ現れ、バッチのような可変長の値は、後に別のAIが続く場合に区切り文字で終わります。URIでは、スラッシュ、?、& がその役割を果たします。URIをエレメントストリングに変換すると、すべてのAIと値が保たれ、ドメインとリゾルバへの指示は除かれます。2D対応のレジがインターネットに接続せずに行っているのが、まさにこの処理です。シンボルの選び方については、QRコードとData Matrixの比較をご覧ください。

  1. ドメインを選ぶ。 https:// と、id.yourbrand.com のような自社で管理するドメインから始めます。そうすれば、どの事業者がリゾルバを運用していても、コードは自社のものであり続けます。
  2. 主キーを選ぶ。 製品の場合は、AI 01 とそのGTINです:/01/。
  3. GTINを14桁で記述する。 先頭をゼロで埋め、最後の桁を確認します。9506000134352 は 09506000134352 になります。
  4. 必要なキー修飾子を順序どおりに加える。 CPV /22/、バッチ /10/、シリアル番号 /21/ の順です。
  5. 値をパーセントエンコーディングする。 英字、数字、-、.、_ はそのままにし、それ以外はエンコードします。AB/12 は AB%2F12 になります。
  6. ? の後にデータ属性を加える。 それぞれを AI=value として記述し、& でつなぎます:?17=271231&3103=000750。
  7. 印刷前に検証する。 URIをエレメントストリングに変換してすべての値を確認し、ブラウザで開いたうえで、印刷したコードを複数のスマートフォンと2Dスキャナーでスキャンします。よくある不具合はトラブルシューティングのガイドにまとめています。

有効期限付きのバッチの場合、結果は次のようになります:https://id.yourbrand.com/01/09506000134352/10/AB%2F12?17=271231。

Digital Linkプラットフォームの位置付け

本サイトを運営するプラットフォームであるDigital Linkは、こうしたURIを自動で作成します。リンクの作成時に各GTINを検証し、バッチまたはロット、シリアル番号、有効期限、正味重量、原産国、包装日、消費者向け製品バリエーションを、リンクのバリエーションとして加えます。各バリエーションは独自のリンクのセットを持ちます。コードはCSVファイルから一括作成でき、自社のサブドメインでも、付属の dlink.is ドメインでも利用できます。

最初のGS1 Digital Link QRコードを作成する

よくある質問

GS1 Digital Linkには14桁のGTINが必要ですか?

はい。GTIN-8、GTIN-12、GTIN-13は先頭をゼロで埋めて14桁にするため、9506000134352 は /01/09506000134352 と記述します。チェックデジットは変わらず、有効でなければなりません。

キー修飾子はどの順序で並べますか?

GTINの場合、消費者向け製品バリエーション 22、次にバッチまたはロット 10、次にシリアル番号 21 の順です。どれも省略できますが、使うものはこの順序を守ります。

ドメインによって製品のアイデンティティは変わりますか?

いいえ。ドメインはスマートフォンにどのリゾルバが応答するかを決めますが、アイデンティティは主キーとその修飾子です。2つのドメインのもとにある同じGTINは、同じ製品です。

同じデータを2つの形式で表したものです。(01)09506000134352(10)LOT42 のようなエレメントストリングは、GS1-128バーコードの形式です。GS1 Digital Link URIは、それをスマートフォンで開けるウェブアドレスとして記述します。

圧縮形式を使うべきですか?

完全なアドレスを入れるにはシンボルが小さすぎる場合に限ります。圧縮されたコードは、すべてのスキャナーとアプリが展開できる場合にしか機能しません。

バーコードからGS1 QRコードへの移行をリードしましょう