クライアントが注文したときにMagentoが送信するメールにファイルを添付する必要があります。注文メールに添付ファイルを追加する+ Magento
この添付ファイルは、PDF、HTML、または単純なTXTのいずれでもかまいません。また、注文の概要(SKU、数量、単価、合計価格)が必要です。
これを行うにはどうすればいいですか?
ありがとうございます!
クライアントが注文したときにMagentoが送信するメールにファイルを添付する必要があります。注文メールに添付ファイルを追加する+ Magento
この添付ファイルは、PDF、HTML、または単純なTXTのいずれでもかまいません。また、注文の概要(SKU、数量、単価、合計価格)が必要です。
これを行うにはどうすればいいですか?
ありがとうございます!
ソリューションはそれほど複雑ではありませんが、実装には時間がかかります。必要なすべてのステップについて簡単に説明します。
主な手順は次のとおりです
1)Mage_Sales_Model_Order
クラスを書き直す必要があります。そのクラスの `sendNewOrderEmail() 'メソッドを上書きしてください。
お客様に送信する添付ファイルを作成する必要があります。元のsendNewOrderEmail()
メソッドのソースコードを上書きメソッドにコピーし、$mailer->send()
の直前に次の行を挿入します(この例では簡単なケースを想定しています - 注文の総計のみを含むテキストファイルを送信します。 「summary.txtに」という名前)
$fileContents = "Hello, here is the copy of your invoice:\n";
$fileContents .= sprintf("Grand total: %.2f", $this->getGrandTotal()) . "\n";
$fileContents .= "Thank you for your visit!";
$fileName = 'summary.txt';
$mailer->addAttachment($fileContents, $fileName);
2)Mage_Core_Model_Email_Template_Mailer
を書き換え - 添付ファイルの配列が格納され保護された変数に渡さ添付ファイルを追加しますが方法addAttachment($fileContents, $fileName)
を、追加します。
このクラスのsend()
メソッドを上書きします。その方法では、送信されたすべての電子メールテンプレートに添付ファイルの配列を渡す必要があります。例えば。右のライン$emailTemplate->setDesignConfig...
3)Mage_Core_Model_Email_Template
を書き換え前
$emailTemplate->setAttachments($this->getAttachments());
のような行を追加します。
追加の添付ファイルを保護された変数に設定する必要があるメソッドsetAttachments($attachments)
を追加します。
このクラスのsend()
メソッドを上書きします。その方法では、送信された手紙に添付ファイルを追加する必要があります。
foreach ($this->getAttachments() as $atInfo) {
$attachment = $mail->createAttachment($atInfo['fileContents']);
$attachment->filename = $atInfo['fileName'];
}
の直前に$mail->send()
行を入れてください。
それだけです。マゼンタの開発者にとってこの作業を行うことは、それほど難しいことではありません。コンテンツの作成、クラスの書き換え、インターフェイスの完成にはちょっと時間がかかります。