バージョン選択

フォーラム

メニュー

オンライン状況

67 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 66
misato もっと...

サイト内検索

質問 > 管理機能 > ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tdr_user
投稿日時: 2020/2/7 16:10
対応状況: −−−
新米
登録日: 2019/12/17
居住地:
投稿: 5
ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい
[EC-CUBE] EC-CUBE4 新規
[レンタルサーバ] さくら
[OS] Windows10
[PHP] 7.3.9
[データベース] MYSQL

質問させていただきます。

現在、受注ステータスを新しく追加し、
そのステータスに切り替えた場合にメールが送られるように、
カスタマイズを行なっています。

下記サイトを参考に、
新しい受注ステータスを追加致しました。
メール 配信も可能になったのですが、
そのメール 内容に関してお伺いしたいことがあります。

受注メールの本文に関しまして、
下記サイトでは固定の文字列で適宜されているのですが、
固定文字列ではなくEC-CUBE4のメール テンプレートの形式で、
送信することは可能でしょうか。
メール テンプレート自体は新しく追加してあります。

また、
それが難しいのであれば、
下記情報を含めたメールを送信したいと思っております。
・購入日時
・注文番号
・支払い合計
・支払い方法
・購入商品詳細(商品名・小計・送料・合計)
・注文者情報(氏名・住所など)
・配送先情報(氏名・住所・商品など)

注文情報は
$Order = $event->getSubject()->getOrder();
で取れているので、
注文者や、メールアドレス、住所等は取得して送信できたのですが、
配送先の情報(おそらく$Shipping)が取得できずにおります。

どなたかご助力頂けないでしょうか。

https://qiita.com/chihiro-adachi/items/8d4988e784603d9517af

umebius
投稿日時: 2020/2/7 18:22
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい
メールテンプレートから本文作る方法は既存のソースを見れば参考になると思います。

下記は会員登録のメールですが、同じ様なことです。
https://github.com/EC-CUBE/ec-cube/blob/4.0.3/src/Eccube/Service/MailService.php#L168-L173

ファイルは
src/Eccube/Servic/MailService.php


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

tdr_user
投稿日時: 2020/2/8 2:10
対応状況: −−−
新米
登録日: 2019/12/17
居住地:
投稿: 5
Re: ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい
ご返信ありがとうございます。
配送情報が欲しいのでsendShippingNotifyMailを参考にし、
メールテンプレートを読み込むように
今回追加したOrderStateMachine.phpに追記したのですが、
$MailTempateの読み込みでエラーが発生し、
うまく行きませんでした。

メール送信処理は、
MailiService.phpに書くようにした方がいいのでしょうか?
また、
$Shippingのデータの取得はどうやればよいのでしょうか・・・

public function sendShippingNotifyMail(Shipping $Shipping)
{
log_info('出荷通知メール送信処理開始', ['id' => $Shipping->getId()]);

$MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_shipping_notify_mail_template_id']);

/** @var Order $Order */
$Order = $Shipping->getOrder();
$body = $this->getShippingNotifyMailBody($Shipping, $Order, $MailTemplate->getFileName());

申し訳ございませんが、
何卒宜しくお願い致します。

umebius
投稿日時: 2020/2/8 21:52
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい
>$MailTempateの読み込みでエラーが発生し、

どのようなエラーでしょうか?
$this->mailTemplateRepositoryがNULLというエラーであれば
__constructで代入してやる必要がありますね。
それは参考サイトでも他のプロパティの代入されているので真似してみてください。


>$Shippingのデータの取得はどうやればよいのでしょうか・・・

$Order が取得できているなら
$Order->getShippings()でShippingのコレクションが取得できるかと思います。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

tdr_user
投稿日時: 2020/2/14 4:33
対応状況: −−−
新米
登録日: 2019/12/17
居住地:
投稿: 5
Re: ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい
ご連絡が遅れ、申し訳ございません。

メールテンプレートの取得はうまく行きませんでしたが、
getshippingsで配送先等の情報を取得することが出来ました。

テンプレートに関しては自分の課題として、頑張りたいと思います。

また何かありましたら質問させて頂きます。
有難うございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,280名です
総投稿数は109,687件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.