🎯 この記事のポイント
AS/400 の品番・JAN データを「共通商品マスタ」に取り込めば、AI がマルチモール展開を強力にサポートする。
対象読者: EC 事業の技術責任者・システムアーキテクト・実装エンジニア 前提記事: AS/400 を使い続けながら B2C に参入する(業務課題の全体像)
代理店が扱う商品データは AS/400 に品番・JAN コード・価格として蓄積されています。しかし EC モールに出品するには、カテゴリ分類・カラー/サイズ展開・商品画像・モール固有フォーマットへの変換が必要で、1商品あたり数十分の手作業が発生します。
CTS-EC の共通商品マスタは、この変換作業を AI と自動化パイプラインで解決します。
🏗️ アーキテクチャ — 3 層変換パイプライン

共通商品マスタの核心は Source → Master → Mall の 3 層アーキテクチャです。
なぜ 3 層なのか
Source 層で取り込んだ生データを Master 層で統合・正規化し、Mall 層でモール固有フォーマットに変換します。共通マスタ(Common Context)でカラー・サイズ・ブランドを一度だけ正規化すれば、各モールへは変換ルールを適用するだけで済むため、データの一貫性を保ちながらモール追加のコストを最小化できます。
📦 SSoT — SKU の Single Source of Truth
共通商品マスター
すべての商品データは共通商品マスター(MasterUnifiedProduct)に統合されます。SSoT(Single Source of Truth)の原則に基づき、商品の正規データはこの一箇所にのみ存在します。
| フィールド | 説明 | 例 |
|---|---|---|
| ProductNumber | 品番(メーカー共通) | AB1234 |
| BrandCode | ブランドコード | brand_a |
| Title | 商品名 | ○○ トレーニングシャツ |
| Gender | 性別 | mens / womens / unisex / kids |
| Price | 基本価格 | 3,300 |
| VariationAxes | バリエーション軸(N次元) | カラー, サイズ |
| Skus | SKU リスト | JAN ごとに 1 レコード |
| Media | 商品画像 | GCS URL |
バリエーション軸(N 次元対応)
商品のバリエーションは 2 次元に限定されません。カラー × サイズ × 幅のような N 次元展開に対応しており、バリエーション軸は自由に追加できます。楽天 SKU プロジェクトや Shopify の商品バリアントレイアウトに準拠した設計です。
VariationAxes:
├─ color(カラー) ← AI カラーマスタ紐付けで自動正規化
│ ├─ FYE → F.YELLOW(CommonMasterCode: YELLOW)
│ ├─ BLU → BLUE (CommonMasterCode: BLUE)
│ ├─ WHT → WHITE (CommonMasterCode: WHITE)
│ └─ BLK → BLACK (CommonMasterCode: BLACK)
│ ↑ メーカー独自コード ↑ 共通カラー(SSoT 正規化値)
│
├─ size(サイズ)
│ ├─ S → S
│ ├─ M → M
│ ├─ L → L
│ └─ O → O
│
└─ width(幅) ← 3軸目以降も自由に追加可能
├─ 2E → 2E
├─ 3E → 3E
└─ 4E → 4E
各バリエーション値には CommonMasterCode が紐付き、メーカー独自のカラーコード(FYE)を共通カラー(YELLOW)に正規化します。これにより、異なるメーカーの「イエロー系」を統一的に扱えます。
SKU データ
バリエーションの掛け合わせで SKU が自動生成されます。事前に JAN マスター CSV インポートが必須です。
| カラー | サイズ | JAN コード |
|---|---|---|
| F.YELLOW | S | 4900000000101 |
| F.YELLOW | M | 4900000000118 |
| F.YELLOW | L | 4900000000125 |
| F.YELLOW | O | 4900000000132 |
| BLUE | S | 4900000000149 |
| BLUE | M | 4900000000156 |
| … | … | … |
1 商品 4色 × 4サイズ = 16 SKU が、JAN コード毎に一元管理されます。幅(2E/3E/4E)を加えれば 4 × 4 × 3 = 48 SKU にも展開可能です。
各モールにはバリエーション軸の次元制約があります(例: Yahoo! ショッピングは最大 2 軸)。共通商品マスタで N 次元のデータを保持しておけば、モール展開時に各モールの制約に合わせて自動的に最適化されます。
🤖 AI カテゴリマッピング
課題:モールごとに異なるカテゴリ体系
| モール | カテゴリ数 | 階層 |
|---|---|---|
| Yahoo! ショッピング | 約 13,000 | 最大 8 階層 |
| 楽天市場 | 約 14,000 | 最大 5 階層 |
| Shopify | 約 15,000 | Google Product Taxonomy 準拠 |
| Amazon | 約 20,000 | Browse Node |
同じ「トレーニングシャツ」でも、各モールで登録先カテゴリが異なります。
AI マッピングパイプライン — 階層ドリルダウン方式

CTS-EC は階層ドリルダウン方式でカテゴリを自動分類します。商品の詳細情報を AI に渡し、カテゴリツリーをトップカテゴリからリーフまで段階的に絞り込むことで、各モールに最適なカテゴリを自動決定します。
5 属性キャッシュにより AI 呼び出しを 98% 削減し、信頼度 80% 以上のマッピングは自動承認されます。
マッピング詳細の例
商品「○○ トレーニングシャツ(品番 AB1234)」の場合:
| モール | マッピング先 | 確信度 | ソース | ステータス |
|---|---|---|---|---|
| Yahoo! ショッピング | ファッション > メンズ > トップス > シャツ | 85% | AI | 自動承認 |
| 楽天市場 | メンズファッション > トップス > カジュアルシャツ | 80% | AI | 自動承認 |
| Shopify | アパレル・アクセサリー > 衣料品 > シャツ・トップス | 80% | AI | 自動承認 |
確信度が閾値(80%)を超えれば自動承認。下回る場合は管理画面で 「AI 再マッピング」 または 「手動リマッピング」 を選択できます。
🎨 AI カラーマスタ紐付け
メーカーごとにカラーコードや命名規則が異なるため、モールへの出力時に統一が必要です。CTS-EC は CommonColor マスタで正規化します。
| CommonCode | 正規化名 | Yahoo 出力 | 楽天出力 |
|---|---|---|---|
| YELLOW | イエロー | spec_value_id: 20011 | カラー: イエロー |
| BLUE | ブルー | spec_value_id: 20002 | カラー: ブルー |
| WHITE | ホワイト | spec_value_id: 20001 | カラー: ホワイト |
| BLACK | ブラック | spec_value_id: 20003 | カラー: ブラック |
AI 紐付けフロー
バリエーション値の各カラーコードに対して、管理画面から 「AI 紐付け」 を実行すると、以下のフローで自動紐付けが行われます。

- Gemini Vision が商品画像を分析し、実際の色を判定(トークン抑制のため画像は 384px に圧縮)
- カラー名(例: 「ネイビー」「ブラック」)もヒントとして渡します。画像のみでは判別が難しい濃色系(ネイビー vs ブラック)で AI が迷った際の誤判定を減らし、正解率を向上させる目的です
- CommonColor マスタから最適な共通カラーを選定し、信頼度スコアを算出
- 信頼度 80% 以上で自動承認、未満の場合は担当者が手動確認
- 紐付け結果を保存(「AI 自動」または「手動修正」ラベルで区別)
画像ベースの判定により、「RED」と記載されていても実際は白地に赤のワンポイントといった誤判定を防止します。
紐付けの結果は SSoT の VariationAxes.color.CommonMasterCode に格納されます。これにより、メーカー独自コード(FYE)と共通カラー(YELLOW)が SSoT 上で一元管理され、各モール出力時に CommonColor マスタを介して spec_value_id: 20011 などへ自動変換されます。
🖼️ GCS 画像管理
画像ストレージ構造
商品画像は Google Cloud Storage(GCS) で一元管理されます。
media/
├─ source/ ← 取り込み元画像(非公開)
│ └─ Web/
│ └─ brand_a/
│ └─ ab1234/
│ ├─ ab1234-fye-01.jpg
│ ├─ ab1234-blu-01.jpg
│ └─ ...
│
├─ original/ ← 自社撮影画像(非公開)
│
└─ published/ ← 公開画像(CDN 配信)
├─ master/ ← ブランド共通
└─ tenant/ ← テナント固有
バリエーション紐付き画像管理
画像はバリエーション(カラー)に紐付けて管理されます。
| 機能 | 説明 |
|---|---|
| カラーフィルター | FYE / BLU / WHT / BLK でフィルタリング |
| 画像ロール | メイン / スウォッチ / ディテール / アングル / ライフスタイル |
| メディア追加 | 画像ロール + バリエーション紐付け + alt テキスト |
| オンデマンドリサイズ | オリジナルのみ保存、CDN で変換 |
モール別画像要件への自動対応
| モール | 上限 | フォーマット | 特記 |
|---|---|---|---|
| Yahoo | 20枚 | JPG / PNG | 白背景推奨 |
| 楽天 | 20枚 | JPG / PNG / GIF | CABINET or GOLD |
| Shopify | 250枚 | JPG / PNG / GIF / WebP | — |
| Amazon | 9枚 | JPG / PNG | 白背景必須 |
📋 変更履歴トラッキング
すべての商品データ変更は操作者・操作種別・変更内容・日時を記録します。
変更履歴:
├─ 担当者A 画像削除 2026/3/13 11:26:58
│ Url: products/brand_a/ab1234/ab1234-fye-12.jpg →(削除)
│ Position: 12 →(削除)
│ ImageRole: DETAIL →(削除)
│
└─ 担当者B 画像追加 2026/3/13 11:26:50
Url: products/brand_a/ab1234/ab1234-fye-12.jpg
Position: 12
ImageRole: DETAIL
誰が・いつ・何を変更したかを追跡でき、問題発生時の原因特定と復元が可能です。
📥 JAN マスターインポート — AS/400 からの SKU 自動展開
AS/400 データの活用
AS/400 には品番・JAN コード・カラー・サイズの対応表が蓄積されています。JAN マスターインポート機能により、この資産を直接活用できます。
インポートフロー
AS/400
│ 品番・JANコード・カラー・サイズをCSVエクスポート
▼
Step 1: ファイルとテンプレートの選択
│ ・CSV ファイルをアップロード
│ ・インポートテンプレート(カラム対応)を選択
│ ・ブランドを指定
▼
Step 2: プレビュー確認
│ ・品番 + ブランドコードで既存商品を検索
│ ・新規 or 既存の判定
│ ・バリエーション軸の自動検出
▼
Step 3: インポート実行
│ ・MasterUnifiedProduct に SKU を展開
│ ・VariationAxes を自動生成(カラー × サイズ)
│ ・SizeOrderTemplate でサイズ順を自動適用
▼
結果
・作成: X 件 / 更新: Y 件 / エラー: Z 件
テンプレートによる柔軟な対応
CSV のカラム構成はメーカーや基幹システムによって異なります。CsvImportTemplate により、カラムのマッピングと変換ルール(トリム、大文字変換など)をテンプレート化。一度設定すれば、同じ形式の CSV を繰り返しインポートできます。
インポート後の自動処理
JAN マスターインポートで JAN が登録済みの場合、SKU 展開が最適化されます。また、商品登録後は各 AI マッピング処理が実行できます:
| 処理 | 内容 |
|---|---|
| AI カテゴリマッピング | ドリルダウン方式でモール別カテゴリを自動分類 |
| AI カラーマスタ紐付け | メーカーカラーコード → CommonColor へ自動紐付け |
| サイズ順テンプレート適用 | アパレル(XS〜5XL)、シューズ(19.0〜32.0cm)等の表示順を自動設定 |
サイズ順テンプレートが必要な理由: JAN コードによる SKU 展開では、サイズの並び順がランダムになります。例えば S・M・L・O をアルファベット順にソートすると L・M・O・S となり、モール上の表示順として不適切です。カテゴリ別のサイズ順テンプレート(アパレル: XS→S→M→L→XL→2XL…、シューズ: 19.0→19.5→…→32.0cm)を自動適用することで、この問題を解決します。
AS/400 から CSV を出すだけで、モール出品に必要なデータ準備を飛躍的に省力化できるのが、共通商品マスタの最大の価値です。
💰 マルチモール展開と価格管理
各モールへの多店舗展開にも対応しており、同じ商品を複数の Yahoo! ショッピングや楽天市場に異なる設定で出品できます。価格は SKU 単位で個別に設定可能です。
AI 価格最適化(準備中): AI が競合価格や在庫状況を分析し、適切な価格変更をアドバイスする機能を準備中です。
🔗 関連記事
- AS/400 モダナイゼーション戦略 — 移行パターン(Rehost / Replatform / Refactor)の選び方
- AS/400 を使い続けながら B2C に参入する — CTS-EC を活用した代理店の B2C 参入ガイド
📌 まとめ
| 機能 | 手作業 | CTS-EC 共通商品マスタ |
|---|---|---|
| カテゴリ分類 | モールごとに手動選択 | AI がドリルダウン方式で自動マッピング |
| カラー/サイズ展開 | Excel で手入力 | JAN インポートで自動展開 |
| 画像管理 | モールごとにアップロード | GCS 一元管理 → モール別自動配信 |
| モール別変換 | フォーマットを手動調整 | 共通マスタから自動変換 |
| 価格管理 | Excel で一括変更 | SKU 単位で設定 + AI 価格アドバイス(準備中) |
| 変更追跡 | なし | 全操作の履歴を自動記録 |
AS/400 の品番・JAN データという既存資産を起点に、AI とパイプラインで EC 出品に必要なデータ準備を飛躍的に省力化する — それが CTS-EC 共通商品マスタです。