ISBNコード(書籍JANコード)とともに本に付番されている雑誌コードについて解説します。
雑誌コードからJANコードを作成しなければならない時に役に立つ知識です。
雑誌コードとは
雑誌扱いの本に付番されている5桁+4桁
、または5桁+2桁
のコードです。
この5桁に意味がずっしりと詰まっています。
また、バーコードはISBNコード(書籍JANコード)と一般商品JANコードのものがあります。
雑誌コードの始まる1桁目で雑誌コードの種類がきまります。
1. 1桁目が0
、1
は月刊誌(隔月刊や季刊の雑誌も含む)
基本、末尾は奇数。別冊や増刊号は末尾の数に+1して偶数になる。
本に印刷されるバーコードは一般商品JANコード
例)雑誌コード5桁+「-」+月2桁+年の下2桁
月刊TORICO 8月号 01234-0821、または省略して01234-08 月刊TORICO 8月増刊号 01235-0821、または省略して01235-08
2. 1桁目が2
、3
は週刊誌(隔週刊や月2回発売の雑誌も含む)
末尾は発売した週で1〜5。
別冊や増刊号は末尾に6以上の数が振られる。
本に印刷されるバーコードは一般商品JANコード
例)雑誌コード5桁+「-」+月2桁+年の下2桁
週刊TORICO 8/6号(8月1週目) 21231-0821、または21231-8/6 週刊TORICO 8/13号(8月2週目) 21232-0821、または21232-8/13 週刊TORICO 8/20号(8月3週目) 21233-0821、または21233-8/20 週刊TORICO 8/20増刊号 21236-0821、または21236-8/20
3. 1桁目が4
、5
は漫画のコミックス
雑誌コード5桁は固定。
だいたいレーベルごとになっている(〇〇コミック)
月年はなく雑誌コードに対して発売された巻数の通巻数2桁。
本に印刷されるバーコードは書籍JANコード
例)雑誌コード5桁+「-」+通巻数2桁
TORICOコミックス 1巻 41234-01 TORICOコミックス 2巻 41234-02
4. 1桁目が6
はムック
雑誌コード5桁は固定。
だいたいレーベルごとになっている(〇〇ムック)
月年はなく雑誌コードに対して発売された巻数の通巻数2桁。
本に印刷されるバーコードは書籍JANコード
例)雑誌コード5桁+「-」+通巻数2桁
TORICOムック よくわかるTORICO 61234-01 TORICOムック TORICO大全 61234-02
5. 珍しいコード
1桁目が7
で始まる、オーディオ・ビジュアル商品
1桁目が8
で始まる、直販誌
1桁目が9
で始まる、PB商品
雑誌コードから一般商品JANコードの作成方法
月刊誌、週刊誌にはISBNコード(書籍JANコード)がありません。
雑誌コードのみ付番されています。
ではバーコードは何でできているか?というと雑誌コードから一般商品JANコードを作成することができます。
例)01234-0821の場合
一般商品JANコードは4910012340819
となります。
内訳としては
491
=>定期刊行物コードのプレフィックス。固定
0
=>予備。雑誌コードが満数になった場合使うかもしれない
01234
=>雑誌コード5桁
08
=>月号2桁
1
=>年の下1桁
9
=>JANのチェックデジット。形式はモジュラス10、ウエイト1、3
これをphpで書くと下記の様になります
/** * 雑誌コードをJANコードに変換する * @param string $code 雑誌コード、5桁-4桁 * @return string JANコード */ function magazineCode2Jan($code) { // 雑誌コードと月号で分ける $exp_code = explode('-', $code); $magazine_code = $exp_code[0]; // 年の下1桁 $year = substr($exp_code[1], 3, 1); $month = substr($exp_code[1], 0, 2); $prefix = 491; $spare = 0; $jan12 = $prefix . $spare . $magazine_code . $month . $year; // チェックデジット計算 $chkdgt = getCheckDigit13($jan12); $jan13 = $jan12 . $chkdgt; return $jan13; }
※チェックデジットの計算はエンジニアの知らないISBNの話のコード例にある「ISBN13桁のチェックディジット」を使用しています。
ここでタイトル回収になるのですが、年の下1桁を使用するため雑誌コードは10年に一度同じコードになります。
データベースにカラムを作る際はユニーク制約をしない、あるいは絶版になった雑誌を定期的に削除するような仕組みが必要になります。