JANコードとは?仕組み・種類・取得方法・チェックデジットまで徹底解説

ナレッジ

JANコードは小売・物流・ECの基盤となる商品識別子(バーコード)です。本記事では、JANコードの意味、GTIN との関係、13桁/8桁の違い、チェックデジット計算、取得手順、印刷・運用の実務ポイントまで、初めての方にも分かるように整理します。


JANコードの基本

  • JANコードは、日本で広く使われる商品識別用バーコードの総称。
  • 国際規格では EAN / GTIN と呼ばれ、実体は GTIN-13(13桁)GTIN-8(8桁)
  • POSレジ、在庫管理、物流、EC商品登録などで商品を一意に特定するために利用されます。
  • 日本の流通では先頭が 45 / 49 で始まる番号帯が広く見られます(GS1プレフィックス)。

JAN(GTIN)とUPC/EANの関係

  • GTIN(Global Trade Item Number)は、商品識別番号の総称。
  • GTIN-13 = EAN-13 = JAN(一般的に日本での呼び方)
  • GTIN-8 = EAN-8(小さなパッケージ向けの短縮版)。
  • UPC(GTIN-12)は主に北米で使用。システム上は相互運用が可能です。

桁構成(GTIN-13 の例)

  1. 事業者コード(GS1が企業に付与)
  2. 商品アイテムコード(企業が自社内で採番)
  3. チェックデジット(最後の1桁:読み取り誤り検出用)

GTIN-8 も同様の考え方で、短縮版の8桁構成です。


チェックデジットの求め方

GTIN-13(13桁)

  1. 右端のチェック桁を除く12桁を使う
  2. 右から奇数位×3右から偶数位×1で加重合計
  3. 合計の下一桁を10 から引いた値(結果が10なら0)

490123456789?
右から奇数位×3+偶数位×1の合計 → チェック桁は 4
よって 4901234567894

GTIN-8(8桁)

同様に右から奇数位×3、偶数位×1。
4901234? → チェック桁は 7
よって 49012347

実装のための短いコード(例:JS/PHP)は本記事末尾に掲載。


取得手順(正規のJANを自社で発行するには)

  1. GS1 Japan に加入申請
  2. 事業者コードの付与を受ける
  3. 自社ルールに沿って商品アイテムコードを採番
  4. チェックデジットを算出してGTIN完成
  5. パッケージにバーコードを印刷(適正サイズ・静かな余白・コントラストを確保)
    ※ 費用・申請要件は変動するため、最新情報はGS1 Japanの公式案内を確認してください。

印刷・表示の実務ポイント

  • 等倍比で拡大縮小:縦横比を崩さない(歪みは読取不可の原因)。
  • 静かな余白(クワイエットゾーン)を左右に確保。罫線や文字重ねは避ける。
  • 充分な印字コントラスト(バー濃色/背景淡色)。
  • 推奨倍率レンジ(例:80〜200%)を目安に。高精細印刷を選ぶ。
  • 版下データはベクター推奨(EPS/SVG など)。
  • 可読数字(ヒューマンリーダブル)をバーの下に表示して照合可能に。

外箱・ケースで使うバーコード

  • 出荷用外箱などには ITF-14(GTIN-14) を用いるのが一般的。
  • 小売向けの単品JAN(GTIN-13/8)とは用途が異なります。

EC・小売での活用チェックリスト

  • ECモール・検索最適化(GTIN登録で露出や一致精度が向上)。
  • 価格改定・在庫更新の自動化(POS/基幹連携)。
  • 同一商品の重複登録・誤登録の防止。
  • 倉庫入出荷・棚卸のスキャン効率化。

よくある質問

Q. 自社内だけで使うなら勝手に番号を作っていい?
A. 社内限定の管理番号は自由ですが、流通・ECに出すJANはGS1のルールに従い一意性を確保してください。

Q. 同じ番号を別商品の改版で再利用してよい?
A. 一般に再利用は推奨されません。旧商品データとの混同が起きます。

Q. 英字や記号を含むコードは使える?
A. JAN(EAN)は数字のみです。英字や可変長を扱うなら Code 128 など他規格を選定します。


失敗しない採番ルール例

  • 桁割り(社内区分・年・シリーズ・色/サイズなど)を事前定義
  • 改版/セット品/バリエーションで新番号を付与する基準を明文化
  • 廃番後も履歴保全(再利用禁止)
  • 採番〜印刷〜基幹登録までの承認フローを一本化

すぐ使えるチェックデジット計算コード

JavaScript(GTIN-13)

function gtin13CheckDigit(first12) {
  const s = String(first12);
  if (!/^\d{12}$/.test(s)) throw new Error('12桁の数字が必要です');
  let total = 0;
  // 右から奇数位×3、偶数位×1
  for (let i = 0; i < 12; i++) {
    const d = Number(s[11 - i]);
    total += (i % 2 === 0) ? d * 3 : d;
  }
  return (10 - (total % 10)) % 10;
}
// 例: '490123456789' -> 4 => '4901234567894'

PHP(GTIN-13)

function gtin13_check_digit(string $first12): int {
  if (!preg_match('/^\d{12}$/', $first12)) {
    throw new InvalidArgumentException('12桁の数字が必要です');
  }
  $total = 0;
  for ($i = 0; $i < 12; $i++) {
    $d = (int)$first12[11 - $i];
    $total += ($i % 2 === 0) ? $d * 3 : $d;
  }
  return (10 - ($total % 10)) % 10;
}

まとめ

  • JAN=日本でのEAN/GTINの呼称。主に GTIN-13GTIN-8 を使用。
  • 構成は「事業者コード+商品コード+チェックデジット」。
  • 自社で正規発行するには GS1 Japan で事業者コード取得が必要。
  • 印刷は静かな余白・コントラスト・等倍比を守り、ECや基幹と連携して効果を最大化。

コメント

タイトルとURLをコピーしました