Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
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|}} | ||
+ |