EC-CUBE 4.2 / 4.3 対応

Slack 注文通知プラグイン

SlackAdminOrderNotify — 新規注文・ステータス変更・お問い合わせ・在庫アラートを Slack へリアルタイム通知!Block Kit UI とマルチチャンネル振り分けに対応した管理者支援プラグイン

プラグインコード: SlackAdminOrderNotify

1プラグイン概要

Slack 注文通知プラグイン(SlackAdminOrderNotify)は、EC-CUBE 4.3 で発生する各種イベント(新規注文、注文ステータス変更、お問い合わせ、商品お問い合わせ、新規会員登録、在庫不足)を検知し、 Slack Incoming Webhook を通じて管理者の Slack チャンネルへリアルタイム通知する高機能通知拡張プラグインです。

通知メッセージは直感的な **Slack Block Kit UI** で装飾され、注文金額・ステータス別の動的カラーバーや、EC-CUBE管理画面の該当データページへ直接ジャンプできる **「管理画面で確認する」アクションボタン** を自動挿入します。

主な機能ハイライト

リアルタイム注文通知
注文確定時に顧客名、購入商品リスト、合計金額、決済方法を Slack へ即座に送信。
マルチチャンネル振り分け
Sales(販売)、Support(サポート)、Inventory(在庫)、Tech(技術)の各 Slack チャンネルへ自動振り分け。
在庫不足アラート
商品の在庫数が設定したしきい値(デフォルト: 5個)以下になった場合に自動で警告通知。
日次売上レポート
CLI コマンドおよび Cron 実行に対応。毎日の売上合計・客単価・ベストセラー Top 5 を集計して Slack へ送信。
Live Preview & テンプレート
管理画面上でプレースホルダー変数ボタンを使ってテンプレートをカスタマイズ&リアルタイムプレビュー確認。
セキュリティ強化
Webhook URL の Secret Token マスク保護、Strict CSRF 検証、同一注文の二重送信防止機能を標準装備。

2動作環境

項目要件 / 仕様
EC-CUBE 対応バージョンEC-CUBE 4.2.x 〜 4.3.x
PHP バージョンPHP 8.1 / 8.2 / 8.3
必須 PHP 拡張curl(Slack API / Webhook 通信用), json, mbstring
外部サービスSlack ワークスペース & Incoming Webhook アプリ(無料版 Slack でも利用可能)

3インストール・有効化

サーバー上の EC-CUBE ルートディレクトリにて、以下のコンソールコマンドを実行してプラグインをインストール・有効化します。

# 1. プラグインのインストール
php bin/console eccube:plugin:install --code=SlackAdminOrderNotify

# 2. プラグインの有効化
php bin/console eccube:plugin:enable --code=SlackAdminOrderNotify

# 3. キャッシュクリア
php bin/console cache:clear
💡
提示: 管理画面の「オーナーズストア > プラグイン > プラグイン一覧」からも無効化・有効化の設定が可能です。

4Slack Webhook の初期設定

Slack に通知を送るためには、事前に Slack 側で **Incoming Webhook URL** を発行する必要があります。以下の3ステップで簡単に作成できます。

Step 1: Slack App の作成

  1. ブラウザで Slack API アプリ管理ページ にアクセスし、ログインします。
  2. 「Create New App」 ボタンをクリックし、「From scratch」 を選択します。
  3. App Name に例: EC-CUBE Order Notifier と入力し、通知を受け取りたいワークスペースを選択して 「Create App」 をクリックします。

Step 2: Incoming Webhook の有効化 & URL 発行

  1. 左側メニューの 「Incoming Webhooks」 を選択し、スイッチを 「ON」 にします。
  2. ページ下部の 「Add New Webhook to Workspace」 ボタンをクリックします。
  3. 通知を投稿したい Slack チャンネル(例: #orders または #general)を選択し、「許可 (Allow)」 をクリックします。
  4. 発行された **Webhook URL**(例: https://hooks.slack.com/services/T00000000/B00000000/XXXXXX...)をコピーします。
⚠️
重要: Webhook URL はパスワードと同様の秘密情報です。URL を知っている全員が Slack チャンネルへメッセージを投稿できるため、外部に漏洩しないよう厳重に管理してください。

5管理画面の設定 & マルチチャンネル

EC-CUBE 管理画面メニュー 「オーナーズストア > プラグイン > プラグイン一覧」 から 「Slack 注文通知プラグイン」 の設定画面を開きます。

基本設定項目

項目名説明デフォルト / 必須
通知を有効化チェックを入れると各種イベント発生時に Slack 通知を自動送信します。ON (有効)
メッセージタイトル通知メッセージの冒頭に付与するプレフィックス(例: [Shop ABC])。店舗識別に使用できます。空欄 (任意)
ステータス変更通知注文ステータスが「対応中」「発送済み」「キャンセル」等へ変更された際に Slack へ通知します。ON (有効)

マルチチャンネル Webhook 振り分け

通知の種類ごとに異なる Slack チャンネルへメッセージを振り分けることができます。個別の URL を空欄にした場合は、自動的に「デフォルト Webhook URL」へ送信されます。

Webhook 項目通知されるイベント推奨チャンネル
デフォルト Webhook URL 必須標準の通知先。他の個別 URL が未設定のイベントはすべてここに送信されます。#all-notifications
販売チャネル (Sales)新規注文 (New Order) および 注文ステータス変更 (Status Change)。#sales-orders
サポートチャネル (Support)新規お問い合わせ (Inquiry) および 商品個別お問い合わせ (Product Inquiry)。#customer-support
在庫チャネル (Inventory)商品在庫数が指定したしきい値以下になった場合の在庫不足アラート。#inventory-alerts
技術チャネル (Tech/Dev)Slack 送信失敗・システム警告アラートなどのエラー通知。#system-dev-alerts
在庫アラートのしきい値注文確定時に商品の残り在庫数がこの値以下になると在庫アラートを発動します。デフォルト: 5

接続テスト & Webhook 検証

設定画面下部にあるテストボタンを使用して、設定内容が正しく動作するか確認できます。

  • Webhook を検証: 設定された Webhook URL に対して接続テストを行い、応答ステータスを確認します。
  • テストメッセージを送信: Slack チャンネルへサンプル通知メッセージを送信します。

6メッセージテンプレート & プレビュー

プラグイン設定画面では、5種類の通知イベントごとの本文テンプレートを自由に編集できます。ボタンをクリックするだけで、カーソル位置にプレースホルダー変数が自動挿入されます。

利用可能なプレースホルダー変数一覧

テンプレート種別利用可能なプレースホルダー変数
新規注文{{order_id}} (注文番号), {{customer_name}} (顧客名), {{email}}, {{tel}}, {{total_price}} (支払合計金額), {{payment_method}} (決済方法), {{date}} (日時), {{items_list}} (購入商品一覧), {{admin_url}} (管理画面直通URL)
注文ステータス変更{{order_id}}, {{customer_name}}, {{old_status}} (変更前ステータス), {{new_status}} (変更後ステータス), {{date}}, {{admin_url}}
新規お問い合わせ{{customer_name}}, {{email}}, {{tel}}, {{inquiry_body}} (お問い合わせ内容), {{date}}
商品お問い合わせ{{product_name}} (商品名), {{customer_name}}, {{inquiry_body}}, {{date}}, {{admin_url}}
新規会員登録{{customer_name}}, {{email}}, {{date}}, {{admin_url}}

Live Preview (リアルタイムプレビュー) 機能

各テンプレートの直下にある **「👁️ Live Preview (プレビュー表示)」** ボタンをクリックすると、モーダルウィンドウが開き、実際の Slack Block Kit UI でどのように表示されるかを即座に確認できます。保存前にレイアウト崩れを防ぐことができます。

7日次売上レポート CLI コマンド

本プラグインには、1日の受注データ(注文数、売上合計金額、客単価 AOV、Top 5 ベストセラー商品)を集計し、Slack へ自動報告するコンソールコマンドが搭載されています。

コマンドの実行方法

# 本日の売上レポートを Slack に送信
php bin/console slack:daily-sales-report

# 特定の日付を指定して集計 (YYYY-MM-DD)
php bin/console slack:daily-sales-report --date=2026-08-10

# ドライランモード(Slack 送信を行わず、コンソール上で出力内容のみ確認)
php bin/console slack:daily-sales-report --dry-run

Cron (定期自動実行) の設定例

毎晩 23:59 に自動的にその日の売上レポートを Slack へ投稿したい場合は、サーバーの crontab に以下のように登録します。

# crontab -e で以下を追加
59 23 * * * /usr/bin/php /path/to/eccube/bin/console slack:daily-sales-report > /dev/null 2>&1

8セキュリティ & クリーンアップ

1. Webhook URL マスク保護

管理画面のテキストエリアには、Webhook URL の Token 部分が自動的に ***XXXX とマスク表示されます(例: https://hooks.slack.com/services/T00/B00/***XXXX)。 これにより、画面共有時やスクリーンショット撮影時の情報漏洩を防ぎます。設定を変更せずそのまま保存しても元の URL が保持されます。

2. CSRF トークン検証

管理画面からの保存、Webhook 検証、テスト送信のすべての POST アクションで Strict CSRF トークン検証を行っています。

3. クリーンクローズ (Lifecycle Clean Close)

プラグインを削除 (uninstall) した際には、データベース内に作成されたテーブル(plg_slack_admin_order_notify_config および plg_slack_admin_order_notify_log)が自動的にクリーンアップされます。

9よくあるご質問 (FAQ)

Q. Slack に通知が届きません。どうすればよいですか?

A. 以下の手順で順に確認を行ってください。

  1. プラグイン設定画面で **「通知を有効化」** が ON になっているか確認します。
  2. 設定画面の **「Webhook を検証」** ボタンを押して、URL が有効か接続テストを行います。
  3. サーバー環境で PHP 拡張 curl が有効になっているか確認します。
  4. エラーログ var/log/app/dev.log または prod.log に Slack 送信エラーが記録されていないか確認します。

Q. 無料版の Slack ワークスペースでも使用できますか?

A. はい、問題なくご利用いただけます。Slack の Incoming Webhook 機能は無料プランでも標準で利用可能です。

Q. 同じ注文の通知が重複して届くことはありますか?

A. 本プラグインには二重送信防止機能が備わっており、同一注文 ID に対する重複送信は自動的にガードされます。