EC-CUBE 2.114 商品ごとに注文メールの宛先を設定
例えば、商品A、商品Bとあって、
商品Aが売れたら、購入者・管理人・商品Aを管理している人
に、メールがとんでくれたら便利かな、と思ったり
で、
まずはEC-CUBEのコミュニティ↓を参考にさせていただきました
それによると、data/class/helper/SC_Helper_Mail.phpに以下↓を追加したらOKとあったのですが、なぜかできませんでした…
$addressList = array();
foreach ($arrOrderDetail as $orderDetail) {
$productId = $orderDetail["product_id"];
// 商品データごとのメールアドレス取得
$arrProduct = $objQuery->select("comment4", "dtb_products", "product_id = ?", array($productId));
$addressList[] = $arrProduct[0]["comment4"];
}
// $addressList[]をBccに利用
$bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
それで、どこの値が取得できていないのか検証
コミュニティでは、
$arrOrderDetail = $objQuery->select("*", "dtb_order_detail", $where, array($order_id));
$arrOrderDetail には注文した商品の情報(購入した商品分)が入っている
とあったのですが、$arrOrderDetailにはデータが入っていないことが判明
なので、$bccにメールアドレスを追加する前に、$objQuery->setOrder(”);で、一旦リセット!!
その後、またデータを取得してみました
$objQuery->setOrder(''); $addressList = array(); $arrOrderDetail2 = $objQuery->select("*", "dtb_order_detail", $where, array($order_id)); foreach ($arrOrderDetail2 as $orderDetail) { $productId = $orderDetail["product_id"]; // 商品データごとのメールアドレス取得 $arrProduct = $objQuery->select("note", "dtb_products", "product_id = ?", array($productId)); $addressList[] = $arrProduct[0]["note"]; } // $addressList[]をBccに利用 $bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
これで、動きました!
ちなみに、商品マスタ登録時、今回は使わない、備考欄(フィールド名note)に商品個別メールアドレスを記述
そのアドレスを商品ごとのメールアドレスとして使用しました