機能の深掘り
商品マスタと価格タイプ|価格設計の全体像
ブリッジ葬儀の 価格まわり は、3 つのオブジェクト で構成されています。「同じ商品でも、会員様には会員価格で、一般のお客様には標準価格で」という運用は、この設計のおかげで 自動的に 実現できます。
このページでは、商品マスタ・価格タイプ・商品価格 の関係と、会員契約から見積伝票まで価格が自動継承されるしくみ をひとまとめに解説します。
全体像 (1 分で掴む)
[商品マスタ] [価格タイプ] [商品価格]
───────────────── ───────────────── ──────────────────
祭壇 A 標準価格 祭壇 A × 標準 = ¥100,000
会員価格 祭壇 A × 会員 = ¥90,000
葬祭ホール価格 祭壇 A × ホール = ¥80,000
仕入価格 祭壇 A × 仕入 = ¥60,000
↓ ↓ ↑
商品マスタを追加 ────→ 価格タイプの数だけ ───→ 商品価格レコードが
自動で組み合わせ 自動生成される
(PriceTypeAutoPriceTrigger)
ポイント:
- 商品マスタ は商品そのものを定義 (棺・祭壇・料理・返礼品 など)
- 価格タイプ は 価格の区分 を定義 (標準・会員・葬祭ホール・仕入 など)
- 商品価格 は商品 × 価格タイプ の 交点 (実際の単価) を保持
- 商品か価格タイプを 1 件追加すれば、自動で商品価格レコードが組み合わせ生成 される
3 つのオブジェクトの役割
① 商品マスタ (Product__c)
葬儀社が取り扱う 商品 1 つ 1 つ を表すマスタ。
主な項目 | 説明 |
|---|---|
商品名 (Name) | 商品の名前 (例: |
商品名カナ | フリガナ (検索用) |
商品コード | 在庫・経理用のコード |
商品分類 | カテゴリ (祭壇 / 棺 / 料理 / 返礼品 etc.) |
規格 | サイズ・素材などの規格情報 |
販売単価 | デフォルトの販売単価 (= 標準価格と同じ運用) |
仕入単価 | 仕入先からの仕入額 |
売上税率 ( | 売上時に適用される税率 (Lookup) |
仕入税率 ( | 仕入時に適用される税率 |
供物一覧に表示 ( | 供物一覧 PDF の対象 |
廃盤 ( | 検索候補から除外 (履歴は残る) |
② 価格タイプ (PriceType__c)
価格の区分 (どんなお客様向けの価格か) を表すマスタ。
主な項目 | 説明 |
|---|---|
名前 (Name) | 価格区分の名称 (例: |
分類 ( | 販売系 / 仕入系 などの区分 (内部処理で使用) |
デフォルト割引率 | 標準価格に対する自動割引率 (例: |
デフォルト ( | 同カテゴリでデフォルトとなる価格タイプ (1 つだけ) |
アクティブ ( | 有効/無効の切替 |
表示順 ( | プルダウンでの並び順 |
価格タイプの典型例
価格タイプ | デフォルト割引率 | 用途 |
|---|---|---|
標準価格 | 0% (基準) | 一般のお客様向け |
会員価格 | 10% など | 互助会会員のお客様向け |
葬祭ホール価格 | 5% など | 提携ホール経由のお客様向け |
仕入価格 | -100%++ (個別単価) | 仕入先から自社への単価 |
上代 | 0% (定価) | 業界標準定価 |
インストール時に 「標準価格 / 仕入価格 / 上代」 の 3 つが初期投入されます。組織で必要に応じて「会員価格」「葬祭ホール価格」などを追加します (マスタデータ整備 参照)。
③ 商品価格 (ProductPrice__c)
商品 × 価格タイプ の交点 。「祭壇 A の会員価格はいくらか」という具体的な単価を保持。
主な項目 | 説明 |
|---|---|
商品 ( | どの商品か |
価格タイプ ( | どの価格区分か |
価格 ( | 具体的な単価 |
価格率 ( | 標準価格に対する割合 (% 指定で双方向変換) |
仕入先 ( | 仕入系価格タイプの場合 (v2.3.0+) |
内税/外税 ( | 税込か税抜か (v2.3.0+) |
担当者が手動で 1 件ずつ作る必要は無く、商品か価格タイプを追加した瞬間に自動生成 されます (
ProductAutoPriceTrigger/PriceTypeAutoPriceTrigger)。
自動生成のしくみ
商品マスタを 1 件作ると…
例: 組織に価格タイプが 3 つ (標準・会員・葬祭ホール) ある状態で、新商品「祭壇 A」を追加:
[新商品: 祭壇 A] を作成
↓
ProductAutoPriceTrigger が起動
↓
3 つの商品価格レコードを自動生成:
・祭壇 A × 標準価格 = ¥100,000 (販売単価 のまま)
・祭壇 A × 会員価格 = ¥90,000 (標準 × (1 - 10%))
・祭壇 A × 葬祭ホール価格 = ¥95,000 (標準 × (1 - 5%))
価格タイプを 1 件追加すると…
例: 組織に商品が 500 件 ある状態で、新しい価格タイプ「VIP 価格」(デフォルト割引率 15%) を追加:
[新価格タイプ: VIP 価格] を作成
↓
PriceTypeAutoPriceTrigger が起動
↓
500 件の商品価格レコードを自動生成 (全商品 × VIP 価格)
・各商品の標準価格 × (1 - 15%) で初期値設定
後で個別に微調整したい場合は、商品価格マトリクスや商品価格エディタで編集できます (マスタデータ整備)。
標準価格は 1 つだけ (PriceTypeDefaultEnforcer)
同じカテゴリ内で 「デフォルト価格」フラグはひとつだけ に絞られます。これは PriceTypeDefaultEnforcer (Apex) が強制している制約です。
- 既存の「標準価格」を
IsDefaultにしたまま、新しく「VIP 価格」をIsDefaultにしようとするとエラー - 切り替えたい場合は、先に既存のデフォルトをオフにしてから
会員契約 → 施行情報 → 見積 への自動継承 (v2.3.0+ で完成)
ここからが、ブリッジ葬儀の価格設計の 真骨頂 。「お客様が会員様なら、自動的に会員価格で見積が作られる」 — これが実現できます。
流れ図
[会員契約 Membership]
└─ 価格タイプ: 会員価格 ← マスタとして保持
│
▼ Ceremony.MemberNo で会員契約を紐付ける
[施行情報 Ceremony]
└─ 価格タイプ: 会員価格 ← スナップショットコピー (Trigger: CeremonyMembershipPriceTypeTrigger)
│
▼ この施行情報から新規見積を作る (伝票区分 = 「葬儀」)
[見積伝票 Slip]
└─ 価格タイプ: 会員価格 ← 自動継承 (Handler: SlipDefaultPriceTypeHandler)
│
▼ 商品検索モーダルで明細を追加
[商品検索モーダル]
└─ 「会員価格」 列の単価を取得して表示
│
▼ 選択した商品を伝票に追加
[伝票明細 SlipDetail]
└─ 単価: 会員価格 (例: 祭壇 A → ¥90,000)
ステップ別の動作
ステップ | 何が起きるか |
|---|---|
1. 会員契約マスタに 「価格タイプ = 会員価格」 を設定 | 管理者 / 担当者の登録作業 |
2. 施行情報で 会員契約を選択 |
|
3. その施行情報から 新規見積伝票 を作成 (伝票区分: 葬儀) |
|
4. 商品検索モーダルで商品を選択 | その価格タイプの単価が表示・反映 |
5. 明細の単価には 会員価格 が入る | 自動 |
担当者が「価格マスタ」プルダウンを 手動で切り替える必要が無くなる のがポイントです。
「葬儀」伝票のみが対象 (v2.3.0+ の制限)
価格タイプの自動継承は SlipType__c = 「葬儀」 の伝票のみに限定されています。
- ✅ 当家への見積伝票 (葬儀区分) → 会員価格を自動継承
- ❌ 参列者からの供花注文伝票 (供物区分) → 標準価格を使用 (会員価格は適用されない)
これは「ご友人 A さんが供花を出したら、当家の会員価格で割引される」のような 誤適用を防ぐ ための設計です。
業務シーン別の価格適用
シーン 1: 一般のお客様
会員契約がないお客様の葬儀 → 施行情報の価格タイプは 空 → 伝票作成時に組織既定の 標準価格 が適用。
シーン 2: 互助会会員のお客様
会員契約を持つお客様の葬儀 → 施行情報の会員契約欄を選択 → 価格タイプが 会員価格 にスナップショット → 見積伝票も会員価格で作られる。
シーン 3: 葬祭ホール提携経由のお客様
葬祭ホールが発行する会員契約 → 価格タイプを 葬祭ホール価格 に設定 → 同様に自動継承。
シーン 4: 仕入先への発注伝票
発注伝票 (Order レコードタイプ + SlipType=供物 など) では、伝票エディタの「単価の反映元」を 仕入単価 に切替 → 商品検索で 仕入価格 が引かれる。
シーン 5: 手動で価格タイプを変えたい
会員様の見積でも、特別に標準価格で出したい場合 → 伝票エディタ上部の 「価格マスタ」プルダウン で 手動切替 。新規追加した明細にその価格が適用される。
ただし既存の明細は再計算されないので、必要なら一旦削除して再追加。
価格マスタの編集方法 (担当者向け)
商品 1 件の価格を編集
商品マスタの詳細画面 → 「商品価格エディタ」 (LWC) → 全価格タイプの単価を一画面で編集。「% 指定」「金額指定」を双方向に切替可能。
商品 × 価格タイプ を一括編集
「商品価格マスタ」タブ → 「商品価格マトリクス」 (LWC) → Excel 風行列で一括編集。変更したセルだけ保存。一度に最大 200 商品まで。
詳しくは マスタデータを整備する を参照 (管理者向け)。
設計思想のまとめ
観点 | ブリッジ葬儀の考え方 |
|---|---|
商品と価格の分離 | 商品マスタは「何を売るか」、価格タイプは「誰向けか」、商品価格は「いくらか」 |
自動展開 | 商品か価格タイプを追加すれば、組合せが自動生成 |
デフォルト制約 | 「デフォルト価格」は同カテゴリで 1 つだけに強制 |
会員価格の自動適用 | 会員契約 → 施行情報 → 見積 まで 手動切替不要 |
葬儀と供物の区別 | 「葬儀」伝票のみ会員価格を継承、「供物」伝票は標準価格 (誤適用防止) |
履歴整合性 | 会員契約マスタを後で変えても 過去の施行・伝票は追従しない (スナップショット) |
こんなときは
同じ会員でも、見積によって価格を変えたい
伝票エディタ上部の 「価格マスタ」プルダウン で手動切替。会員契約の自動継承を その伝票だけ無視 できます。
会員価格と葬祭ホール価格をミックスしたい
伝票全体に 1 つの価格タイプしか設定できないため、片方を選んで作成 → 必要な明細だけ単価を手動編集 する運用。または別伝票で。
仕入価格を会員価格と一緒に管理したい
「分類」(Category) で価格タイプを 販売系 / 仕入系 に分け、伝票エディタの「単価の反映元」プロパティで切替。混在しないよう設計されています。
価格タイプを増やすと商品価格レコードが大量生成される?
はい、商品数 × 価格タイプ数 だけレコードが生成されます (商品 1,000 件 + 価格タイプ 5 つ = 5,000 レコード)。Salesforce のストレージは余裕がありますが、目安として 価格タイプは 5-10 個程度 に抑えるのが一般的。
価格タイプを削除したい
過去の伝票で参照されている場合、削除すると履歴が壊れます。「アクティブ」をオフ にして「プルダウンに出さない」運用がおすすめ。
関連オブジェクト一覧
オブジェクト | 用途 |
|---|---|
商品マスタ ( | 商品の元データ |
価格タイプ ( | 価格区分 |
商品価格 ( | 商品 × 価格タイプ の単価 |
税率マスタ ( | 商品ごとの税率 |
会員契約 ( | 会員プランと価格タイプの紐付き |
施行情報 ( | 会員契約の価格タイプスナップショット |
伝票 / 伝票明細 ( | 実際の見積・請求への適用 |
関連する自動処理
自動処理 | 役割 |
|---|---|
| 商品マスタ追加時に全価格タイプ分の商品価格を生成 |
| 価格タイプ追加時に全商品分の商品価格を生成 |
| 商品マスタ作成時に税率自動補填 |
| デフォルト価格は同カテゴリで 1 つだけのルール強制 |
| 会員契約の価格タイプを施行情報にスナップショットコピー |
| 「葬儀」伝票のみ施行情報の価格タイプを継承 |
詳しくは 裏で自動で動く処理を知る を参照。
次に進む
- 会員契約を管理する — 会員契約側の設定詳細
- 見積書を作る — 見積伝票での価格適用の実操作
- 商品検索モーダルを使いこなす — 商品検索時の価格表示
- 伝票の設計思想 — もう 1 つの核心設計
- マスタデータを整備する (管理者) — 商品・価格タイプの登録手順
📅 最終更新日: 2026-06-16