2016-04-22 247 views
1

我目前正在最终确定一个自定义控制器来接受报价单的Ajax请求的过程。我已经能够成功地设置一切,并且正确发送。我的问题是关于将CMS的交易电子邮件模板链接到我设置的控制器的方法。Magento交易电子邮件模板

我在Magento安装的语言环境中有一个模板,并且能够将它加载到后端的交易电子邮件管理器中。我将如何能够获得该模板的ID并将其加载到邮件对象中?我试图使用简单的数字ID,并且似乎没有工作。

的Config.xml

<global> 
    <template> 
     <email> 
      <custom_quote> 
       <label>Custom Quote Form</label> 
       <file>custom-quote.html</file> 
       <type>html</type> 
      </custom_quote> 
      <trade_printer> 
       <label>Trade Printer Form</label> 
       <file>trade-printer.html</file> 
       <type>html</type> 
      </trade_printer> 
     </email> 
    </template> 
    </global> 
+0

你可以分享你config.xml中? –

+0

添加了相关的代码片段。 – Sidriel

回答

1

发送电子邮件上可用的方法读了后一个示例代码,我发现 loadDefault()将始终从语言环境代码库中加载模板。使用在交易电子邮件编辑器中指定名称的loadByCode()将加载自定义模板。

终极密码

$emailTemplate = Mage::getModel('core/email_template')->loadByCode('Template Name Here');

1

这是与电子邮件模板

$emailTemplate = Mage::getModel('core/email_template') 
         ->loadDefault('custom_quote');         


$emailTemplateVariables = array(); 
$emailTemplateVariables['myvar1'] = 'Branko'; 
$emailTemplateVariables['myvar2'] = 'Ajzele'; 
$emailTemplateVariables['myvar3'] = 'ActiveCodeline'; 
$processedTemplate = $emailTemplate->getProcessedTemplate($emailTemplateVariables); 
$emailTemplate->send('[email protected]','John Doe', $emailTemplateVariables,$storeId=null); 

reference

+0

我很感激帮助,但正如我在问题的后半部分所述,我能够链接到位于locale文件夹中的模板,但我希望能够使用位于CMS事务性电子邮件设置中的定制版本。我从那以后发现了loadByCode()方法,它正是我想要的。 – Sidriel