コンテンツにスキップ

iDempiere 得意先(顧客)の使い方|販売管理 操作マニュアル・技術仕様

📖 販売管理の全体像: 販売管理の全体図 も合わせてご覧ください。

得意先(顧客)は、取引先マスタ(C_BPartner)を「販売の相手先」という視点に絞り込んで表示するウィンドウです。与信限度額・価格表・支払条件といった販売条件に加え、その顧客の営業案件・営業活動・リクエスト・受注明細までを1つの画面で確認できます。

📌 ポイント: このウィンドウは取引先マスタと同じ C_BPartner テーブルを扱います。ここで登録した顧客は 取引先マスタ にも表示され、仕入先情報や銀行口座などの全項目はそちらで編集します。得意先ウィンドウは販売側の項目に絞った「作業しやすい入口」と考えてください。

  • 顧客の基本情報登録(検索キー・名称・取引先グループ・納税者番号)
  • 与信限度額・与信利用額・与信管理ステータスによる与信管理
  • 価格表・割引スキーマ・割引率の設定(受注時に自動適用)
  • 支払方法・支払条件・請求ルール・請求スケジュールの既定値設定
  • 出荷ルール・配送方法などの物流既定値の設定
  • 顧客担当者(コンタクト)と住所(出荷先/請求先/入金先/支払先)の管理
  • 品目単位の契約金額(顧客別価格)の登録
  • 顧客ごとの営業案件・営業活動・リクエスト・受注明細の照会

得意先(顧客)は8タブ構成です。ヘッダーの顧客を選択すると、その顧客に関する情報が各タブに展開されます。

タブ名テーブル階層項目数役割
得意先(顧客)C_BPartner0約47項目顧客の基本情報・与信・販売条件
営業案件(オポチュニティ)C_Opportunity1約18項目この顧客の商談
顧客担当者AD_User1約22項目顧客側の担当者(コンタクト)
営業活動(アクティビティ)C_ContactActivity2約11項目担当者ごとの活動履歴
住所C_BPartner_Location1約14項目出荷先・請求先などの住所
契約金額M_BP_Price1約15項目顧客別・品目別の契約価格
リクエストR_Request1約17項目問い合わせ・クレーム等
見積/受注明細RV_OrderDetail1約21項目受注明細の照会(ビュー)
graph TD
    T1["🏢 得意先(顧客)<br/>C_BPartner<br/>約47項目"]
    T2["🎯 営業案件<br/>C_Opportunity"]
    T3["👤 顧客担当者<br/>AD_User"]
    T3a["&nbsp;&nbsp;└ 営業活動<br/>&nbsp;&nbsp;&nbsp;&nbsp;C_ContactActivity"]
    T4["📍 住所<br/>C_BPartner_Location"]
    T5["💴 契約金額<br/>M_BP_Price"]
    T6["📨 リクエスト<br/>R_Request"]
    T7["📄 見積/受注明細<br/>RV_OrderDetail(ビュー)"]
    T1 --> T2
    T1 --> T3
    T3 --> T3a
    T1 --> T4
    T1 --> T5
    T1 --> T6
    T1 --> T7

得意先(顧客) C_BPartner 約47項目 営業案件 C_Opportunity 顧客担当者 AD_User   └ 営業活動     C_ContactActivity 住所 C_BPartner_Location 契約金額 M_BP_Price リクエスト R_Request 見積/受注明細 RV_OrderDetail(ビュー)

💡 ヒント: 「見積/受注明細」タブは RV_OrderDetail というレポート用ビューです。編集はできませんが、未出荷数量・未請求数量まで含めて受注の残高を素早く確認できます。

graph TD
    A["🚀 メニューから開く<br/>販売管理 > 見込顧客管理 > 得意先(顧客)"] --> B["➕ 新規で顧客を登録<br/>(検索キー・名称・取引先グループ)"]
    B --> C["💳 与信限度額を設定"]
    C --> D["💴 価格表・割引スキーマ<br/>支払方法・支払条件を設定"]
    D --> E["💾 保存"]
    E --> F["📍 住所タブで出荷先・請求先を登録"]
    F --> G["👤 顧客担当者タブで<br/>コンタクトを登録"]
    G --> H{個別価格あり?}
    H -->|あり| I["💴 契約金額タブで<br/>品目別価格を登録"]
    H -->|なし| J["✅ 受注伝票で顧客を選択可能に"]
    I --> J

メニューから開く 販売管理 > 見込顧客管理 > 得意先(顧客) 新規で顧客を登録 (検索キー・名称・取引先グループ) 与信限度額を設定 価格表・割引スキーマ 支払方法・支払条件を設定 保存 住所タブで出荷先・請求先を登録 顧客担当者タブで コンタクトを登録 契約金額タブで 品目別価格を登録 受注伝票で顧客を選択可能に 個別価格あり? あり なし

メニューから「販売管理 > 見込顧客管理 > 得意先(顧客)」を開きます。

⚠️ 注意: 「得意先」(IsCustomer)チェックが外れている取引先は、受注伝票の取引先候補に表示されません。新規登録時は必ずチェックが入っていることを確認してください。

  1. ツールバーの「新規」ボタンをクリック
  2. 必須項目を入力:
    • 検索キー: 顧客コード(一意)
    • 名称: 顧客名
    • 取引先グループ: 会計設定・割引の基準となるグループ
    • 与信限度額: 与信の上限額(既定は 0)
  3. 販売条件を設定:
    • 価格表: 適用する価格表
    • 割引スキーマ / 割引率: 取引先別の値引ルール
    • 支払方法 / 支払条件: 入金方法と支払期日ルール
    • 請求ルール / 請求スケジュール: 請求のまとめ方
    • 出荷ルール / 配送方法: 出荷タイミングと配送手段
  4. 必要に応じて属性情報を入力:
    • 読み方: 名称のふりがな(Name2
    • 納税者番号 / D-U-N-S / NAICS/SIC / レイティング
    • 社内担当者: 担当営業
    • 常連/見込顧客: 見込客として管理する場合にチェック
  5. 保存」をクリック
  1. 住所」タブに移動し「新規」をクリック
  2. 名称住所(住所ダイアログで入力)を登録
  3. 用途フラグを設定:
    • 出荷納品先IsShipTo): 出荷先として使う住所
    • 請求先IsBillTo): 請求書の送付先
    • 入金先IsPayFrom): 入金元
    • 支払先IsRemitTo): 支払先
  4. 電話番号・FAX・販売地域を必要に応じて入力
  5. 保存」をクリック

💡 ヒント: 受注伝票では「取引先住所」に出荷納品先フラグが立った住所、「請求先住所」に請求先フラグが立った住所が候補として表示されます。用途フラグの設定漏れは伝票入力時のトラブルの典型原因です。

契約金額(顧客別価格)の登録

Section titled “契約金額(顧客別価格)の登録”
  1. 契約金額」タブに移動し「新規」をクリック
  2. 価格情報を入力:
    • 品目: 対象品目(必須)
    • 分岐値: 数量割引の下限値(必須)
    • 通貨: 価格の通貨(必須)
    • 営業定価 / 実績価格 / 限度価格: 定価・標準価格・最低価格(いずれも必須)
    • 有効開始日 / 有効終了日: 適用期間
    • Price Override Type: 固定価格で上書きするか、定価からの割引率で指定するか
  3. 保存」をクリック

項目リファレンス(得意先タブ・主要項目)

Section titled “項目リファレンス(得意先タブ・主要項目)”
項目名必須説明
検索キー必須文字列顧客コード(一意)
名称必須文字列顧客名
読み方-文字列名称の別表記(ふりがな等)
得意先必須チェック得意先として扱うか
取引先グループ必須選択会計・割引の基準グループ
与信限度額必須金額与信の上限額
与信利用額必須金額現在の与信使用額(自動更新)
与信管理ステータス-リスト与信状態(与信保留・与信停止等)
債権債務残高-金額会計通貨ベースの未決済残高
納税者番号-文字列税務上の識別番号
税金免除-チェック売上税を免除するか
価格表-選択適用する価格表
割引スキーマ / 割引率-選択 / 数値値引ルール
支払方法-リスト入金方法
支払条件-選択支払期日ルール
請求ルール / 請求スケジュール-リスト / 選択請求のまとめ方
出荷ルール / 配送方法-リスト出荷タイミング・配送手段
督促-選択滞留債権の督促ルール
社内担当者-選択担当営業
常連/見込顧客必須チェック見込客として管理するか
売上予想 / 売上実績-金額ライフタイムバリューの見込・実績

全項目は 画面リファレンス: 得意先(顧客) を参照してください。

graph TD
    A["得意先マスタ<br/>与信限度額を設定"] --> B["受注伝票の作成"]
    B --> C{与信チェック}
    C -->|限度内| D["受注を完成"]
    C -->|超過| E["与信管理ステータスに応じて<br/>警告または処理停止"]
    D --> F["出荷伝票"]
    F --> G["売上請求書<br/>与信利用額が増加"]
    G --> H["入金処理<br/>与信利用額が減少"]

得意先マスタ 与信限度額を設定 受注伝票の作成 受注を完成 与信管理ステータスに応じて 警告または処理停止 出荷伝票 売上請求書 与信利用額が増加 入金処理 与信利用額が減少 与信チェック 限度内 超過

Q. 得意先ウィンドウと取引先マスタは何が違いますか?

Section titled “Q. 得意先ウィンドウと取引先マスタは何が違いますか?”

同じ C_BPartner テーブルを扱う別ウィンドウです。得意先ウィンドウは販売側の項目に絞り、営業案件・リクエスト・受注明細といった販売視点の子タブを備えています。仕入先情報・銀行口座・会計設定などを含む全項目は 取引先マスタ で編集します。

Q. 「与信利用額」を手で修正できますか?

Section titled “Q. 「与信利用額」を手で修正できますか?”

与信利用額(SO_CreditUsed)は請求・入金の処理に伴ってシステムが更新する項目です。手作業での書き換えは残高不整合の原因になるため避けてください。値がずれている場合は、請求書・入金の消込状況を確認します。

Q. 顧客ごとの特別価格はどこで設定しますか?

Section titled “Q. 顧客ごとの特別価格はどこで設定しますか?”

「契約金額」タブ(M_BP_Price)で品目単位に設定します。品目・分岐値・通貨・営業定価・実績価格・限度価格が必須です。価格表全体を分けたい場合は、顧客に専用の 価格表 を割り当てる方法もあります。

Q. 受注伝票で住所が選択肢に出てきません

Section titled “Q. 受注伝票で住所が選択肢に出てきません”

住所タブの用途フラグを確認してください。出荷先には「出荷納品先」、請求先には「請求先」のチェックが必要です。また住所レコード自体が無効(有効チェックなし)になっていないかも確認します。

Q. 顧客担当者にパスワードを設定するとどうなりますか?

Section titled “Q. 顧客担当者にパスワードを設定するとどうなりますか?”

顧客担当者タブは AD_User です。パスワードと「取引先全データアクセス権限」を設定すると、その担当者はセルフサービス(Web Store 等)でログインし、自社の取引データを参照できるようになります。運用ポリシーに応じて権限範囲を検討してください。

Q. 見込客と得意先はどう使い分けますか?

Section titled “Q. 見込客と得意先はどう使い分けますか?”

「常連/見込顧客」(IsProspect)にチェックを入れると見込客として扱えます。まだ取引が始まっていない引合先は、営業担当者ダッシュボード の見込顧客(リード)タブで軽量に管理し、取引開始のタイミングで得意先として本登録する運用が一般的です。

🛠 技術仕様(開発者向け)

得意先(顧客)ウィンドウのヘッダーテーブルは C_BPartner で、モデルクラスは MBPartner(1,043行)です。MBPartnerX_C_BPartner を継承し、ImmutablePOSupport を実装しているため、MBPartner.get(ctx, C_BPartner_ID) によるキャッシュ経由の高速参照が可能です。Document 型ではありません。

子タブは、営業案件 C_OpportunityMOpportunity)、顧客担当者 AD_UserMUser)、営業活動 C_ContactActivity(生成クラスのみ)、住所 C_BPartner_LocationMBPartnerLocation)、契約金額 M_BP_Price、リクエスト R_RequestMRequest)、そしてレポートビュー RV_OrderDetail で構成されます。

classDiagram
    class MBPartner {
        +getTemplate(ctx, AD_Client_ID) MBPartner
        +get(ctx, C_BPartner_ID) MBPartner
        +get(ctx, Value) MBPartner
        +getFirstWithTaxID(ctx, taxID, trx) MBPartner
        +getNotInvoicedAmt(C_BPartner_ID) BigDecimal
        +getContacts(boolean) MUser[]
        +getLocations(boolean) MBPartnerLocation[]
        +getBankAccounts(boolean) MBPBankAccount[]
        +getPrimaryC_BPartner_Location() MBPartnerLocation
        +setClientOrg(AD_Client_ID, AD_Org_ID) void
    }
    class X_C_BPartner {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    class ImmutablePOSupport {
        <<interface>>
    }
    MBPartner --|> X_C_BPartner
    X_C_BPartner --|> PO
    MBPartner ..|> ImmutablePOSupport
    MBPartner --> MBPartnerLocation : has many
    MBPartner --> MUser : has many
    MBPartner --> MOpportunity : has many

+getTemplate(ctx, AD_Client_ID) MBPartner +get(ctx, C_BPartner_ID) MBPartner +get(ctx, Value) MBPartner +getFirstWithTaxID(ctx, taxID, trx) MBPartner +getNotInvoicedAmt(C_BPartner_ID) BigDecimal +getContacts(boolean) MUser[] +getLocations(boolean) MBPartnerLocation[] +getBankAccounts(boolean) MBPBankAccount[] +getPrimaryC_BPartner_Location() MBPartnerLocation +setClientOrg(AD_Client_ID, AD_Org_ID) void <> <> <> > X_C_BPartner X_C_BPartner --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MBPartner.java(1,043行)/ MBPartnerLocation.java / MOpportunity.java(80行)/ X_C_ContactActivity.java(364行)

C_BPartner(取引先/得意先)主要カラム

Section titled “C_BPartner(取引先/得意先)主要カラム”
カラム名必須説明備考
C_BPartner_IDIDPK取引先ID主キー
ValueStringY検索キー一意
NameStringY名称
Name2StringN読み方追加名称
IsCustomerYesNoY得意先販売対象フラグ
IsProspectYesNoY常連/見込顧客
C_BP_Group_IDTableDirectY取引先グループ会計設定の基準
SO_CreditLimitAmountY与信限度額
SO_CreditUsedAmountY与信利用額システム更新
SOCreditStatusListN与信管理ステータス
TotalOpenBalanceAmountN債権債務残高会計通貨ベース
TaxIDStringN納税者番号
IsTaxExemptYesNoN税金免除(売上)
IsPOTaxExemptYesNoY仕入税金免除
M_PriceList_IDTableDirectN価格表受注時の既定値
M_DiscountSchema_IDTableN割引スキーマ
FlatDiscountNumberN割引率
PaymentRuleListN支払方法
C_PaymentTerm_IDTableN支払条件
InvoiceRuleListN請求ルール
C_InvoiceSchedule_IDTableDirectN請求スケジュール
DeliveryRuleListN出荷ルール
DeliveryViaRuleListN配送方法
C_Dunning_IDTableDirectN督促
SalesRep_IDTableN社内担当者
カラム名必須説明
C_BPartner_Location_IDIDPK住所ID
C_BPartner_IDSearchY取引先FK
C_Location_IDLocationY住所(郵便番号・都道府県等)
IsShipToYesNoY出荷納品先
IsBillToYesNoY請求先
IsPayFromYesNoY入金先
IsRemitToYesNoY支払先
C_SalesRegion_IDTableN販売地域
カラム名必須説明
C_BPartner_IDSearchY取引先FK
M_Product_IDSearchY品目FK
BreakValueNumberY分岐値(数量割引の下限)
C_Currency_IDTableDirectY通貨
PriceListCosts+PricesY営業定価
PriceStdCosts+PricesY実績価格
PriceLimitCosts+PricesY限度価格
PriceOverrideTypeListN固定価格 or 定価からの割引
ValidFrom / ValidToDateN適用期間
erDiagram
    C_BPartner ||--o{ C_BPartner_Location : "addresses"
    C_BPartner ||--o{ AD_User : "contacts"
    C_BPartner ||--o{ C_Opportunity : "opportunities"
    C_BPartner ||--o{ M_BP_Price : "contract prices"
    C_BPartner ||--o{ R_Request : "requests"
    C_BPartner ||--o{ C_Order : "orders"
    C_BPartner }o--|| C_BP_Group : "group"
    C_BPartner }o--o| M_PriceList : "price list"
    C_BPartner }o--o| C_PaymentTerm : "payment term"
    AD_User ||--o{ C_ContactActivity : "activities"
    C_Order ||--o{ RV_OrderDetail : "order detail view"

contract prices price list payment term order detail view

メソッド役割
getTemplate(ctx, AD_Client_ID)クライアント情報のテンプレート取引先を取得し、新規登録の初期値に使用
getBPartnerCashTrx(ctx, AD_Client_ID)現金取引用の取引先を取得(POS などで使用)
get(ctx, C_BPartner_ID)キャッシュ経由の取得(ImmutablePOSupport
get(ctx, Value)検索キーによる取得
getFirstWithTaxID(ctx, taxID, trxName)納税者番号による検索
getNotInvoicedAmt(C_BPartner_ID)未請求金額の算出(与信判定に利用)
getContacts(boolean reload)顧客担当者(MUser)の一覧取得
getLocations(boolean reload)住所(MBPartnerLocation)の一覧取得
getBankAccounts(boolean requery)銀行口座(MBPBankAccount)の一覧取得
getPrimaryC_BPartner_Location()主住所の取得
initTemplate(AD_Client_ID)テンプレート取引先から既定値を初期化

📌 ポイント: 新規取引先の既定値は initTemplate() がクライアント情報のテンプレート取引先からコピーします。価格表・支払条件・与信限度額といった項目を組織標準として揃えたい場合は、テンプレート取引先を整備しておくのが最も効率的です。

MOpportunity.beforeSave() により、受注伝票がひも付いた案件は保存時に案件金額が受注総合計で上書きされます。またステージ選択時は CalloutOpportunity.salesStage が可能性(%)を自動セットします。

「見積/受注明細」タブはレポート用ビューです。未出荷数量(QtyToDeliver)・未請求数量(QtyToInvoice)を含み、参照専用として利用します。

拡張ポイント(カスタマイズ箇所)

Section titled “拡張ポイント(カスタマイズ箇所)”
public class CustomCustomerValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MBPartner) {
MBPartner bp = (MBPartner) po;
if (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE) {
// 例: 得意先は与信限度額の入力を必須にする
if (bp.isCustomer() && bp.getSO_CreditLimit().signum() == 0) {
throw new AdempiereException("得意先には与信限度額を設定してください");
}
// 例: 顧客コードの命名規則
if (bp.getValue() != null && !bp.getValue().matches("C-\\d{6}")) {
throw new AdempiereException("顧客コードは「C-000000」形式で入力してください");
}
}
}
return null;
}
}

MBPartnerImmutablePOSupport を実装しており、MBPartner.get() はキャッシュを返します。取得したインスタンスを編集する場合は、更新可能なコピー(new MBPartner(ctx, copy, trxName) 等のコピーコンストラクタ)を使用してください。キャッシュされたイミュータブルインスタンスへの直接更新は避けます。

顧客別価格のロジックを独自に組みたい場合は、IPricingRule を実装した OSGi サービスを追加します。M_BP_Price(契約金額)や割引スキーマの標準ロジックを変更せずに、自社ルールを重ねられます。

得意先タブの列には標準のカスタム Callout は設定されていません(C_BPartner 側で追加する場合は AD_Column の Callout 欄に登録します)。子タブの営業案件では C_SalesStage_IDCalloutOpportunity.salesStage が設定されています。

得意先(顧客)ウィンドウ自体には、ボタン起動の標準プロセスは定義されていません。与信・売掛の分析は請求書・入金側の標準レポートを利用します。


顧客コード体系・与信ルール・顧客別価格の判定は、企業ごとに固有の要件が出やすい領域です。Model Validator と IPricingRule により、コア改変なしで自社ルールを実装できます。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら