Magento电子邮件模板基于客户群和付款方式

时间:2014-04-03 10:55:53

标签: magento email magento-1.7

是否可以根据客户群和付款方式设置不同的电子邮件模板?

我知道我可以在Conf-> Transactional电子邮件中设置不同的模板,我也可以看到我可以在Conf->中为不同的销售电子邮件分配不同的模板。销售电子邮件。但是,根据客户群和付款方式,我无法确定在哪里可以设置不同的电子邮件模板。

任何建议都会很棒

1 个答案:

答案 0 :(得分:0)

根据客户群

更改不同的电子邮件模板

按照以下步骤

1.创建您的电子邮件模板并将其放在模板文件夹中。对于我的情况,它是“app \ locale \ en_US \ template \ email \ sales”。

2.创建新模块。在config.xml定义电子邮件模板。

<global>
...
<template>
<email>
<custom_email_customorder_new module="sales">
     <label>custom email module</label>
     <file>sales/order_new_custom.html</file>
     <type>html</type>
</custom_email_customorder_new>
<custom_email_customorder_log module="sales">
    <label>custom email module</label>
    <file>sales/order_log_custom.html</file>
    <type>html</type>
</custom_email_customorder_log>
</email>
</template>
... 
</global>

3.扩展“Sales / Model / Order.php”并覆盖方法sendNewOrderEmail()

 $paymentMethodCOde=$this->getPayment()->getMethodInstance()->getCode();
    if($paymentMethodCOde=="checkmo"){
     $mailer->setSender(Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId));
            $mailer->setStoreId($storeId);
            $mailer->setTemplateId('custom_email_customorder_new');
            $mailer->setTemplateParams(array(
                    'order'        => $this,
                    'password'  => $password,
                    'billing'      => $this->getBillingAddress(),
                    'payment_html' => $paymentBlockHtml
                )
            );
            $mailer->send();
    }elseif($paymentMethodCOde="cashondelivery"){
         $mailer->setSender(Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId));
            $mailer->setStoreId($storeId);
            $mailer->setTemplateId('custom_email_customorder_log');
            $mailer->setTemplateParams(array(
                    'order'        => $this,
                    'password'  => $password,
                    'billing'      => $this->getBillingAddress(),
                    'payment_html' => $paymentBlockHtml
                )
            );
            $mailer->send();

    }
     else
     {
         $mailer->setSender(Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId));
            $mailer->setStoreId($storeId);
            /* magento default  sales template*/
            $mailer->setTemplateId($templateId);
            $mailer->setTemplateParams(array(
                    'order'        => $this,
                    'billing'      => $this->getBillingAddress(),
                    'payment_html' => $paymentBlockHtml
                )
            );
            $mailer->send();
     }