Magento会发送订单取消电子邮件吗?
-
16-10-2019 - |
题
我一直在下达和取消订单Allday,没有收到任何取消确认电子邮件,并认为Magento 1.7不支持此功能!?
如果有人有要求根据订单变更的状态发送电子邮件
预先感谢!
这是我的observer.php
<?php
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
class Namespace_Customail_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 cancelled');
// 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);
}
}
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Customail>
<version>1.0.0</version>
</Namespace_Customail>
</modules>
<global>
<models>
<customail>
<class>Namespace_Customail</class>
</customail>
</models>
<events>
<sales_order_save_commit_after>
<observers>
<mail_status_change>
<type>model</type>
<class>customail/observer</class>
<method>invoicedStatusChange</method>
</mail_status_change>
</observers>
</sales_order_save_commit_after>
</events>
<template>
<email>
<custom_order_tpl module="Namespace_Customail">
<label>Status Mail Invoice</label>
<file>statusmail_processing.html</file>
<type>html</type>
</custom_order_tpl>
</email>
</template>
</global>
</config>
解决方案
Magento 做 发送许多交易电子邮件,包括取消(例如订单状态更改);取消电子邮件的唯一问题要求客户服务代理取消单击“通知客户”。您可以将其编辑为默认值。
要通过订单评论启用电子邮件,请转到 System > Config > Sales Emails
并确保启用它:
电子邮件模板位于 app/locale/[en_US]/template/email/sales/order_update.html
默认情况下,更换 en_US
当然,如果您使用其他语言包,则使用您的实际语言环境。
这线:
<p style="font-size:12px; line-height:16px; margin:0 0 10px 0;">
Your order # {{var order.increment_id}} has been <br/>
<strong>{{var order.getStatusLabel()}}</strong>.
</p>
提供“状态”更新的输出。您可以使用Control-Flow语句创建自定义样式 if
或者 depends
:
<p style="font-size:12px; line-height:16px; margin:0 0 10px 0;">
Your order # {{var order.increment_id}} has been <br/>
{{if order.getStatusLabel()=='canceled'}}
<strong>CANCELED - THERE, ARE YOU HAPPY?!</strong>
{{else}}
{{var order.getStatusLabel()}}.
{{/if}}
</p>
其他提示
取消订单时,Magento不会发送电子邮件。
但是有一个事件 order_cancel_after
, ,每次取消订单时都会触发。您可以使用该电子邮件将电子邮件发送给您的客户。
您也可以使用 sales_order_save_after
对于一般情况。检查 $order->getState()
和 $origData = $order->getOrigData(); $origData['state']
看到国家改变并采取适当的行动。