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

プラグイン一覧 / 代理注文

代理注文プラグイン

営業担当者が管理画面から「この会員として注文する」を押し、担当のお客様としてフロントにログインして注文を代わりに入れます。卸価格も発注単位も発注承認も、会員本人が注文するときと同じように効きます。

営業担当者プラグインのアドオンです。先にそちらを入れてください。

取引先アカウント管理は必須ではありません。入れている場合だけ機能が増えます。

何のためのプラグインか

サイトを開いても、電話と FAX の注文はしばらく残ります。その注文を店が入れるとき、 EC-CUBE の管理画面には受注登録しかありません。受注登録は店が受注データを直接作る画面なので、 会員に効くはずの決まりを通りません。

このプラグインは、受注登録を使いません。営業担当者がその会員としてフロントにログインして、 普段どおり買います。

代理中のフロントの帯

代理のあいだ、フロントの全ページの上に誰が誰として操作しているかが出ます。

会員に効く決まりは、本人が注文するときと同じように効きます。

効くもの 代理中
会員グループの卸価格・支払い方法・配送方法 その会員のグループのものが効く
発注単位・取り寄せなど購入フローの決まり 効く
取引先の拠点 その会員の拠点のお届け先だけが並ぶ
担当者の権限 その会員の役割のまま。「発注する」を持たない担当者は、代理でも発注できない
発注承認 担当者として代理すれば、普段どおり承認待ちで止まる

押せるのは担当の営業担当者だけ

会員編集と会員一覧に「この会員として注文する」が出ます。

会員編集のボタン

メンバー 代理できる会員
営業担当者(営業担当者の「営業担当者として扱う権限」) 自分が担当のお客様だけ。取引先から引き継いだ担当も含む
システム管理者 基本設定「システム管理者も代理注文できる」が入っていれば全員
それ以外 誰もできない

会員が本会員でない(仮会員・退会)ときと、メンバーが非稼働のときは押せません。

判定は1か所です。 ボタンを出すとき、ボタンを押したとき、リンクで入ってきたとき、代理中の リクエストごとに、同じ判定を通ります。代理の途中で担当から外れたら、次にページを開いたときに 代理が終わります。

入口の作り

代理の入口は Symfony のログインリンクです。パスワードを聞き出す・預かる作りにはしていません。

守り 内容
期限 60 秒
回数 1 回。使ったあとは署名の材料を振り直すので、二度は通らない
発行のたびに前のリンクが死ぬ 発行のたびに会員の署名の材料を振り直す
同じブラウザだけ 発行したセッションと同じで、そこで発行したメンバーが管理画面にログインしているときだけ
発行の経路 POST と CSRF のトークン
自動ログイン 付けない(remember-me を立てさせない)
URL に会員のメールアドレスを載せない リンクの user= は代理の記録の番号(proxy:<ID>)。Web サーバーや CDN のアクセスログ、営業のブラウザの履歴に会員のメールアドレスを残さないため

どれか1つでも欠けたら 403 です。理由は画面に出さず、ログにだけ残します。

リファラーは見ません。 送る側が好きに書けるためです。

代理のあいだ、させないこと

マイページのメニューからは消え、URL を開いても 403 になります。塞ぐ側と、画面からリンクを消す側は 同じ一覧を使っています。片方だけということが起きません。

代理中に開こうとしたとき

させないこと 中身
会員情報の変更 メールアドレスとパスワードを含みます
パスワードの再設定 忘れたときの再設定も同じです
退会・会員登録・取引先の申し込み
取引先の管理の操作 担当者の発行と退会、担当者の役割、拠点の編集、発注の承認と差し戻し、承認限度額

お届け先は塞ぎません。 会員本人と同じ決まり(担当者の権限・拠点があればそれに従う)です。

支払い方法

基本設定で選んだ支払い方法は、代理中は選択肢に出ません。カード決済のように、本人以外に 選ばせたくないものを外します。

代理中の支払い方法

外すのは表示だけではありません。配送方法を選び直したときや前回の支払い方法が引き継がれたときのように、 画面を通らずに決まった支払い方法も購入フローで止め、確認と確定に進ませません。

代理を終える

帯の「代理を終える」を押すと、フロントからだけログアウトし、管理画面の会員編集に戻ります。 フロントの「ログアウト」も同じ動きです(本体のログアウトはセッションごと捨ててしまい、管理画面の ログインまで消えるため、置き換えています)。管理画面からログアウトしたときも代理は終わります。

誰が代わりに入れたかが残ります

受注

受注一覧・受注編集に「代理入力: ○○」が出ます。受注 CSV・配送 CSV には「代理で入力したメンバー」の 項目があります(既定は出さない側。設定 → 店舗設定 → CSV出力項目設定 で出す側へ移します)。

受注一覧の代理入力

会員のマイページ

会員本人の注文履歴にも出します。 一覧と詳細の両方に「営業担当 ○○ が代理で入力」と出ます。 注文完了メールの先頭にも一文が入ります。

マイページの注文履歴

会員に黙って代わりに注文する使い方は想定していません。誰が入れた注文かは、会員の側からも見えます。

代理注文の記録

代理注文の記録

リンクを発行するたびに1行増えます。システム管理者だけが見られます。

列 中身
開始 代理が始まった時刻。使われなかったリンクは「使われず(発行 …)」
終了 終わった時刻と理由(代理を終える・フロントのログアウト・管理画面のログアウト・担当から外れた・ログインが替わった)
操作したメンバー・会員 その時点の名前と ID。メンバーや会員を消しても残る
IP アドレス リンクを使ったときの IP アドレス
その間の注文 その代理のあいだに確定した注文

アンインストールすると記録も消えます。 残すなら先に書き出してください。

基本設定

代理注文の設定

項目 既定 内容
システム管理者も代理注文できる 入 切ると、代理注文できるのは担当の営業担当者だけ
代理中に選ばせない支払い方法 なし 選択肢から外し、選ばれていても確認・確定の前で止める

設定も記録も、システム管理者だけが開けます。

知っておいてほしい仕様

項目 内容
カートは会員と共有 代理でカートに入れた商品は、会員本人がログインしたときもカートに残ります。会員が同時にカートを触っていると混ざります
代理で途中まで進めた注文を本人が確定したら 代理の控えは消えます。本人の注文だからです
セッションが切れて終わったとき 記録に終わりの時刻が入りません(「終了の記録なし」)
会員のログインの記録 本体は会員の最終ログイン日時もログイン履歴も持っていません。ただし会員のログインを記録する他のプラグインを入れていると、代理のログインも会員のログインとして記録されます(Symfony のログインリンクの作りで、出ないようにはできません)
ログインのたびに動く処理 会員ランクの見直しのように、ログインを合図に動く処理は代理のログインでも走ります(本人がログインしたときと同じ計算)
完了メールの一文 本文の先頭に入ります。店が直した文面の途中には差し込みません(目印が消えるため)
有効化・無効化のあと キャッシュを作り直してください。ログインリンクの設定はコンテナを組み立てるときに決まります

できないこと

項目 内容
管理画面の受注登録を代理にする しません。受注登録は店が直接作る画面のままです(購入フローの決まりを通らないため、代理には使いません)
会員のパスワードを知る・変える できません。代理はパスワードを通らず、代理中はパスワードの変更と再設定を塞ぎます

止める操作を足す

代理中に止めたい画面が他にあるときは、ルート名を返す実装を1つ置きます。 塞ぐ側と、マイページのリンクを消す側は同じ一覧を見るので、足したものは両方に効きます。

#[AutoconfigureTag(ForbiddenRouteProviderInterface::TAG)]
class MyForbiddenRoutes implements ForbiddenRouteProviderInterface
{
    public function forbiddenRoutes(): array
    {
        return ['my_mypage_credit_limit'];
    }
}

足せるのは塞ぐ側だけです。外す口は用意していません。会社の統制のために塞いでいる画面を、 あとから入れたプラグインが黙って開けられる形にしないためです。 docs/extension-samples.md にそのまま使える例が付いています。

動作要件

項目 内容
EC-CUBE 4.4 系
PHP 8.2 / 8.3
必須プラグイン 営業担当者(ec-cube/b2bsalesrep)4.4.0 以上が有効であること
任意 取引先アカウント管理(取引先の担当営業を引き継いだ担当者も代理できます)

営業担当者プラグインは、このプラグインが有効なあいだは無効にできません。 誰の担当かはあちらが決めているためです。

差し替えられるところ

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

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

インターフェースできること
ForbiddenRouteProviderInterface代理中に塞ぐ画面を足す(自分で足したマイページの画面も、帯のリンクごと消える)

入手する

オーナーズストアで購入

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

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

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

導入を任せる

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

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

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