コンテンツにスキップ

メールテンプレート運用

概要

Vendure EmailPlugin のメールテンプレートを共通仕様で管理し、言語別テンプレートを扱えるようにします。テンプレートはすべて MJML で統一し、共通のヘッダー/フッターを利用します。

テンプレート配置

  • ルート: apps/vendure-server/static/email/templates/
  • 種別ごとのテンプレート: apps/vendure-server/static/email/templates/<type>/
  • 共通パーシャル: apps/vendure-server/static/email/templates/partials/

実装済みテンプレート一覧

イベント ハンドラー名 テンプレートディレクトリ 概要
注文確定 orderConfirmationHandler order-confirmation 注文完了時に送信される確認メール
メールアドレス確認 emailVerificationHandler email-verification 会員登録時のアドレス有効性確認
パスワードリセット passwordResetHandler password-reset パスワード忘失時の再設定用リンク
アドレス変更確認 emailAddressChangeHandler email-address-change メールアドレス変更時の確認
パスワード発行 passwordIssuedHandler password-issued 管理者によるパスワード手動発行通知
注文キャンセル orderCancelledHandler order-cancelled 注文がキャンセルされた際の通知
会員情報変更 customerProfileUpdatedHandler customer-updated プロフィール情報が変更された際のセキュリティ通知
会員登録完了 registrationCompletedHandler registration-completed アドレス確認後の本登録完了通知
出荷完了 shipmentCompletedHandler shipping-completed 商品発送時の通知(追跡番号含む)

言語別テンプレート

  • body.hbs (デフォルト/日本語) を用意する
  • 必要に応じて body.en.hbs 等を追加可能(LanguageAwareTemplateLoader により自動解決)

共通仕様

  • すべてのメールは MJML で統一する
  • {{> header }} / {{> footer }} を共通利用する
  • 件名は apps/vendure-server/src/vendure-config.shared.ts で統一管理する
  • テンプレートプレビューの件名は apps/vendure-server/src/plugins/email-preview/email-preview.service.ts と同期する

多言語対応の方針

  • 言語ごとのテンプレートファイルを追加するだけで拡張可能
  • 既定言語は日本語とする