Benutzer-Werkzeuge

Webseiten-Werkzeuge


action:ordermailnotificator

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
action:ordermailnotificator [20.09.2013 ]
172.16.1.171 [Velocity]
action:ordermailnotificator [13.11.2014 ] (aktuell)
Zeile 1: Zeile 1:
 +====== Action-Handler:​ OrderMailNotificator ======
  
 +Der OrderMailNotificator dient dem Versand von HTML-E-Mails rund um einen Auftrag. Konkrete Anwendungsfälle für E-Mails sind zum Beispiel:
 +
 +  * Bestelleingang
 +  * Auftragsbestätigung
 +  * Versand
 +  * Retoureneingang
 +
 +
 +
 +===== Action-Parameter ======
 +
 +Die folgenden Parameter können zur Action als Action-Parameter übergeben werden:
 +
 +^Parameter-Name ^Beschreibung ^Pflicht? ^
 +|TemplateName|Dateiname (ohne Pfad und [[wp>​Locale]]-Information) eines Templates. Je nach Endung des Dateinamen wird entweder die Template-Engine [[http://​velocity.apache.org|Apache Velocity]] (Endung ''​.vm''​) oder [[wp>​JasperReports]] (Endung ''​.jrxml''​) verwendet.| ja |
 +|OrderID|Mit den Daten dieses Auftrags (und verbundener Rechnungs- und Lieferanschrift) soll das Template "​gefüllt"​ werden|ja|
 +|ToEmail|An diese E-Mail Adresse soll die E-Mail versendet werden.|ja|
 +|FromEmail|E-Mail Adresse die als Absenderadresse verwendet werden soll.|ja|
 +|FromName|Name zur E-Mail-Adresse der in der Absenderadresse verwendet werden soll.|ja|
 +|Subject|Inhalt des "​Betreffs"​ der E-Mail|ja|
 +|ReplyTo|E-Mail Adresse die im "​Reply-To"​-Header gesetzt werden soll.|ja|
 +
 +===== Template-Erstellung ======
 +
 +==== Velocity ====
 +
 +Für die Erstellung von Templates stehen mehrere [[http://​wiki.apache.org/​velocity/​VelocityEditors|Velocity Editoren]] zur Verfügung. Eine Beschreibung der Velocity Template Languge (VTL) findet sich im [[http://​velocity.apache.org/​engine/​releases/​velocity-1.7/​user-guide.html|Velocity Handbuch]].
 +
 +
 +Sofern eine ''​localeCharacID''​ konfiguriert ist wird in folgender Reihenfolge nach dem passenden Template gesucht:
 +
 +  * <​Personen-Eigenschaft zur ''​localeCharacID''>​_<​Templatename aus Action-Parametern>​
 +  * <"​Sprachteil"​ der Personen-Eigenschaft zur ''​localeCharacID''>​_<​Templatename aus Action-Parametern>​
 +  * <​Templatename aus Action-Parametern>​
 +
 +Das action_SmartGate stellt für die Verwendung in den Templates Daten zur Verfügung. Konkret sind dies:
 +
 +^VTL-Zugriff ​ ^Beschreibung^
 +|$person.getProperty('<​ID>'​)|Liefert die Eigenschaft zur übergebenen Personen-CharacteristicID des Auftraggebers|
 +|$action.getActionParameterValue('​Name'​)|Liefert den Wert zum Action-Parameter mit dem übergebenen Namen|
 +|$deliveryperson.getProperty('<​ID>'​)|Liefert die Eigenschaft zur übergebenen Personen-CharacteristicID der Lieferanschrift|
 +|$order.getCurrencySymbol()|Das Symbol zur Währung des Auftrags|
 +|$order.getOrderIDAsString()|Die ID des Auftrags|
 +|$order.getOrderDate('​de'​)|Das Datum in der dem locale-Parameter entsprechenden Formatierung|
 +|$order.getPaymentTypeDescription()|Beschreibung der Zahlungsart|
 +|$order.getShippingTypeDescription()|Beschreibung der Versandart|
 +|$order.getGrossSumAsString('​de'​)|Der Brutto-Warenwert der Auftragspositionen (ohne "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$order.getNetSumAsString('​de'​)|Der Netto-Warenwert der Auftragspositionen (ohne "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$order.getGrossTotalSumWithOrderSurchargesAsString('​de'​)|Die Brutto-Auftragssumme (inklusive "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$order.getNetTotalSumWithOrderSurchargesAsString('​de'​)|Die Netto-Auftragssumme (inklusive "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$items|Die Positionen des Auftrags zum durchlaufen mittels ''#​foreach ( $item in $items )''​|
 +|$item.getProperty('<​ID>'​)|Liefert die Eigenschaft zur übergebenen Artikel-CharacteristicID der jeweiligen Auftragsposition|
 +|$item.getGrossContentUnitPriceWithoutSurchargesAsString('​de'​)|Brutto-Einzelpreis der Position (ohne "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$item.getNetContentUnitPriceWithoutSurchargesAsString('​de'​)|Netto-Einzelpreis der Position (ohne "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$item.getGrossContentSumSurchargesAsString('​de'​)|Auschließlich die Brutto-Surcharges der Position in der dem locale-Parameter entsprechenden Formatierung| ​
 +|$item.getNetContentSumSurchargesAsString('​de'​)|Auschließlich die Netto-Surcharges der Position in der dem locale-Parameter entsprechenden Formatierung| ​
 +|$item.getGrossContentSumAsString('​de'​)|Brutto-Summe der Position (inkl. "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$item.getNetContentSumAsString('​de'​)|Netto-Summe der Position (inkl. "​Surcharges"​) in der dem locale-Parameter entsprechenden Formatierung|
 +|$ordersurcharges|Die "​Rabatte und Aufschläge"​ des Auftrags zum Durchlaufen per ''#​foreach ( $ordersurcharge in $ordersurcharges )''​|
 +|$ordersurcharge.getDescription()|Beschreibung der Rabatt bzw. Aufschlagsart|
 +|$ordersurcharge.getGrossOrderSurchargeAsString('​de'​)|Die Brutto-Surcharges des Auftrags in der dem locale-Parameter entsprechenden Formatierung|
 +|$ordersurcharge.getNetOrderSurchargeAsString('​de'​)|Die Netto-Surcharges des Auftrags in der dem locale-Parameter entsprechenden Formatierung|
 +|$taxes|Die Steuern des Auftrags zum Durchlaufen per ''#​foreach ( $tax in $taxes )''​|
 +|$tax.getTaxRateAsString('​de'​)|Höhe des Steuersatzes in Prozent|
 +|$tax.getTaxSumAsString('​de'​)|Absoluter Steuer-Betrag|
 +==== Jasper-Reports ====
 +
 +Zur Erstellung von JRXML Template-Dateien gibt es das frei verfügbare Tool [[http://​community.jaspersoft.com/​project/​ireport-designer|iReport-Designer]]. Eine Erstellung dieser Dateien mit einem Text- oder XML-Editor ist nicht praktikabel.
 +
 +===== Konfiguration ======
 +
 +==== statische ====
 +
 +Es werden die folgenden statischen Parameter unterstützt:​
 +^Name ^Beschreibung ^Pflicht? ^
 +|outputPath|In dieses (lokale) Verzeichnis werden die erzeugten E-Mails vor dem Versand gespeichert.|ja|
 +|templatePath|Es werden die Templates für die Erzeugung der E-Mails aus diesem (lokalen) Verzeichnis verwendet|ja|
 +|errorsTo|Diese E-Mail Adresse wird im "​Return-Path"​-Header der gesendeten E-Mail gesetzt.|ja|
 +|localeCharacID|Personen-CharacteristicID (des Auftraggebers) in der die [[wp>​Locale]] Informationen für die Auswahl von sprachabhängigen Templates hinterlegt sind|nein|
 +|BCC:<​Template>​|E-Mail Adresse die bei Verwendung des angegebenen Templates in den Action-Parametern als Blind-Carbon-Copy (BCC) gesetzt wird. Anwendungsfall ist z.B. eine Adresse zur externen Archivierung bestimmter E-Mails.|nein|
 +
 +
 +Über die oben genannten Parameter hinaus gelten die folgenden, bei allen Action-Handlern vorhandenen,​ statischen Parameter:
 +
 +^Name ^Beschreibung ^Pflicht? ^
 +|commandID|Dieser Handler verarbeitet alle [[dstoreterm>​ActionID|Actions]] dieses "​Typs"​ ([[dstoreterm>​CommandID|CommandID]])|ja|
 +|runningState|In diesen Status (eine ID, siehe [[dstoreproc>​ac_ChangeActionState_Ad]]) soll die Action bei Beginn der Ausführung gesetzt werden. Best-Practice:​ ''​100''​|ja|
 +|successState|In diesen Status soll die Action nach der erfolgreichen Ausführung gesetzt werden. ''​0'',​ falls die Action durch [[dstoreproc>​mi_GarbageCollect_Ad]] gelöscht werden darf, sonst ''​255''​|ja|
 +|errorState|In diesen Status soll die Action nach der fehlerhaften Ausführung gesetzt werden. Best-Practice:​ ''​-99''​|ja|
 +==== dynamische ====
 +
 +^Name ^Beschreibung ^Pflicht? ^
 +|isActive|Sollen von diesem Action-Handler Actions verarbeitet werden (mögliche Werte: ''​0''​ oder ''​1''​)?​ Dient dem kurzfristigen "​anhalten"​ der Verarbeitung von Actions eines bestimmten Typs|ja|
 +
 +==== Beispielkonfiguration ====
 +
 +Hier eine Beispielkonfiguration welche mittels admin_SmartGate importiert werden und dann entsprechend angepasst werden kann:
 +
 +{{:​action:​applicationsettings_action-handler_ordermailnotificator.xml|}}
 +