I am using magento for sending mail with condition,
My code:
<?php
class Gta_MerchantNotification_Model_Observer {
public function merchantremainder($Observer) {
$order = $Observer->getEvent()->getOrder();
$order_details = $order->getAllVisibleItems();
$itemData = array();
foreach ($order_details as $list) {
$incrementid = $order->getIncrementId();
$sku = $list->getsku();
$name = $list->getName();
$price = $list->getPrice();
$Qty = $list->getQtyOrdered();
$extra = $order->getIncrementId();
$message =
"
<tr>
<!-- <td>$incrementid</td> -->
<td>$sku</td>
<td>$name</td>
<td>$price</td>
<td>$Qty</td>
</tr>";
$itemData[$list->getId()] = $message;
}
$finalMessage = "
<p>Order Id : $incrementid</p>
<table border='1'>
<tr>
<!-- <th>Id</th> -->
<th>Sku</th>
<th>Product name</th>
<th>Price</th>
<th>Qty Ordered</th>
</tr>";
if (!empty($itemData)) {
foreach ($itemData as $data) {
$finalMessage .= $data;
}
$finalMessage .= "</table>";
$this->sendMail($finalMessage);
}
}
public function sendMail($message) {
$body ="$message";
$emailTemplate = Mage::getModel('core/email');
$emailTemplate->setFromName('abc');
$emailTemplate->setBody($body);
$emailTemplate->setSubject("Custom Email from observer");
$emailTemplate->setType('html');
$emailTemplate->setToEmail('abc@gmail.com');
$emailTemplate->send();
}
}
?>
Output :
https://snipboard.io/encLQH.jpg
If order placed mail send to abc@gmail.com.
How to set email sender based on SKU $sku from order.
I want :
1) If SKU starts with 2, email should go to the mail id abc@gmail.com,
screenshot :
https://snipboard.io/2aiBze.jpg
2) If SKU starts with 3, email should go to the mail id xyz@gmail.com,
screenshot :
https://snipboard.io/tmWfEx.jpg
3) If SKU starts with 4, email should go to the mail id qwe@gmail.com,
screenshot :
https://snipboard.io/M5dGIn.jpg
FYI - If an order contains 10 items email should go separately based on SKU. But an order id the same must include all the emails.