機能の深掘り

商品マスタと価格タイプ|価格設計の全体像

ブリッジ葬儀の 価格まわり は、3 つのオブジェクト で構成されています。「同じ商品でも、会員様には会員価格で、一般のお客様には標準価格で」という運用は、この設計のおかげで 自動的に 実現できます。

このページでは、商品マスタ・価格タイプ・商品価格 の関係と、会員契約から見積伝票まで価格が自動継承されるしくみ をひとまとめに解説します。

全体像 (1 分で掴む)

[商品マスタ]              [価格タイプ]                [商品価格]
─────────────────         ─────────────────          ──────────────────
祭壇 A                    標準価格                    祭壇 A × 標準 = ¥100,000
                          会員価格                    祭壇 A × 会員 = ¥90,000
                          葬祭ホール価格              祭壇 A × ホール = ¥80,000
                          仕入価格                    祭壇 A × 仕入 = ¥60,000
   ↓                         ↓                          ↑
   商品マスタを追加 ────→ 価格タイプの数だけ ───→ 商品価格レコードが
                          自動で組み合わせ            自動生成される
                          (PriceTypeAutoPriceTrigger)

ポイント:

  • 商品マスタ は商品そのものを定義 (棺・祭壇・料理・返礼品 など)
  • 価格タイプ価格の区分 を定義 (標準・会員・葬祭ホール・仕入 など)
  • 商品価格 は商品 × 価格タイプ の 交点 (実際の単価) を保持
  • 商品か価格タイプを 1 件追加すれば、自動で商品価格レコードが組み合わせ生成 される

3 つのオブジェクトの役割

① 商品マスタ (Product__c)

葬儀社が取り扱う 商品 1 つ 1 つ を表すマスタ。

主な項目

説明

商品名 (Name)

商品の名前 (例: 祭壇 A高級棺)

商品名カナ

フリガナ (検索用)

商品コード

在庫・経理用のコード

商品分類

カテゴリ (祭壇 / 棺 / 料理 / 返礼品 etc.)

規格

サイズ・素材などの規格情報

販売単価

デフォルトの販売単価 (= 標準価格と同じ運用)

仕入単価

仕入先からの仕入額

売上税率 (TaxRate__c)

売上時に適用される税率 (Lookup)

仕入税率 (TaxRate_Supplier__c)

仕入時に適用される税率

供物一覧に表示 (IsShownOnList__c)

供物一覧 PDF の対象

廃盤 (IsInvalid__c)

検索候補から除外 (履歴は残る)

② 価格タイプ (PriceType__c)

価格の区分 (どんなお客様向けの価格か) を表すマスタ。

主な項目

説明

名前 (Name)

価格区分の名称 (例: 標準価格会員価格葬祭ホール価格)

分類 (Category__c)

販売系 / 仕入系 などの区分 (内部処理で使用)

デフォルト割引率

標準価格に対する自動割引率 (例: 10 で標準から 10% 引き)

デフォルト (IsDefault__c)

同カテゴリでデフォルトとなる価格タイプ (1 つだけ)

アクティブ (IsActive__c)

有効/無効の切替

表示順 (SortOrder__c)

プルダウンでの並び順

価格タイプの典型例

価格タイプ

デフォルト割引率

用途

標準価格

0% (基準)

一般のお客様向け

会員価格

10% など

互助会会員のお客様向け

葬祭ホール価格

5% など

提携ホール経由のお客様向け

仕入価格

-100%++ (個別単価)

仕入先から自社への単価

上代

0% (定価)

業界標準定価

インストール時に 「標準価格 / 仕入価格 / 上代」 の 3 つが初期投入されます。組織で必要に応じて「会員価格」「葬祭ホール価格」などを追加します (マスタデータ整備 参照)。

③ 商品価格 (ProductPrice__c)

商品 × 価格タイプ の交点 。「祭壇 A の会員価格はいくらか」という具体的な単価を保持。

主な項目

説明

商品 (Product__c)

どの商品か

価格タイプ (PriceType__c)

どの価格区分か

価格 (Price__c)

具体的な単価

価格率 (PriceRate__c)

標準価格に対する割合 (% 指定で双方向変換)

仕入先 (Supplier__c)

仕入系価格タイプの場合 (v2.3.0+)

内税/外税 (TaxIncluded__c)

税込か税抜か (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. 施行情報で 会員契約を選択

CeremonyMembershipPriceTypeTrigger が会員契約の価格タイプを施行情報にスナップショットコピー

3. その施行情報から 新規見積伝票 を作成 (伝票区分: 葬儀)

SlipDefaultPriceTypeHandler が施行情報の価格タイプを継承

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 個程度 に抑えるのが一般的。

価格タイプを削除したい

過去の伝票で参照されている場合、削除すると履歴が壊れます。「アクティブ」をオフ にして「プルダウンに出さない」運用がおすすめ。

関連オブジェクト一覧

オブジェクト

用途

商品マスタ (Product__c)

商品の元データ

価格タイプ (PriceType__c)

価格区分

商品価格 (ProductPrice__c)

商品 × 価格タイプ の単価

税率マスタ (TaxRate__c)

商品ごとの税率

会員契約 (Membership__c)

会員プランと価格タイプの紐付き

施行情報 (Ceremony__c)

会員契約の価格タイプスナップショット

伝票 / 伝票明細 (Slip__c / SlipDetail__c)

実際の見積・請求への適用

関連する自動処理

自動処理

役割

ProductAutoPriceTrigger

商品マスタ追加時に全価格タイプ分の商品価格を生成

PriceTypeAutoPriceTrigger

価格タイプ追加時に全商品分の商品価格を生成

ProductDefaultTaxRateHandler

商品マスタ作成時に税率自動補填

PriceTypeDefaultEnforcer

デフォルト価格は同カテゴリで 1 つだけのルール強制

CeremonyMembershipPriceTypeTrigger ★v2.3.0+

会員契約の価格タイプを施行情報にスナップショットコピー

SlipDefaultPriceTypeHandler ★v2.3.0+

「葬儀」伝票のみ施行情報の価格タイプを継承

詳しくは 裏で自動で動く処理を知る を参照。

次に進む


📅 最終更新日: 2026-06-16