バージョン選択

フォーラム

メニュー

オンライン状況

69 人のユーザが現在オンラインです。 (47 人のユーザが フォーラム を参照しています。)
登録ユーザ: 4
ゲスト: 65
kazz_oga twiles1695 vanphuc ecaz もっと...

サイト内検索

質問 > 管理機能 > 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
居住地: 東京日本橋
投稿: 1649
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-CUBE4系 カスタマイズ ECのプロがシステム特急案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

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
居住地: 東京日本橋
投稿: 1649
Re: ec-cube4で受注ステータスを変更した際にテンプレートメール を送信したい
>$MailTempateの読み込みでエラーが発生し、

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


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

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


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム特急案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

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

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

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

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


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,306名です
総投稿数は97,176件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2478
4
nanasess
2088
5
umebius
1649
6
yuh
1612
7
red
1410
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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