2016-04-22 51 views
1

Ich bin gerade dabei, einen benutzerdefinierten Controller zu finalisieren, um die Ajax-Anfrage für ein Angebotsformular zu akzeptieren. Ich konnte alles erfolgreich einrichten und es wird richtig gesendet. Die Frage, die ich habe, bezieht sich auf die Methode, eine Transaktions-E-Mail-Vorlage vom CMS mit dem von mir eingerichteten Controller zu verknüpfen.Magento Transactional E-Mail-Vorlage

Ich habe eine Vorlage im Gebietsschema der Magento-Installation und konnte sie in den Transaktions-E-Mail-Manager des Backends laden. Wie könnte ich die ID dieser Vorlage erhalten und sie in das Mail-Objekt laden? Ich habe versucht, die einfache numerische ID zu verwenden, und das scheint nicht zu funktionieren.

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

können Sie teilen Sie config.xml? –

+0

Relevantes Snippet hinzugefügt. – Sidriel

Antwort

1

Nach dem Einschalten zur Verfügung stehenden Methoden zu lesen auf, entdeckte ich, dass loadDefault() lädt die Vorlage immer aus der Codebasis des Gebietsschemas. Die Verwendung von loadByCode() mit dem im Transaktions-E-Mail-Editor angegebenen Namen lädt die angepasste Vorlage.

finale Code

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

1

dies ein Beispielcode ist für das Senden von E-Mail mit E-Mail-Vorlage

$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

Ich weiß die Hilfe zu schätzen, aber wie ich in der zweiten Hälfte meiner Frage gesagt habe, konnte ich eine Verknüpfung zu einer Vorlage im Locale-Ordner herstellen, aber ich wollte die angepasste Version in den CMS Transactional Email-Einstellungen verwenden können . Ich habe seitdem die Methode loadByCode() entdeckt, die genau das tut, was ich wollte. – Sidriel