我一直在下达和取消订单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 并确保启用它:

enter image description here

电子邮件模板位于 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'] 看到国家改变并采取适当的行动。

许可以下: CC-BY-SA归因
scroll top