Jump to content
  • 0

Abfragen und Funktionen in HTML Emailvorlage


Frage

Hallo,

ich arbeite gerade an HTML-E-Mail-Vorlagen für z.B. die Bestellbestätigung. Die Bestellungen stammen per API aus Shopware. Der externen Bestellnummer wird eine Laufende Nummer und ein "-" (Bindestrich) vorangestellt.

Wie nutze ich in der HTML Vorlage die RegExpSubst-Funktion ?

RegExSubst$ (Bestellung.ExterneBestellNr,"[0-9]+\-","")


Die laufende Nummer möchte ich nicht an den Kunden kommunizieren, lediglich die Originalbestellnummer aus Shopware.

Kann mir jemand Hilfestellung geben?

Gruß
Lars

Link zum Beitrag
Auf anderen Seiten teilen

15 Antworten auf diese Frage

Recommended Posts

  • 0

Hallo Lars,

ich vermute mit dem Befehl Token$ ist das am einfachsten zu lösen.
Hier sollte zusätzlich geprüft werden, ob es sich um eine Shopware-Bestellung handelt, bevor diese Logik durchgeführt wird.
Dies kann mit dem Feld Bestellung.Quelle gemacht werden, hier steht im Falle einer Shopschnittstelle der Name der Online-Schnittstelle.

Bitte beachte, dass sich die Bestellnummern der externen Systeme schneiden können und diese so nicht zwingend eindeutig sind. Zusätzlich muss für den Zahlungsabgleich per HBCI noch ein Zahlungszuweisungs-Text in der Online-Schnittstelle hinterlegt werden, wenn die Zahlungen anhand der externen Bestellnummer im Verwendungszweck für die automatische Zahlungszuweisung verwendet werden sollen.

Einfacher ist es hier mit der Bestellnummer von Auction Studio zu arbeiten.

Viele Grüße

Christian

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Christian,

ich verwende diese Mailvorlagen nur in einem für den Shopware Shop angelegtem Verkäuferkonto. Überschneidungen mit anderen Bestellnummern sollte es hier keine geben.

Mein Problem ist leider das ich nicht mit der korrekten Syntax in den "HTML-Vorlagen" vertraut bin. Wir rufe ich hier die Funktion auf? Im Bereich der Dokumentvorlagen bietet AS ja ausreichend Hilfestellung für Variablen und Funktionen.

Danke
Gruß
Lars

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Lars,

eine kurze Erklärung zur Verwendung von Formeln findest Du in der Hilfe von Auction Studio (Menü "? -> Hilfe") unter "Verkaufsabwicklung -> Druck- und Emailvorlagen erstellen und bearbeiten -> Arbeiten mit Formeln".

Eine ausführlichere Erklärung findest du direkt in der Hilfe vom E-Mail Vorlagendesigner.

Viele Grüße
Christian

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Christian,

danke für die Antwort aber die Hilfe beantwortet meine Frage leider nicht. Wie ich die Variablen und Werte in eine HTML-Emailvorlage einfüge ist mir bekannt. Auch die If-Abfragen oder Schleifen sehe ich. Aber wie kann ich eine Funktion auf eine Variable (String) ausführen? Bei den HTML-Vorlagen steht mir der Designer ja nicht zur Verfügung.

Sorry aber ich finde einfach nichts was mir weiterhilft.

Gruß
Lars

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Lars,

um eine Funktion auf eine Variable(String) auszuführen, muss diese einfach als Parameter der Funktion übergeben werden.
Als Beispiel:
In der Variable Bestellung.ExterneBestellNr steht die jeweilige externe Bestellnummer der Bestellung die gerade gedruckt oder als E-Mail versendet werden soll.

Die Funktion Token$ wird im Designer dann wie in Bild1 zu sehen beschrieben.
Diese Funktion gibt also einen String zurück, der entweder ausgegeben oder weiter verarbeitet werden kann.

Wenn man dann diese Funktion anwendet, sagt einem der Designer genau, was an welcher Stelle eingegeben werden muss (Bild2).
An erster stelle soll die Zeichenkette übergeben werden in der die einzelnen Teile getrennt durch das Trennzeichen enthalten sind. Somit muss hier Bestellung.ExterneBestellNr eingegeben werden, da hier immer der variable Wert aus der Bestellung verwendet werden soll. An zweiter stelle muss dann die 0-Basierende Position übergeben werden welcher Teil zurück gegeben werden soll. Dies ist immer der 2.Teil und somit der feste Wert 1. Der letzte Parameter ist das Trennzeichen, welches fest der Wert "-" ist.

Die Funktion kann dann wie eine normale Variable in den Inhalt eines Feldes oder Tabellenzeile geschrieben werden, wo der entsprechende Text ausgegeben werden soll.

Ich hoffe ich konnte Dir das verständlich erklären :)

Viele Grüße

Christian

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Christian,

vielen Dank für deine Ausführung, das war auf jeden Fall verständlich. Das Problem ist nur das ich mich wie gesagt im HTML Editor bewege und den Designer überhaupt nicht zur Auswahl habe. (HTML Vorlage)

Meine Frage ist ja nun wie ich im HTML Editor auf Funktionen zugreifen kann?
(s. Screenshot)

Danke
Gruß
Lars

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Lars,

das habe ich dann falsch verstanden, in einer HTML-Vorlage kann dieser Code nicht verwendet werden (Das ist eine komplett andere Vorgehensweise)
Für diese Art von Vorlagen wird Velocity als Scriptsprache verwendet.
Hier hast du mit folgenden Code auf die externe Bestellnummer zugriff

$Order.GetString("Bestellung.ExterneBestellNr")


Bei folgendem Code sollte der zweite Teil der externen Bestellnummer in ExtOrderNr gespeichert (Code wurde nicht getestet)

#set ($ExtOrderNrParts = $Order.GetString("Bestellung.ExterneBestellNr").Split('-'))
#set ($ExtOrderNr = $ExtOrderNrParts.get(1))


Viele Grüße
Christian

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Christian,

ist kein Problem, vielleicht habe ich mich auch nicht ganz 100%ig ausgedrückt. Also es müsste mit den englischen Bezeichnungen so lauten:


#set ($ExtOrderNrParts = $Order.GetString("Order.ExternalRefCode").Split("-"))
#set ($ExtOrderNr = $ExtOrderNrParts.get(1))


Wenn ich nun $ExtOrderNr an die Stelle schreibe wo es ausgegeben werden soll gibt er jedoch in der Mail "$ExtOrderNr" als Text aus. Muss ich die selbstdefinierte Variable anders aufrufen?

Gruß
Lars

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo Christian,

ich möchte bei der Versandbestätigung noch automatisch den richtigen Tracking-Link erezugen. Dafür brauche ich eine Abfrage nach String-Inhalt ...

Wenn Versender "DHL" enthält dann Tracking = http://....
Wenn Versender "Hermes" usw.

Wir versenden derzeit mit DHL, Hermes, Spedition und 2 Expressdiensten.

Ich müsste eine Abfrage auf "Shipping.CarrierName" nach bestimmten String-Inhalten haben. Ich finde mich in der Apache Doku nicht wirklich zurecht.

Danke
Gruß
Lars

Link zum Beitrag
Auf anderen Seiten teilen
  • 0

Hallo,

das Geburtsdatum des eBay-Users lässt sich nicht über den freien Export abgreifen.

Eine Möglichkeit wäre, das Geburtsdatum des Käufers beim jeweiligen Kontakt in eines der Freifelder einzutragen.
Diese können beim Export der Bestellungen (#foreach ($Order in $Orders)) über $Order.GetCsvString("Buyer.CustomField1") angesprochen und exportiert werden.

MfG Roland

Link zum Beitrag
Auf anderen Seiten teilen
  • -1

Hallo Lars,

solltest du die entsprechende Stelle nicht gefunden, hier ein Link zu den Conditions im Velocity Users Guide:
http://velocity.apache.org/engine/devel/user-guide.html#Conditionals

Hier einfach die If-Anweisung verwenden, nur dass man bei einem String-Vergleich noch Anführungszeichen rum macht.

#if($Order.GetString("Shipping.CarrereName") == "DHL")
...
#end


Viele Grüße
Christian

Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...