EC-CUBE 4.2 / 4.3 対応 公式マニュアル

配送日時指定プロプラグイン

配送希望日・時間帯の空き枠をリアルタイムに集計・可視化!1日・時間枠ごとの上限管理(満枠制御)、当日出荷締め切り時間、出荷休業日・日本の祝日自動除外、複数お届け先完全対応、高負荷アトミック制御により、出荷現場のパンクを防ぎながら顧客満足度を大幅に向上させる配送最適化ソリューションです。

1. プラグイン概要と開発背景

EC-CUBE標準の配送日時指定は、静的なプルダウンによる選択のみが提供されており、「1日に発送可能な上限件数」や「時間帯別の出荷可能上限数」を制御する仕組みが存在しませんでした。

そのため、繁忙期やセール時に特定の日・時間帯に注文が集中し、倉庫や出荷現場がパンクしてしまうという課題が多くのEC事業者様で発生していました。

💡 本プラグインで解決できる課題
  • 出荷能力のオーバーフロー防止: 時間帯枠ごとに「1日20件まで」等の上限を設定し、上限に達した枠は自動で「満枠(選択不可)」に制御。
  • 当日締め切り時間の厳格運用: 「正午12:00を過ぎた注文は翌営業日出荷」といった運用ルールを自動適用。
  • 日本の祝日・独自休業日の自動除外: 内閣府祝日APIとのワンクリック同期および定期実行により、休業日の誤指定を防止。
  • スマホに最適化されたカード表示: 従来の長いプルダウンを廃止し、横スクロール対応の日付ピルと直感的な時間帯カードで離脱率を低減。

2. 主な特徴・機能一覧

📅
リアルタイム空き状況判定
注文手続き画面でリアルタイムに既存注文数を集計。「◎ 空きあり」「△ 残り○枠」「× 満枠」「受付終了」をグラフィカルに即時判定。
⏰
当日締め切り&リードタイム
当日出荷締め切り時間(例: 12:00)を過ぎた注文は、最短お届け日を自動的に翌営業日以降へと安全にシフトさせます。
🎌
日本の祝日・休業日自動同期
内閣府公式の国民の祝日データと自動連携。ショップ独自の棚卸日・夏期休暇などの出荷休業日も柔軟にブロック設定可能。
📦
複数お届け先(複数配送)対応
お中元やお歳暮など、1回の注文で複数のお届け先が指定された場合でも、配送先ごとに独立したウィジェットで個別指定可能。
🔄
画面遷移時の完全状態保持
注文確認画面へ進んだ後に「手続きに戻る」を押下しても、選択した日付と時間帯カードが確実に復元・保持されます。
⚡
マルチデータベース対応
データベースごとの競合制御により、セール集中時でも処理の中断や上限超過予約を安全に防ぎます。

3. 動作環境・互換性

項目対応バージョン・要件備考
EC-CUBE本体4.2.0 〜 4.3.x4.2系および最新の4.3系で動作検証済み
PHP8.1 / 8.2 / 8.3 (7.4 / 8.0 互換)PHP 8系の厳格な型定義・パフォーマンスに最適化

4. 管理画面の設定詳細

プラグインを有効化すると、EC-CUBE管理画面のナビゲーションに「受注管理 > 配送日時枠管理」が追加されます。

4.1 基本設定(リード日数・当日締め切り・祝日同期)

ショップ全体の配送日時指定に関するコアルールを設定します。

設定項目区分説明・動作仕様
プラグイン有効化必須本機能を稼働させる場合は「有効」を選択します。
最短リード日数必須注文日から配送可能日までの最低日数(例: 2)。配送方法設定の「配送日数」と自動合算されて最短希望日が算出されます。
選択可能日数必須最短お届け日から何日間先まで購入者が選択できるかを設定します(例: 14 日間)。
当日出荷締め切り時間任意「12:00」のように指定します。この時刻を過ぎた後の注文は、自動的に出荷日が翌営業日扱いとなり、選択可能カレンダーが1日後ろ倒しされます。
日本の祝日を自動除外推奨チェックを入れると、登録されている日本の祝日が出荷休業日としてカレンダー判定から自動除外されます。
日本の祝日データを同期ボタン-内閣府公式祝日APIおよび内蔵データから最新の祝日データをワンクリックで一括取得・同期します。

4.2 時間帯枠設定・上限件数設定(上限管理)

各配送方法に紐づく「お届け時間帯(午前中、14-16時など)」ごとに、1日あたりの受付可能上限数を設定できます。

項目説明
有効フラグ時間帯枠の受付を有効にするかどうかを設定します。
1日あたりの受付上限件数例: 20 件。該当日のこの時間帯に対する注文数がこの数値に達すると、購入画面で自動的に「× 満枠」と表示され選択不可となります。
時間帯開始・終了時刻「09:00 〜 12:00」等の時刻。当日締め切り判定に活用されます。
開始前締め切り時間配送時間帯が開始する何時間前に受付を締め切るかを時間単位で指定します(例: 1 時間前)。

4.3 出荷休業日・除外日設定

店舗の棚卸日、ゴールデンウィーク、夏期休業、年末年始など、出荷作業を行わない日を登録できます。

  • 全配送方法共通の休業日: すべての配送業者共通で配送日カレンダーから除外されます。
  • 特定の配送業者のみの休業日: 「ヤマト運輸のみ休業」「佐川急便のみ休業」といった個別設定も可能です。
  • 理由メモ: 「棚卸しのため」「夏季休業」などのメモを管理画面上で管理できます。

5. 注文手続き画面の表示仕様

注文手続き画面(/shopping)のお届け日・お届け時間指定エリアが、直感的で見やすいカードデザインへ自動拡張されます。

画面表示イメージ
指定なし
最短お届け
10/05 (月)
残りわずか
10/06 (火)
空きあり
10/10 (土)
満枠
午前中 (8-12時)
◎ 空きあり
14:00 - 16:00
△ 残り2枠
18:00 - 20:00
× 満枠
ステータス表示の判定基準
ステータス表示判定条件選択可否
◎ 空きあり残り枠数が4枠以上ある場合○ 選択可能
△ 残り○枠残り枠数が3枠以下の場合(残数がリアルタイム表示)○ 選択可能
× 満枠予約枠数が上限設定に達した場合× 選択不可(カードが無効化)
受付終了当日締め切り時刻または枠の開始前締め切り時刻を過ぎた場合× 選択不可(カードが無効化)

6. 複数お届け先(複数配送)への完全対応

お中元、お歳暮、内祝いなどのギフト需要において、購入者が1回の注文で複数のお届け先を指定する「複数のお届け先を指定する(複数配送機能)」にも完全対応しています。

📍
お届け先 1(ご実家様など)
独立した配送枠ウィジェット(#ec-dts-0)を展開 ➔ 10月10日 午前中 を指定
📍
お届け先 2(ご友人様など)
独立した配送枠ウィジェット(#ec-dts-1)を展開 ➔ 最短お届け(指定なし)を選択
安心の完全カプセル化設計
各お届け先コンテナには固有のデータインデックス(loop.index0)が自動付与され、JavaScript側の状態管理も完全に分離されているため、他の配送先の選択肢に影響を与えることは一切ありません。

7. 画面遷移と確認画面の表示保持

注文フローにおいて、購入者が確認画面(/shopping/confirm)に進んだ後、入力内容を変更するために「ご注文手続きに戻る」ボタンで手続き画面(/shopping)に戻った場合でも、選択済みの「配送希望日」および「お届け時間帯」が確実に復元されます。

A
サーバー側での確実なデータ復元

注文エンティティに保持された保存済み配送日(shipping_delivery_date)および時間帯(delivery_time)をサーバーサイドで検知し、フォーム初期値へ確実に再バインドします。

B
選択状態の自動反映

Twigテンプレートから data-saved-date および data-saved-time-id をDOMコンテナへ伝達。画面初期化時に、該当する日付ピルおよび時間帯カードへ選択状態を即座に自動復元します。

8. コマンドライン&自動同期設定

本プラグインには、保守運用や自動化のためのコンソールコマンドが内蔵されています。

1. 祝日データの自動同期コマンド(定期実行推奨)

内閣府公式の最新祝日CSVを取得し、データベースを常に最新の祝日情報に更新します。週1回程度の定期実行を推奨します。

# コマンドの単体実行
bin/console eccube:delivery-slot:sync-holidays

# 定期実行設定例(毎週月曜日 午前3時に自動実行)
0 3 * * 1 cd /path/to/eccube && bin/console eccube:delivery-slot:sync-holidays > /dev/null 2>&1
2. 検証・デモ用サンプルデータの自動生成コマンド

開発環境やステージング環境で動作検証を行うため、架空の予約枠データを自動生成できます。

# サンプルデータの生成
bin/console eccube:delivery-slot:generate-dummy-data

# 既存の予約枠データを初期化して再生成する場合
bin/console eccube:delivery-slot:generate-dummy-data --clear

9. よくある質問

Q. 既存のEC-CUBE配送設定とどのように連携しますか? ▼
A. 管理画面の「基本情報設定 > 配送方法設定」で登録されている各配送業者の「お届け時間帯」マスタと自動連携します。プラグインをインストールすると、既存の時間帯マスタをもとに自動でスロット設定が初期構築されます。
Q. 受注をキャンセルした場合、予約枠は自動で戻りますか? ▼
A. はい。注文キャンセル時のイベントリスナーにより、該当の配送希望日・時間帯の予約カウントが自動的に1件分減算(枠開放)されます。
Q. 特定の商品のみ配送日時指定を不可にすることはできますか? ▼
A. EC-CUBE標準仕様に基づき、配送方法設定側でお届け時間帯が設定されていない配送方法(メール便やネコポスなど)を選択した場合は、自動的に日時指定ウィジェットが非表示となります。
Q. カスタムデザインのテーマを導入している場合でも動作しますか? ▼
A. はい。CSSは標準フレームワークを邪魔しない独立したプレフィックス(.ec-dts-*)で設計されており、JavaScriptも外部アセットとして非干渉で読み込まれるため、独自デザインのテーマでも高い互換性を誇ります。