何のためのプラグインか
消耗品や補充品は、毎回おなじものを、おなじ量だけ頼みます。そのたびに商品を探して カートに入れるのは、頼むほうにも受けるほうにも意味のない手間です。
同じ形の要求が、機械・工業用品、商社、医療・福祉、OA機器の4業種から挙がっています (自動発注、在庫受給予測のアラート、定期発注、消耗品の定期購入)。

主な機能
| 機能 | 内容 |
|---|---|
| ひな型の登録 | カートの内容を「毎月の消耗品」のように名前を付けて残します |
| 周期 | 日・週・月ごと。「2か月ごと」のように間隔も決められます |
| 期日のお知らせ | 期日が来たら会員へメールで知らせます(cron から回します) |
| 発注 | お知らせのリンクから、その内容でカートを作って注文します |
| 今回はとばす | 1回分を飛ばして次の期日へ送ります |
| 停止と再開 | 消さずに止められます |

注文は自動で立てません
知らせるところまでが仕事です。 発注するかどうかは会員が決めます。
決済を自動で走らせるには、支払方法と与信の扱いを決めておく必要があります。そこを 決めないまま自動で注文を立てると、要らない月の請求が飛びます。掛売りで回すなら 月締め請求管理の与信限度額と組み合わせるところから始めてください。
周期の数え方
日数で持ちません。 「毎月」を30日として扱うと、月末に頼んでいる取引先の発注日が 少しずつ前へずれていきます。半年で5日ずれます。月は月として数えます。
月末を守ります。 1月31日に「毎月」で頼んでいるとき、素直に足すと2月31日になり、 PHP は3月3日として扱います。そこから先はずっと3日で回り、月末の発注が月初になります。 月の日数に収まらない日は月末へ寄せます。
期日の進め方
起点は予定日そのものです。ただし予定日が過ぎていたら今日にします。
| 場面 | 起点 | なぜ |
|---|---|---|
| 予定どおり発注した | 予定日 | 月末の発注を月末のまま保つため。今日を起点にすると、2月28日に発注した時点で28日へ固定されます |
| 期日を過ぎてから再開した | 今日 | 過ぎた期日を追いかけません。追いかけると、たまった通知がまとめて飛びます |
| 期日が来る前に再開した | 動かしません | 会員が決めた日を、止めた回数だけ先送りしないためです |
進めるのは注文ができてからです。 カートに入れた時点で進めると、そこで買うのを やめた月の発注が飛びます。取引先は届くつもりで待っているので、気づくのは在庫が 切れたときになります。
お知らせの回し方
1日1回、cron から回します。
0 9 * * * bin/console plugin:order-recurring:notify
1日に何度回しても、取引先には1通しか届きません。 送った日を控えているので、
時間をずらして2回仕掛けても重なりません。--dry-run で対象だけを確認できます。
送れたときだけ控えます。 控えてから送ると、送れなかった月のお知らせが二度と 出ません。
絞り込みと未対応の件数
定期発注の一覧は、会員(お名前/会社名/メールアドレス)・名称・次回日の期間・周期で 絞り込めます。条件はページを送っても残ります。次回日の期間は「今週送るぶん」を見るのに 使えます。
管理画面のホームに未対応の件数が出ます。 「定期発注(期日が来ている)」の行が出ていたら、押せばその一覧に 入れます。0 件のときは行ごと出しません。 常に「0」が並ぶと目が慣れて見なくなるためです。

未対応の件数はホームにまとまって出ます。0 件のものは行ごと出しません。
知っておいてほしい仕様
| 項目 | 内容 |
|---|---|
| 管理画面は一覧だけで、直せません | ひな型は会員が決めたものです。店が数量や周期を書き換えると、次に会員が見たときに知らないものが入っていることになります |
| 明細は型番も控えます | 商品規格への参照が消えても、何を頼んでいたのかは残ります |
| お知らせのメールが要ります | cron が回せない環境では、期日が来ても誰にも伝わりません |
動作要件
| 項目 | 内容 |
|---|---|
| EC-CUBE | 4.4 系 |
| PHP | 8.2 / 8.3 |
| データベース | MySQL 8 / PostgreSQL 13 以上 |
| 依存プラグイン | なし |
| その他 | お知らせを回すなら cron が必要です |
差し替えられるところ
主要な処理はインターフェースとして切ってあります。実装を差し替えれば動きが変わります。 自社の商習慣に合わない部分があれば、まず差し替えで済むかを確かめてください。
AI に書かせられます。このプラグインには CLAUDE.md と docs/extension-samples.md が 同梱されていて、差し替え口ごとにそのまま使えるサンプルが載っています。 やりたいことを日本語で伝えれば、AI コーディングツールが実装を書きます (くわしく)。
| インターフェース | できること |
|---|---|
NextDateRuleInterface | 期日を店の都合に寄せる(土日を外す、毎月20日に寄せる、など) |
RecipientProviderInterface | お知らせの宛先を足す(担当者と経理の両方へ送る、など) |
入手する
オーナーズストアで購入
買い切りです。月額はかかりません。予定価格 税抜 50,000 円。
予定価格です。オーナーズストアでの販売開始時に変わる場合があります。
この条件で回るか、確かめてから決めてください
締め日、支払サイト、請求書の様式、会計ソフトへの受け渡し。合うかどうかは商習慣によって変わります。やりたいことを書いて送ってください。