Odooにおける **「プロダクト(商品マスタ)」と「プロダクトバリアント(品目バリエーション)」**は、販売・在庫・請求すべての根幹になる構造です。
以下に、設定項目とデータ構造の関係を明確にご説明します。
✅ 用語の定義
| 用語 | モデル名 | 説明 |
|---|
| プロダクト(Product Template) | product.template | 商品の共通情報(例:Tシャツ)を定義 |
| プロダクトバリアント(Product Variant) | product.product | バリエーションごとのSKU(例:赤のMサイズ)を定義 |
✅ 構成関係(テンプレートとバリアントの関係)
cppコピーする編集するproduct.template(テンプレート)
↓ 1対多
product.product(バリアント)
- 1つのテンプレート(product.template) が、複数のバリアント(product.product) を持つ
- バリアントが1つしかなければ、テンプレートとバリアントはほぼ同一に扱われます(UI上は「単一バリアント」と見える)
✅ 設定できる項目(販売画面から編集できるもの)
🟦 product.template(テンプレートレベル=共通設定)
| 項目分類 | 主な設定項目 |
|---|
| 一般情報 | 商品名、内部参照、商品タイプ(消耗品/在庫/サービス) |
| 販売 | 売上価格、販売可否、請求ポリシー(注文/納品) |
| 購買 | 仕入価格、仕入先、自動再発注ルール |
| 在庫 | 保管場所、リードタイム、ルーティング |
| 会計 | 会計カテゴリ、収益勘定、原価計算方式 |
| バリアント構成 | 属性(色・サイズなど)を追加 |
| その他 | 単位(UoM)、通貨、追跡(ロット/シリアル)、説明文など |
🟧 product.product(バリアントレベル=個別SKU)
| 項目分類 | 主な設定項目 |
|---|
| 属性値 | 例:色=赤、サイズ=M |
| バーコード | SKUごとのバーコード |
| コスト価格 | 仕入価格が異なる場合に調整可能(テンプレートと異なる) |
| 特定価格設定 | プライスリストなどでSKU単位に価格差がある場合 |
| トラッキング | ロット/シリアルでSKU単位の在庫管理 |
| 画像・説明(任意) | SKUごとに差別化したい場合に使う |
| 機能 | product.template | product.product |
|---|
| 商品の説明・基本価格 | ✅ | ❌(継承) |
| 在庫管理 | ❌(集約) | ✅(SKU単位) |
| 請求・出荷伝票 | ❌ | ✅(バリアントごとに記録) |
| ロット/シリアル番号 | ❌ | ✅(SKU単位) |
✅ バックエンドのつながり(技術視点)
| 関係 | フィールド | 内容 |
|---|
product.template → product.product | product_tmpl_id | 各バリアントはテンプレートを参照 |
product.product → product.template | product_variant_ids(逆参照) | テンプレートはバリアントリストを持つ |
| 在庫や請求など | 常に product.product 単位で記録 | SKUベースでトラッキングされる |
🧩 モデル構成図(簡略)
product.template(Tシャツ)
├─ product.product(Tシャツ/赤/M)
├─ product.product(Tシャツ/赤/L)
└─ product.product(Tシャツ/青/M)
✅ よくある誤解
| 誤解 | 正確な理解 |
|---|
| 「商品は product.product に全部入っている」 | 正確には 共通情報が template にあり、バリエーションが product にある |
| 「在庫も template にある」 | 実際には在庫は 常に product.product(SKU)単位 で管理 |
✅ UIでの使い分け
- 販売画面の「商品」メニューから編集すると、通常は
product.template を対象とします
- 属性(サイズや色)を追加すると、自動的に
product.product が生成されます
- 「バリアント」タブを開くと SKU ごとの個別編集が可能
コメントを残す