Commerce Stock Notifications
在庫切れ商品が再入荷した際にメール通知を受け取れるよう、ユーザーが購読登録できる機能を提供します。
commerce_stock_notifications
概要
Commerce Stock Notificationsは、Drupal Commerceストアに再入荷通知システムを追加する拡張モジュールです。商品が在庫切れの場合、モジュールは自動的に「カートに追加」ボタンを通知購読フォームに置き換え、顧客がメールアドレスを入力できるようにします。
商品が再入荷すると、モジュールはcronベースのキューシステムを通じて、購読ユーザーに自動的にメール通知を送信します。購読管理、トークンをサポートした通知メッセージのカスタマイズ、古い通知レコードの自動クリーンアップなど、完全な管理機能を備えています。
各通知購読はコンテンツEntityとして保存されるため、Views連携が可能で、管理者は中央の場所からすべての購読を追跡・管理できます。
Features
- 在庫切れ商品のカートに追加フォームを自動的に変更し、通知購読フォームを表示
- 通知購読を完全なメタデータ(ユーザー、メール、商品バリエーション、タイムスタンプ)を持つコンテンツEntityとして保存
- 商品が再入荷した際にcron実行時に購読を処理するキューベースのメール通知システム
- Tokenモジュールをサポートした完全にカスタマイズ可能なメール件名と本文(ユーザーおよびcommerce_product_variationトークン対応)
- 在庫切れ、成功、重複購読シナリオに対するユーザー向けメッセージの設定が可能
- 設定可能な日数経過後に送信済み通知レコードを自動削除
- ユーザープロフィールページにアクティブな通知購読を表示する組み込みViewsディスプレイ
- ユーザーが通知購読を削除できる購読解除機能
- カスタムレポートやすべての購読の管理ビューを作成できるViews連携
- 在庫状況を判断する際に最小注文数量を考慮するCommerce Product Limitsモジュールのサポート
Use Cases
ECサイトの在庫アラート
在庫管理機能を使用しているDrupal Commerceを利用したオンラインストア向けに、顧客が在庫切れ商品の通知に登録できます。在庫が補充されると、顧客は自動メールアラートを受け取り、購入を完了するよう促されます。
予約注文の関心収集
まだ在庫がない新商品を発売する際、ストアはこのモジュールを使用して顧客の関心を収集できます。在庫が入荷すると、通知システムが関心を持つ顧客に自動的にアラートを送信します。
高需要商品の管理
頻繁に完売する商品の場合、通知システムは顧客の関心を維持し、購読リストを通じて需要レベルに関する貴重なデータを提供します。
ゲスト顧客のエンゲージメント
匿名ユーザーに作成権限を付与することで、ストアは未登録の訪問者から通知購読を収集でき、商品が再入荷した際に顧客に転換できる可能性があります。
Tips
- メールテンプレートで[commerce_product_variation:title]や[commerce_product_variation:url]などのトークンを使用して通知をパーソナライズ
- 適切な削除間隔(デフォルト30日)を設定して、有用なデータを保持しながら通知テーブルをクリーンに保つ
- ユーザー購読管理用に提供されるViewsを検討し、管理レポート用に拡張
- テスト商品を購読してから手動で在庫を設定し、通知キューをトリガーしてメール配信をテスト
Technical Details
Admin Pages 2
/admin/commerce/config/stock/stock-notifications
在庫通知のメールテンプレートとユーザー向けメッセージを設定します。このページでは、商品が再入荷した際にユーザーに表示されるすべてのテキストと送信されるメールをカスタマイズできます。
/admin/structure/commerce_stock_notification
すべての在庫通知購読の管理一覧。ユーザーメール、商品、送信日、送信日時などの購読詳細を表示し、手動管理用の購読解除リンクを提供します。
権限 2
Hooks 5
hook_form_alter
在庫切れ商品のカートに追加フォームを変更し、送信ボタンを通知購読インラインフォームに置き換えます。
hook_cron
cron実行中に2つのキューを管理:(1) 商品が再入荷した購読の通知送信キューアイテムを作成、(2) 削除間隔より古い送信済み通知のクリーンアップキューアイテムを作成。
hook_mail
HTMLフォーマットをサポートした在庫通知用のメールメッセージを準備します。
hook_theme
メール通知コンテンツをレンダリングするためのcommerce_stock_notifications_messageテーマフックを定義します。
hook_module_implements_alter
他のモジュールの後でカートに追加フォームを適切に変更するため、モジュールのform_alterが最後に実行されるようにします。
Troubleshooting 4
cronが定期的に実行されていることを確認してください。モジュールはcron実行中に通知を処理します。commerce_stock_notificationsキューにアイテムがあり、商品が実際に再入荷していることを確認してください。
匿名ユーザーロールに「Create commerce stock notifications」権限を付与してください。匿名ユーザーは自分で購読解除できない点に注意してください。
Swift Mailerまたは他のHTMLメールモジュールのインストールを検討してください。モジュールはHTMLヘッダーを設定しますが、メールシステムがHTMLレンダリングをサポートしている必要があります。
Commerce Stockが正しく設定され、在庫レベルが正しく設定されていることを確認してください。モジュールはCommerce Stockサービスマネージャーを通じて在庫を確認します。
Security Notes 3
- 匿名ユーザーの購読はユーザー自身では購読解除できません - 管理者が手動で管理する必要があります
- メールアドレスは通知配信のためデータベースにプレーンテキストで保存されます
- 購読解除URLには通知IDが含まれており、理論的には列挙が可能ですが、アクセスはEntity権限で制御されています