Magento-Custom email when order status changed
Create a file /app/etc/modules/Namespace_Custmail.xml with following content:
1 2 3 4 5 6 7 8 |
<config> <modules> <Namespace_Custmail> <active>true</active> community </Namespace_Custmail> </modules> </config> |
Create file /app/code/community/Namespace/Custmail/etc/config.xml with following content:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<config> <modules> <Namespace_Custmail> <version>1.0.0</version> </Namespace_Custmail> </modules> <global> <models> <custmail> <class>Namespace_Custmail</class> </custmail> </models> <events> <sales_order_save_commit_after> <observers> <mail_status_change> <type>singleton</type> <class>custmail/observer</class> <method>invoicedStatusChange</method> </mail_status_change> </observers> </sales_order_save_commit_after> </events> <template> <email> <custom_order_tpl module="Namespace_Custmail"> <label>Status Mail Invoice</label> <file>statusmail_processing.html</file> <type>html</type> </custom_order_tpl> </email> </template> </global> </config> |
Create file /app/code/community/Namespace/Custmail/Model/Observer.php with following content:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php class Namespace_Custmail_Model_Observer { public function invoicedStatusChange($event) { $order = $event->getOrder(); $orderStatus = $order->getStatus(); if ($order->getState() == Mage_Sales_Model_Order::STATE_CANCELED) $this->_sendStatusMail($order); } private function _sendStatusMail($order) { $emailTemplate = Mage::getModel('core/email_template'); $emailTemplate->loadDefault('custom_order_tpl'); $emailTemplate->setTemplateSubject('Your order was holded'); // Get General email address (Admin->Configuration->General->Store Email Addresses) $salesData['email'] = Mage::getStoreConfig('trans_email/ident_general/email'); $salesData['name'] = Mage::getStoreConfig('trans_email/ident_general/name'); $emailTemplate->setSenderName($salesData['name']); $emailTemplate->setSenderEmail($salesData['email']); $emailTemplateVariables['username'] = $order->getCustomerFirstname() . ' ' . $order->getCustomerLastname(); $emailTemplateVariables['order_id'] = $order->getIncrementId(); $emailTemplateVariables['store_name'] = $order->getStoreName(); $emailTemplateVariables['store_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); $emailTemplate->send($order->getCustomerEmail(), $order->getStoreName(), $emailTemplateVariables); } }?> |
/app/locale/en_US/template/email/statusmail_processing.html
1 2 3 4 5 |
<div> <h1>Dear {{var username}}</h1> <p>Your order #{{var order_id}} was canceled for some reasons… </p> <div>{{var storename}} ({{var store_url}})</div> </div> |