2016-04-22 291 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