EC-CUBE で B2B
構築を相談する

プラグイン一覧 / 支払い方法管理

支払い方法管理プラグイン

会員グループごとに、購入手続きで選べる支払い方法を出し分けます。「請求書払いは法人だけ」と「この取引先は郵便振替だけ」を別々に決められます。

会員グループ管理プラグインのアドオンです。先にそちらを入れてください。

何のためのプラグインか

支払い方法は、誰にでも同じものが並びます。そのままだと次のことができません。

このプラグインは、購入手続きの支払い方法の欄をログインしている人によって変えます。

割り当てが無いあいだは何も制限しません。 導入した直後は何も変わりません。制限したい ものにだけ付けていきます。

設定は2つあります

言いたいことが2つあるので、設定も2つに分けてあります。両方を満たしたものだけが 選べます。

設定 言いたいこと 場所
利用可能な会員グループ この支払い方法は、このグループだけ 設定 → 店舗設定 → 支払方法
このグループが使える支払い方法 このグループは、この支払い方法だけ 会員管理 → 会員グループ編集

片方だけでは足りません。 「請求書払いは法人だけ」と「取引先Aは郵便振替だけ」は 別のことなので、1つの設定で両方は言えません。1つにまとめると、「請求書払いは法人だけ」と チェックした瞬間に「法人は請求書払いだけ」も成立してしまい、法人が他の支払い方法を 使えなくなります。

支払い方法の側から絞る

利用可能な会員グループ

支払い方法の状態 選べる人
グループを1つも選んでいない 全員(非会員・グループ未所属の会員を含む)
グループを選んでいる 選んだグループのどれかに属する会員だけ

会員グループの側から絞る

会員グループの支払い方法

会員の所属グループ 選べる支払い方法
どのグループも支払い方法を選んでいない 制限しません
1つでも選んでいる 所属グループの選択の合計だけ

合計にするのは、所属を増やすほど選べなくなるのを避けるためです。 「郵便振替だけの 取引先グループ」と「請求書払いだけの与信グループ」の両方に属する会員は、その2つが 選べます。

並ぶのは 設定 → 店舗設定 → 支払方法 で登録したもののうち、表示中のものだけです。 非表示にした支払い方法は購入画面に元々出ないので、選択欄にも出しません。

例

支払方法編集の「利用可能な会員グループ」。

支払い方法 選んだグループ
銀行振込 (なし)
郵便振替 (なし)
請求書払い 法人
代金引換 一般

会員グループ編集の「このグループが使える支払い方法」。

会員グループ 選んだ支払い方法
法人 (なし)
一般 (なし)
取引先A 郵便振替

この設定だと、こうなります。

購入者 銀行振込 郵便振替 請求書払い 代金引換
非会員 ○ ○ × ×
会員(グループ未所属) ○ ○ × ×
会員(法人) ○ ○ ○ ×
会員(一般) ○ ○ × ○
会員(法人・一般の両方) ○ ○ ○ ○
会員(取引先A) × ○ × ×
会員(取引先A・法人) × ○ ○ ×

法人の会員は請求書払いも他の支払い方法も使えます。 「請求書払いは法人だけ」は 請求書払いの側の制限で、法人が使えるものを狭めるわけではありません。

最後の行が「合計」です。取引先Aが郵便振替を、法人が請求書払いを許すので、その2つに なります。

購入手続きでの見え方

掛売りグループの会員。このグループに郵便振替と銀行振込を割り当てているので、その2つだけに なります。

割り当てたグループの会員

グループに属していない会員。割り当ての無い2つだけになります。

グループ未所属の会員

やりたいことから引く

やりたいこと どちらを使うか
法人にだけ請求書払いを出す 支払方法編集の「利用可能な会員グループ」で法人を選ぶ
取引先Aを郵便振替だけにする 会員グループ編集で、取引先Aに郵便振替だけをチェックする
法人だけから代金引換を消す 会員グループ編集で、法人に使わせたい支払い方法をチェックする(チェックしなかったものが消えます)。他のグループはそのままです
どのグループから見ても代金引換を絞る 支払方法編集の「利用可能な会員グループ」で、使わせたいグループだけを選ぶ
制限を一時的に外す チェックを全部外せば、制限が無い状態に戻ります

4.3 以前から上げるとき

これまでの設定は「利用可能な会員グループ」として残ります。 場所が会員グループ編集から 支払方法編集に移るだけで、意味も効き方も変わりません。

会員グループ編集に出るのは新しく増えた設定(このグループが使える支払い方法)で、 最初は空です。空のあいだは何も制限しません。

表示を絞るだけでは守れません

制限は2段構えです。購入手続き画面で選択肢から取り除いたうえで、注文確認と 注文確定の両方で受注に載っている支払い方法をあらためて見ます。画面を経由しない値が 混ざったときの防波堤です。

本体はフォーム送信時に選択肢を制限なしの状態で作り直すので、表示のときだけ絞っても 送信時には制限が消えます。 本体の処理のあとにもう一度絞っています。

確定側も見るのは、本体が購入フローのあとで無条件に保存するためです。確認画面で 差し戻しても受注には保存されているので、確定側で検査しないとそのまま注文が通ります。

判定そのものは1か所にあります。画面と検査が別々に判定すると必ずずれます。

配送方法管理との違い

姉妹アドオンですが、割り当ての本数が違います。 配送方法は割り当てが1本だけ (この配送方法は、このグループだけ)。支払い方法は上のとおり2本あります。

配送方法に同じ仕組みを付けていないのは、配送方法が販売種別ごとに1つに紐づいている ためです。グループ側の許可リストを重ねると、扱う販売種別ごとに最低1つ許可し続けないと その会員は買えなくなります。 販売種別や配送方法を増やしたときに黙って壊れます。

支払い方法は販売種別で分かれていないので、同じ問題が起きません。

できないこと

項目 内容
効くのは購入画面だけ 管理画面からの受注登録・編集では制限がかかりません。運営者が意図して選ぶ場面なので止めていません
選べる支払い方法が無い会員は進めません すべての支払い方法にグループを割り当ててどれにも属さない会員がいる場合と、会員グループに割り当てた支払い方法が非公開・利用条件・配送方法の組み合わせでその注文に出せない場合に起きます。受け皿を1つ残してください
複数グループは OR だけ 「すべてのグループに属している場合だけ許可」はできません。支払い方法から見る側はどれか1つが許可すれば選べ、会員グループから見る側は所属グループの合計になります

割り当てだけで足りないとき

割り当ては会員の属性しか見ません。 「合計30万円を超えたら代引きを出さない」 「初回注文の取引先は前払いのみ」は、その注文の中身で決まるので割り当てでは書けません。 このときは判定を足します。

#[AutoconfigureTag(PaymentPermissionInterface::TAG)]
class CashOnDeliveryLimit implements PaymentPermissionInterface
{
    public function isAllowed(Payment $Payment, ?Customer $Customer, ?Order $Order): bool
    {
        if ($Payment->getId() !== 3 || null === $Order) {
            return true; // 関与しない
        }

        return $Order->getPaymentTotal() <= 300000;
    }
}

足せるのは絞る方向だけです。true を返しても、割り当てで落ちた支払い方法は戻りません。 購入手続きの選択肢と購入フローの検証は同じ判定を通るので、片方だけ効くことはありません。

外したときの挙動

アンインストールすると、割り当てを持つテーブル2本だけを消します。会員グループそのものや 支払い方法のマスタには手を付けないので、外しても購入はこれまでどおりできます。 会員グループを消すと割り当ても消えますが、支払い方法そのものは残ります。

会員グループが削除できなくなったら

他のプラグインを入れたときにスキーマが再構築され、外部キーの設定が既定に戻ることが あります。この状態だと、支払い方法を割り当てた会員グループを削除しようとして 「関連するデータがあるため削除できませんでした」になります。

このプラグインを無効化して、もう一度有効化してください。 有効化のときに外部キーを 張り直します。doctrine:schema:update や eccube:plugin:schema-update では直りません。

動作要件

項目 内容
EC-CUBE 4.4 系
PHP 8.2 / 8.3
データベース MySQL 8 / PostgreSQL 13 以上
必須プラグイン 会員グループ管理(ec-cube/customergroup44)が有効であること

掛売りを本格的に運用するなら、請求書払いを自前で持つ 月締め請求管理を検討してください。

差し替えられるところ

主要な処理はインターフェースとして切ってあります。実装を差し替えれば動きが変わります。 自社の商習慣に合わない部分があれば、まず差し替えで済むかを確かめてください。

AI に書かせられます。このプラグインには CLAUDE.md と docs/extension-samples.md が 同梱されていて、差し替え口ごとにそのまま使えるサンプルが載っています。 やりたいことを日本語で伝えれば、AI コーディングツールが実装を書きます (くわしく)。

インターフェースできること
PaymentPermissionInterface注文の中身で支払い方法を絞る(合計30万円を超えたら代引きを外す、など)

入手する

オーナーズストアで購入

買い切りです。月額はかかりません。予定価格 税抜 50,000 円。

予定価格です。オーナーズストアでの販売開始時に変わる場合があります。

販売ページの準備ができ次第、ここに載せます。

導入を任せる

サーバーの用意から EC-CUBE の設置、プラグインの導入と設定まで請け負います。 商習慣に合わせた作り足しもご相談ください。

この条件で回るか、確かめてから決めてください

締め日、支払サイト、請求書の様式、会計ソフトへの受け渡し。合うかどうかは商習慣によって変わります。やりたいことを書いて送ってください。