5.6系eCommerceのdownloadableのメール送信について

2017年2月28日 at 12:20

5.6系eCommerceアドオンにDownloadable File Purchaseを追加しています。
このダウンロード販売を行った際にメールを送信しますが。

/mail/downloads_available.php

で文面を書き換えます。
このメールは

/models/downloadable_product.php



public static function onPurchaseComplete($order, $userInfo) {
$downloads = self::getDownloadableProductsFromOrder($order);

if(count($downloads)) { // send mail
$mh = Loader::helper('mail');

$pkg = Package::getByHandle('core_commerce');
$fromE = $pkg->config('EMAIL_NOTIFICATION_EMAIL');
if ($fromE != '') $mh->from($fromE, $pkg->config('EMAIL_NOTIFICATION_NAME'));
$mh->addParameter('orderID', $order->getInvoiceNumber());
$mh->to($order->getOrderEmail());
$mh->load('downloads_available','core_commerce_downloadable_file');
@$mh->sendMail();
}
}

のところだと思うんですが、パラメーターを追加しています。
これにさらに$orderから値をもってきたいと思い。
$mh->addParameter('billing_last_name', $order->getAttribute('billing_last_name'));
$mh->addParameter('billing_first_name', $order->getAttribute('billing_first_name'));
を追加したのですが、メール分でNULLになってしまいます。
$order->getAttribute('billing_last_name')
が取れてないのか思い、ここを
$mh->addParameter('billing_last_name','FIRST NAME');
のようにスタティクにしても反映されません。
何か手続きが足りないのでしょうか?

タグ:

Re: 5.6系eCommerceのdownloadableのメール送信について

2017年2月28日 at 14:52
単純に、/packages/***/models/downloadable_product.php を変更しているのに、/models/downloadable_product.php でオーバーライドしたファイルがあるので、反映されてないとか?
 

Re: 5.6系eCommerceのdownloadableのメール送信について

2017年3月2日 at 16:45
返信あざす。
/package/の中をいじらないようには一応気をつけています。
ためしにエラーを書くと
/models/downloadable_product.php
でエラーが出るので、読んでるみたいなんですが
どうも
$mh->addParameter('orderID', $order->getInvoiceNumber());
を違う値にしてもダメなんで、メール呼び出してるのがここじゃないようです。
でも、他に見当たらないんですよね...うーん

contollerの最初に

Events::extend('core_commerce_on_checkout_finish_order',
'DownloadableProduct',
'onPurchaseComplete',
'packages/'.$this->pkgHandle.'/models/downloadable_product.php',
array($order,$ui));

Events::extend('core_commerce_on_checkout_start',
'DownloadableProduct',
'checkoutSetup',
'packages/'.$this->pkgHandle.'/models/downloadable_product.php',
array($checkoutController));

と書いてあるので、ここくらいしか見当たらんのですが..どこだろう..
 

Re: 5.6系eCommerceのdownloadableのメール送信について

2017年3月2日 at 19:36
該当のファイルだけでも添付してもらえると分かる気が。。
 

Re: 5.6系eCommerceのdownloadableのメール送信について

2017年3月2日 at 19:48
すいません。
このmailのテンプレートをcontrollerからmodelを呼び出して、それからmailのひな形で送ってると思うんですが、↑のところを変えてもうんともすんともで
 

Re: 5.6系eCommerceのdownloadableのメール送信について

2017年3月8日 at 14:22
すいません、解決というかとりあえずの処理でやりました。

私の勘違いで、菱川さんが指摘していただいたものの逆で
/modelsに入れたファイルで上書きできていなかったようです。

名前も入れる場所もあってるんですが
core_commerce_downloadable_file
のcontroller.phpで呼んでるところを見ると

public function on_start() {
// register on_order_complete function
Events::extend('core_commerce_on_checkout_finish_order',
'DownloadableProduct',
'onPurchaseComplete',
'packages/'.$this->pkgHandle.'/models/downloadable_product.php',
array($order,$ui));

Events::extend('core_commerce_on_checkout_start',
'DownloadableProduct',
'checkoutSetup',
'packages/'.$this->pkgHandle.'/models/downloadable_product.php',
array($checkoutController));
}

なので、ひょっとしたらoverrideしてくれないんじゃと思い
元のmodelsを変えると反映しました。
そういう事かなと思うんですが。
 

Re: 5.6系eCommerceのdownloadableのメール送信について

2017年3月8日 at 15:39
反応遅くなりすいません。パッケージのモデルはオーバーライドできないということですね…。何がオーバーライドできて何ができないかは、僕もよくわからなくなります。。。
 

Re: Re: 5.6系eCommerceのdownloadableのメール送信について

2017年3月8日 at 15:43
忙しいとこすいません。
core_commerceのほうがいけるんですが
派生アドオンのcore_commerce_downloadable_fileはダメだったということで
違う人が作ってるので、仕方ないですね。
いい勉強になりました。