プラグイン一覧 / 配送方法管理
配送方法管理プラグイン
会員グループごとに、購入手続きで選べる配送方法を出し分けます。卸売の取引先にだけ専用便を出す、といった使い方ができます。
会員グループ管理プラグインのアドオンです。先にそちらを入れてください。
取引先アカウント管理は必須ではありません。入れている場合だけ機能が増えます。
何のためのプラグインか
配送方法は、誰にでも同じものが並びます。そのままだと次のことができません。
- 卸売の取引先にだけチャーター便を出す
- 一般客には見せずに、法人だけが選べる路線便を用意する
- 一般客向けの宅配便を、卸売の画面からは消す
このプラグインは配送方法に「利用できる会員グループ」を持たせます。購入手続きの 配送方法の欄が、ログインしている人によって変わります。
割り当てが無い配送方法は、これまでどおり全員が選べます。 既存の設定に手を入れずに、 限定の配送方法だけを足していけます。
選べるかどうかの決まり方
| 配送方法の割り当て | 会員 | 非会員(ゲスト購入) |
|---|---|---|
| グループを割り当てていない | 選べる | 選べる |
| 割り当てたグループのどれかに属している | 選べる | — |
| 割り当てたグループのどれにも属していない | 選べない | — |
| グループを割り当てている | — | 選べない |
要点は3つです。
- 割り当てが無いものは制限なし。 全員が選べます
- 複数割り当てたときは OR。 どれかに属していれば選べます
- グループを割り当てた配送方法は会員限定になります。 非会員はどのグループにも属せないためです。会員グループの「未ログインユーザーは商品を表示」は商品の見え方を決める設定で、配送方法には効きません
例
| 配送方法 | 割り当てたグループ |
|---|---|
| 宅配便 | (なし) |
| 卸売便 | 卸売 |
一般の会員は宅配便だけ、卸売の会員は宅配便と卸売便、非会員は宅配便だけになります。
画面
配送方法に会員グループを割り当てる
配送方法の編集画面に「利用可能な会員グループ」が増えます。何も選ばなければ制限なしです。 設定するのは配送方法の側だけです。

購入手続きでの見え方
その会員が選べる配送方法だけが並びます。テンプレートの編集は要りません。

会員グループの側からは絞れません
支払い方法管理には「このグループが使える支払い方法」が ありますが、配送方法にはありません。向きが1つしかないのは、手抜きではなく事故を 避けるためです。
配送方法は販売種別ごとに1つに紐づいていて、購入手続きに出るのはカートの商品の販売種別に 合うものだけです。そこへ会員グループ側の許可リストを重ねると、扱う販売種別ごとに 最低1つ許可し続けないと、その会員は買えなくなります。 販売種別や配送方法を増やした ときに黙って壊れます。
支払い方法は販売種別で分かれていないので、同じ問題が起きません。だから向きが2つあります。
会員グループを絞りたいときは、使わせたい配送方法の「利用可能な会員グループ」でその グループを選んでください。
表示を絞るだけでは守れません
絞り込みは画面と購入フローの2段階です。画面に出ていない配送方法を直接送信しても、 購入フローで選べるものの先頭へ差し替わるため、受注には残りません。
割り当てだけで足りないとき
割り当ては会員の属性しか見ません。「北海道・沖縄の届け先には自社便を出さない」 「点数の多いお届け先にはメール便を出さない」は届け先や荷物の中身で決まるので、 割り当てでは書けません。このときは判定を足します。
class OwnFleetAreaLimit implements DeliveryPermissionInterface
{
public function isAllowed(Delivery $Delivery, ?Customer $Customer, ?Shipping $Shipping): bool
{
// 自社便以外と、お届け先が分からない経路には関与しない
if (3 !== $Delivery->getId() || null === $Shipping?->getPref()) {
return true;
}
// 1: 北海道 / 47: 沖縄県
return !in_array((int) $Shipping->getPref()->getId(), [1, 47], true);
}
}
お届け先ごとに判定するので、複数配送では北海道の届け先からだけ自社便が消えます。 足した判定はすべて呼ばれ、1つでも「出さない」と答えたら選べません。 購入手続きの 選択肢と購入フローの検査は同じ判定を通るので、画面に出ていない配送方法を直接送信しても 通りません。
絞る方向にだけ働きます。 true を返しても、割り当てで落ちた配送方法は戻りません。
緩められると「チャーター便は特定の会社だけ」という設定を拡張で骨抜きにでき、設定した店が
気づけないためです。
絞りすぎるとその会員は買えなくなります。 選べる配送方法が 0 本になると購入フローが エラーにするので、購入手続きから先へ進めません。意図した制限でも書き間違いでも見え方は 同じです。条件は「この配送方法を出さない」と狭く書き、扱う販売種別ごとに受け皿になる 配送方法を1つ残してください。入れたら、条件に当たる会員で購入手続きを1周して確かめます。
外したときの挙動
配送方法・会員グループのどちらを消しても、割り当ての行は自動で消えます。 受注済みのデータには影響しません。 受注は配送方法を直接参照していて、 このプラグインの割り当てを経由しないためです。
会員グループが削除できなくなったら
他のプラグインを入れたときにスキーマが再構築され、外部キーの設定が既定に戻ることが あります。この状態だと、割り当て済みの会員グループを削除できません。
このプラグインを無効化して、もう一度有効化してください。 有効化のときに外部キーを
張り直します。doctrine:schema:update では直りません。
できないこと
| 項目 | 内容 |
|---|---|
| 全部に割り当てると詰みます | すべての配送方法にグループを割り当て、そのどれにも属さない会員がいると、購入手続きでエラーになります。受け皿になる配送方法を1つ残してください |
| 出し分けられるのは配送方法だけ | 配送料や配送日時をグループごとに変えることはできません |
| 非会員に個別の許可は出せません | グループを割り当てた配送方法は非会員から必ず見えなくなります。「これだけは非会員にも許す」という指定はできません |
| 複数グループは OR だけ | 「すべてのグループに属している場合だけ許可」はできません |
| 会員グループ側からは指定できません | 「このグループはこの配送方法だけ」は用意していません。理由は上の節に書いてあります |
| 判定を足しても緩められません | 差し替え口は絞る方向だけです。「この会員だけ例外的に許す」は割り当ての側(配送方法編集の「利用可能な会員グループ」)で設定してください |
| 管理画面からの受注登録・編集には効きません | 判定が効くのは購入手続きと購入フローだけです。運営者が意図して選ぶ場面なので止めていません |
動作要件
| 項目 | 内容 |
|---|---|
| EC-CUBE | 4.4 系 |
| PHP | 8.2 / 8.3 |
| 必須プラグイン | 会員グループ管理(ec-cube/customergroup44)が有効であること |
取引先アカウント管理を入れている場合、担当者は取引先の 会員グループを引き継ぐので、会社で決めた配送方法が担当者全員に効きます。
差し替えられるところ
主要な処理はインターフェースとして切ってあります。実装を差し替えれば動きが変わります。 自社の商習慣に合わない部分があれば、まず差し替えで済むかを確かめてください。
AI に書かせられます。このプラグインには CLAUDE.md と docs/extension-samples.md が 同梱されていて、差し替え口ごとにそのまま使えるサンプルが載っています。 やりたいことを日本語で伝えれば、AI コーディングツールが実装を書きます (くわしく)。
| インターフェース | できること |
|---|---|
DeliveryPermissionInterface | 届け先や荷物の中身で配送方法を絞る(北海道・沖縄には自社便を出さない、点数の多い届け先にはメール便を出さない、など) |
入手する
オーナーズストアで購入
買い切りです。月額はかかりません。予定価格 税抜 50,000 円。
予定価格です。オーナーズストアでの販売開始時に変わる場合があります。
この条件で回るか、確かめてから決めてください
締め日、支払サイト、請求書の様式、会計ソフトへの受け渡し。合うかどうかは商習慣によって変わります。やりたいことを書いて送ってください。