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

プラグイン一覧 / 購入資格

購入資格プラグイン

店が確認して承認した資格を持つ会員にだけ売ります。医療機器・医薬品のように、法令で売り先が決まっている商品向けです。

単体で動きます。他のプラグインは要りません。

何のためのプラグインか

医療機器・医薬品・農薬・危険物のように、法令で売り先が決まっている商品があります。 売ってはいけない相手に売ると、罰則がかかるのは店です。

EC-CUBE には「この商品はこの資格を持つ会員にだけ」という仕組みがありません。会員登録の 備考欄に免許番号を書かせても、それは自己申告で、確かめる場所がありません。

このプラグインは、会員に資格を届け出てもらい、店が確認して承認した会員だけが買える ようにします。

買えないとき

主な機能

機能 内容
資格の登録 医師免許・薬剤師免許・販売業許可など、店が自由に作れます
商品への割り当て 商品ごとに必要な資格を選びます。どれか1つ持っていればよい(OR)
会員の届け出 マイページから番号と有効期限を届け出ます
店の確認 承認・却下。何度でも行き来できます
購入の制限 資格が無ければカートにも購入手続きにも入れません
ボタンを出さない場所 商品ページと商品一覧。押させてから断りません
有効期限 期限を過ぎると、承認済みでも買えなくなります

出す場所を変える

資格の案内は、既定では商品ページに自動で出ます。設定は要りません。

場所を決めたいときは、テーマのテンプレート (app/template/<テーマ>/Product/detail.twig)に書いてください。

{{ plg_pq() }}

置いた場所にそのまま出て、書いたら自動表示は降ります(二重に出ません)。 テーマを触らない店はこれまでどおりです。

資格は店が作ります

何を資格と呼ぶかは業種で違います。医療機器の販売業許可を求める店もあれば、取引先の 与信区分を資格として扱う店もあります。

資格設定

項目 内容
名前 商品ページと届け出のフォームに出ます
会員への案内 「免許証の番号をご記入ください」など
番号の記入 必須にすると、番号が空の届け出を受け付けません
有効期限 必須にできます。期限を過ぎると買えなくなります
並び順 選択肢の順番です

使っている商品があるうちは消せません。 消すと会員の届け出も一緒に消えます。

判定は OR です

商品には資格を複数割り当てられます。そのうちどれか1つを持っていれば買えます。 「医師または歯科医師」のように売る商品が現場では多いためです。すべて必要にすると、 医師にも歯科医師にも売れなくなります。

1つも選ばなければ誰でも買えます。

会員が届け出て、店が確認する

マイページの購入資格

値 状態 意味
1 確認待ち 会員が届け出た。店の確認待ち
2 確認済み 店が確認した。対象の商品を買える
3 確認できず 却下

承認と却下は何度でも行き来できます。 免許は取り消されることがあります。一度承認したら 変えられない作りにすると、資格を失った会員に売り続けてしまいます。

届け出の詳細

買えるかどうかの決まり方

資格が要らない商品            → 誰でも買える
資格が要る商品 × 非会員        → 買えない
資格が要る商品 × 会員          → 承認済みで期限内の資格を1つ以上持っていれば買える

承認済みで、かつ期限内。 どちらか片方では足りません。期限の日は含めます。 「2026-03-31 まで有効」は、その日いっぱい有効です。

非会員には売りません。 誰に売ったかを残せないためです。

画面でボタンを隠すだけでは足りません

カートに入れる POST は直接投げられます。止めているのは購入フローの側で、カートと 購入手続きの両方に入れています。カートを通らずに購入手続きへ入る経路があるので、 カートだけでは足りません。

明細単位の検証にはしていません。あれは警告を出すだけで購入を止めません。

止まったときは、買えない商品の名前を出します。 「買えません」だけだと、カートに 10点入っている会員はどれを外せばよいのか分かりません。

判定は1か所にだけ書いています。画面と購入フローで別々に書くと、片方だけ通る穴ができます。 法令で売り先が決まっている商品なので、穴は事故になります。

商品一覧でもボタンを引っ込めます

以前は商品ページにしか出していませんでした。一覧からは押せてしまい、「押させてから 断る」形になっていました。購入フローが止めるので買えてしまうことはありませんが、 なぜ買えないのかが一覧では分かりません。

一覧は1ページに何件も並ぶので、印はページ全体ではなくカードごとに付けています。

ほかのプラグインへの合図

カートへ入れる入口を出すのは、このプラグインだけではありません (規格一括入力の表など)。買えない相手には <html> に印を立てるので、そちらも自分で引っ込めます。

絞り込みと未対応の件数

資格の届け出の一覧は、会員(お名前/会社名/メールアドレス)・資格・番号・状態で 絞り込めます。条件はページを送っても残ります。初期表示は「確認待ち」だけです。

管理画面のホームに未対応の件数が出ます。 「資格の届け出(確認待ち)」の行が出ていたら、押せばその一覧に 入れます。0 件のときは行ごと出しません。 常に「0」が並ぶと目が慣れて見なくなるためです。

管理画面ホームの未対応

未対応の件数はホームにまとまって出ます。0 件のものは行ごと出しません。

知っておいてほしい仕様

項目 内容
数量の制限は持ちません 「1回1個まで」は本体の商品規格「販売制限数」で設定できます。同じことを2か所で設定できると、どちらが効いているのか分からなくなります
資格そのものの判定は差し替えられません 拡張で緩められると、この仕組みの意味が無くなります。拡張は絞る方向にのみ働きます
他人の届け出は見えません 免許番号は個人を特定できます。id を受け取る経路は必ず会員で絞ります
会員が取り下げられるのは確認待ちのものだけ 承認済みを消せると、買えた履歴と資格の記録が食い違います

動作要件

項目 内容
EC-CUBE 4.4 系
PHP 8.2 / 8.3
データベース MySQL 8 / PostgreSQL 13 以上
依存プラグイン なし

有効化するとマイページに「購入資格」が増え、管理画面に「購入資格」が並びます。資格は 最初は空なので、「資格設定」から登録してください。

差し替えられるところ

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

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

インターフェースできること
PurchasePermissionInterface資格のほかにも売り先を絞る(同じ都道府県の届出がある会員だけ、取引基本契約を結んだ会員だけ)。**絞る方向にしか働きません**

入手する

オーナーズストアで購入

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

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

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

導入を任せる

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

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

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