Transaktions-Mails über HTTP-API konfigurieren

  • Aktualisiert

Dieses Kapitel richtet sich an Administratoren und Entwickler mit Administratorrechten in Magento 2.

Dieses Kapitel beschreibt, wie Sie den Versand von Transaktions-Mails über die HTTP-API für Magento 2 konfigurieren. Informationen darüber, wie Sie Ihre Transaktions-Mails über die SMTP-API versenden, finden Sie unter Transaktions-Mails über SMTP-API.

Funktionsweise

Der Versand von Transaktions-Mails über die HTTP-API erfolgt über zwei Vorlagen:

  • eine Sender-Vorlage in Magento 2, die allein die Variablen der Transaktion (z. B. den Kundenamen, die bestellten Produkte und so weiter) über die HTTP-API sendet
  • eine Empfänger-Vorlage in Optimizely Campaign, die mithilfe von Feldfunktionen die gesendeten Variablen an die entsprechenden Stellen einfügt und so die fertige, gestaltete Transaktions-Mail erstellt

Das Senden und der Empfang der Variablen erfolgt über die Transaktions-Empfängerliste als Zwischenspeicher.

  1. Die Magento-2-Vorlage sendet die Variablen.
  2. Die Variablen werden in die Transaktions-Empfängerliste geschrieben: jede Variable in ihr entsprechendes Empfängerlistenfeld.
  3. Mithilfe von Feldfunktionen übernimmt die Optimizely Campaign Vorlage die einzelnen Variablen aus der Transaktions-Empfängerliste und platziert sie an die gewünschte Stelle in der Transaktions-Mail.

    Bild: Versand von Transaktions-Mails über die HTTP-API

Konfigurationsschritte

  1. Richten Sie eine Transaktions-Empfängerliste ein.
  2. Konfigurieren Sie die Vorlage in Optimizely Campaign.
  3. Erstellen und aktivieren Sie die Vorlage in Magento 2.
  4. Konfigurieren Sie Transaktions-Mails und übertragen Sie Magento-2-Variablen.

Schritt 1: Transaktions-Empfängerliste einrichten

Beauftragen Sie die Kundenbetreuung mit der Einrichtung einer Transaktions-Empfängerliste. Planen Sie im Vorfeld, welche Variablen Sie aus Magento 2 für Ihre Transaktions-Mails zu Optimizely Campaign übertragen möchten.

Listen Sie alle Magento-2-Variablen auf, für die Sie in Ihrer Transaktions-Empfängerliste ein entsprechendes Empfängerlistenfeld benötigen. Teilen Sie Optimizely zudem die gewünschten Namen der Empfängerlistenfelder mit.

Der Umfang der Transaktions-Empfängerliste ist eingeschränkt. Sie sollten daher generische Namen für die Empfängerlistenfelder beauftragen, z. B. custom_string_1, custom_string_2, custom_date_1 und so weiter).

Schritt 2: Vorlage in Optimizely Campaign erstellen

Erstellen Sie die Vorlage in Optimizely Campaign, fügen Sie die gewünschten Transaktions-Mail-Texte ein (die unveränderlichen, statischen Texte, die alle Empfänger gleichermaßen erhalten sollen) und fügen Sie Feldfunktionen an den Stellen ein, an denen die Inhalte der Magento-2-Variablen stehen sollen,

Feldfunktionen

Feldfunktionen sind Platzhalter, die auf ein bestimmtes Empfängerlistenfeld in Ihrer Transaktions-Empfängerliste verweisen. Die von Magento 2 gesendeten Variablen beziehungsweise die Inhalte der Variablen werden zunächst in die jeweiligen Empfängerlistenfelder Ihrer Transaktions-Empfängerliste geschrieben. Die von Ihnen platzierten Feldfunktion laden im nächsten Schritt den jeweiligen Inhalt aus dem referenzierten Empfängerlistenfeld.

Beispiel

Um einen Transaktions-Mail-Text einrichten, der später jeden Kunden mit seinem Nachnamen begrüßt und das Bestelldatum nennt, benötigen Sie die Variablen salutation (Anrede), lastname (Nachname) und orderdate (Bestelldatum).

Diese drei Variablen-Inhalte werden zunächst in ein entsprechendes Empfängerlistenfeld Ihrer Transaktions-Empfängerliste geschrieben (von Ihrem Magento-2-System über die HTTP-API). Um auf diese Empfängerlistenfelder zuzugreifen, fügen Sie die einzelnen Feldfunktionen in die Optimizely Campaign Vorlage ein und setzen Sie den Namen des jeweiligen Empfängerlistenfeldes in geschweifte Klammern. Um die Variableninhalte aus dem jeweiligen Empfängerlistenfeld der Transaktions-Empfängerliste zu importieren, könnte der statische Text und die Feldfunktionen in Ihrer Optimizely Campaign Vorlage folgendermaßen aussehen:

Hallo, {salutation} {lastname}!
Vielen Dank für Ihre Bestellung vom {orderdate}.

Das Beispiel wird später in der versendeten Transaktions-Mail folgendermaßen angezeigt:

Hallo, Herr Müller!
Vielen Dank für Ihre Bestellung vom 3. August.

Statische Texte und Feldfunktionen in eine Vorlage einfügen

  1. Wählen Sie im Optimizely Campaign Menü Kampagnen > Transaktions-Mails.
  2. Klicken Sie auf Erstellen.

    Bild: Transaktions-Mail erstellen

  3. Ziehen Sie aus dem linken Aktionsbereich den Empfänger-Knoten in die Arbeitsfläche.
  4. Wählen Sie in der Drop-down-Liste Empfängerlisten Ihre Transaktions-Empfängerliste aus.

    Bild: Empfängerlisten-Optionen

    Die Kundenbetreuung hat für Sie eine gesonderte Transaktions-Empfängerliste eingerichtet. Verwenden Sie ausschließlich diese Transaktions-Empfängerliste und keine reguläre Empfängerliste. Ob eine Empfängerliste eine Transaktions-Empfängerliste ist, sehen Sie in der Spalte Transaction API.

  5. Ziehen Sie aus der linken Seitenleiste den Nachrichtenknoten des gewünschten Marketing-Kanals (E-Mail, SMS) in die Arbeitsfläche.
  6. Vergeben Sie im Kontextmenü im Feld Name einen prägnanten Namen für Ihre Transaktions-Mail (z. B. Bestellbestätigung).

    Bild: E-Mail-Knoten Bestellbestätigung

  7. Klicken Sie im Kontextmenü des Nachrichtenknotens auf Inhalt bearbeiten.
  8. Wählen Sie aus der Liste Vorlage die gewünschte Vorlage aus und bestätigen Sie Ihre Auswahl, indem Sie auf Weiter klicken.
  9. Konfigurieren und gestalten Sie die Vorlage für die Transaktions-Mail nach Ihren Anforderungen. Geben Sie einen Betreff ein und fügen Sie in die Inhaltsparagraphen die statischen Texte ein, die alle Empfänger gleichermaßen erhalten sollen. Fügen Sie wiederum an den Stellen, an denen die aus der Magento-2-Vorlage gelieferten Variablen erscheinen sollen, die entsprechende Feldfunktion für das Empfängerlistenfeld der Transaktions-Empfängerliste ein (siehe Beispiel oben).
  10. Klicken Sie auf Schließen.
  11. Verbinden Sie den Empfänger-Knoten mit dem Nachrichtenknoten.
  12. Klicken Sie auf Speichern und schließen.
  13. Um Ihre Transaktions-Mail zu aktivieren und damit den Versand zu starten, wählen Sie sie in der Übersicht aus und klicken Sie auf Starten.

Schritt 3: Vorlage in Magento 2 erstellen

Erstellen Sie in Magento 2 die Vorlage, die die Variablen über die HTTP-API an Optimizely Campaign sendet.

Voraussetzungen

  • Autorisierungs-Code. Für Ihre Transaktions-Empfängerliste in Optimizely Campaign.

    Wählen Sie im Optimizely Campaign Menü Verwaltung > API-Übersicht > Empfängerlisten und wählen Sie die Transaktions-Empfängerliste aus. Klicken Sie auf Autorisierungs-Codes verwalten und kopieren Sie den Autorisierungs-Code aus der Liste. Wenn für die gewählte Empfängerliste noch kein Autorisierungs-Code vorhanden ist, klicken Sie auf Autorisierungs-Code erstellen.

  • Mailing-ID. Für die Vorlage in Optimizely Campaign.

    Wählen Sie im Optimizely Campaign Menü Kampagnen > Transaktions-Mails. Kopieren Sie die entsprechende Mailing-ID der Vorlage aus der Spalte ID.

Konfigurationsmöglichkeiten

Sie haben zwei Möglichkeiten, in Ihrem Magento-2-System eine Vorlage zur Variablen-Übergabe zu konfigurieren:

  1. Verwenden Sie eine in der Standard-Installation von Magento 2 enthaltene Vorlage und passen diese an Ihre Anforderungen an. Wenn Sie sich für diese Option entscheiden, wird der HTML-Code der Vorlage in das Feld Template Content geladen. Der Code enthält die zur Verfügung stehenden Variablen, wie beispielsweise {{trans "%name," name=$customer.name}} (zur Anrede des Kunden mit seinem Namen). Bereinigen Sie die Vorlage vollständig um den HTML-Code und reduzieren Sie die Vorlage auf die Variablen. Mappen Sie im nächsten Schritt die entsprechenden Empfängerlistenfelder Ihrer Transaktions-Empfängerliste in Optimizely Campaign. Weitere Informationen finden Sie unter Mappen ("Zuweisen"): So gehen Sie vor.
  2. Erstellen Sie eine neue, leere Vorlage und fügen die Variablen manuell ein, die an Optimizely Campaign über die HTTP-API gesendet werden sollen.

Folgen Sie den nachfolgenden Schritten, um eine neue, leere Vorlage zu erstellen, die Variablen manuell einzufügen und mit den Empfängerlistenfeldern Ihrer Transaktions-Empfängerliste zu mappen.

  1. Melden Sie sich in Magento-2 mit Administrator-Rechten an.
  2. Wählen Sie Marketing > Email Templates.

    Bild: E-Mail-Vorlagen

    Wenn Sie Vorlagen erstellen beziehungsweise bereits erstellt haben, die an Optimizely Campaign versendet werden, werden diese als Vorlagentyp Episerver angezeigt.

    Bild: E-Mail-Vorlage auswählen

  3. Klicken Sie auf Add New Template.

    Bild: Vorlagenbetreff

  4. Geben Sie im Bereich Template Information die folgenden Daten ein:
      • Template Name. Geben Sie einen Namen für die neue Vorlage ein.
      • Template Subject. Lassen Sie das Feld frei.

        Der Betreff wird später automatisch ausgefüllt – mit dem Betreff der Vorlage, die Sie in Optimizely Campaign erstellt haben.

      • Episerver Campaign. Wählen Sie Enabled aus.
      • Authorisation Code. Geben Sie den Autorisierungs-Code der Transaktions-Empfängerliste in Optimizely Campaign ein.
      • bmMailingId. Geben Sie die Mailing-ID der Vorlage in Optimizely Campaign ein.

    Bild: Vorlageninformation

  5. Geben Sie im Feld Template Information ein, welche Variablen aus dem Magento-2-System an welches Empfängerlistenfeld der Transaktions-Empfängerliste in Optimizely Campaign übertragen werden sollen. Um eine Variable hinzuzufügen, klicken Sie auf Insert Variable...

    Bild: Variable einfügen

  6. Klicken Sie auf die gewünschte Variable.

    Bild: Variable auswählen

    Bild: Eingefügte Variable

  7. Mappen Sie die eingefügte Variable mit dem entsprechenden Empfängerlistenfeld in Optimizely Campaign und fügen Sie bei Bedarf weitere Variablen hinzu, indem Sie auf Insert Variable... klicken.
    Mappen: So gehen Sie vor

    Die Magento-2-Integration von Optimizely Campaign verwendet folgenden Aufbau für das Mapping:

    Name des Empfängerlistenfeldes=Name der Magento-2-Variablen

    Geben Sie die Mapping-Anweisung für jede Variable zeilenweise ein und trennen Sie die einzelnen Variablen/Mapping-Anweisungen mit einem Zeilenumbruch.

    Beispiel:

    lastname={{config path="trans_email/ident_custom1/name"}}
    url={{config path="web/secure/base_url"}}

    Mit den beiden Beispielzeilen mappen und übertragen Sie:

    • in das Transaktions-Empfängerlistenfeld lastname den Wert der Magento-2-Variablen {{config path="trans_email/ident_custom1/name"}}
    • in das Transaktions-Empfängerlistenfeld url den Wert der Magento-2-Variablen {{config path="web/secure/base_url"}}

    Bild: Vorlageninhalt eingeben

  8. Klicken Sie auf Save Template.
  9. Wenn Sie die Vorlage in Ihrem Magento-2-System erstellt haben, müssen Sie diese aktivieren und einem Ereignis (zum Beispiel einem Bestell-Vorgang, einer Newsletter-Anmeldung und so weiter) zuweisen. An welcher Stelle in der Admin-Oberfläche Sie die Vorlage einem Ereignis zuweisen und aktivieren, ist vom Typ des Ereignisses abhängig.

    Beispiel: Um die Vorlage dem Ereignis-Typ Bestellung zuzuweisen und zu aktivieren, führen Sie die folgenden Schritte aus:

    1. Wechseln Sie zu Stores > Configuration.
    2. Klicken Sie im linken Bildschirmbereich auf Sales > Sales Emails
    3. Aktivieren Sie die Vorlage, indem Sie diese im Bereich Order in der Drop-down-Liste New Order Confirmation Template auswählen.
    4. Speichern Sie Ihre Änderungen.

Schritt 4: Transaktions-Mails konfigurieren und Magento-2-Variablen übertragen

Um die Rechnungsanschrift, die Lieferanschrift und die Bestellungen eines Kunden mit der Vorlage in Magento 2 zur Vorlage in Optimizely Campaign zu übertragen, müssen Sie weitere Konfigurationen vornehmen und u. a. eine spezielle Feldfunktion (für den Zugriff auf Bestellungen) in Ihrem Optimizely Campaign Mandanten erstellen.

Magento 2 stellt die Rechnungsanschrift, die Lieferanschrift und die Bestellungen eines Kunden nicht als einfachen Text in einzelnen Variablen zur Verfügung, sondern als HTML-Code. Der HTML-Code muss in einfachen Text umgewandelt werden, damit Optimizely Campaign die Informationen verarbeiten kann.

HTML-Codes in einfachen Text umwandeln

Zur Umwandlung des HTML-Codes in einfachen Text stellt die Magento-2-Integration drei Funktionen zur Verfügung:

getOptivoBillingData( )

Mit der Funktion getOptivoBillingData( ) erhalten Sie Zugriff auf die einzelnen Parameter der Rechnungsanschrift. Die Funktion steht Ihnen über die folgende Anweisung zur Verfügung, hier beispielhaft für die Anrede des Kunden:

{{var order.getOptivoBillingData('salutation')}}

Mit dem Mapping folgenden übertragen Sie in das Empfängerlistenfeld salutation den Rückgabewert des Funktionsaufrufs (Parameter salutation) als einfachen Text:

salutation={{var order.getOptivoBillingData('salutation')}}
Parameter für getOptivoBillingData( )
Nr. Parameter Beschreibung
1 salutation Anrede
2 firstname Vorname
3 middlename zweiter Vorname
4 lastname Nachname
5 company Firma
6 email E-Mail-Adresse
7 telephone Telefonnummer
8 suffix Durchwahl
9 fax Faxnummer
10 street Straße
11 postcode Postleitzahl
12 city Stadt
13 region Region/Bundesland
14 country Land

getOptivoShippingData()

Mit der Funktion getOptivoShippingData( ) erhalten Sie Zugriff auf die einzelnen Parameter der Lieferanschrift des Kunden. Die Funktion steht Ihnen über die folgende Anweisung zur Verfügung, hier beispielhaft für den Nachnamen des Kunden:

{{var order.getOptivoShippingData('lastname')}}

Mit dem folgenden Mapping übertragen Sie in das Empfängerlistenfeld lastname den Rückgabewert des Funktionsaufrufs (Parameter lastname) als einfachen Text:

lastname={{var order.getOptivoShippingData('lastname')}}
Parameter für getOptivoShippingData()
Nr. Parameter Beschreibung
1 salutation Anrede
2 firstname Vorname
3 middlename zweiter Vorname
4 lastname Nachname
5 company Firma
6 email E-Mail-Adresse
7 telephone Telefonnummer
8 suffix Durchwahl
9 fax Faxnummer
10 street Straße
11 postcode Postleitzahl
12 city Stadt
13 region Region/Bundesland
14 country Land

getOptivoOrderData()

Mit der Funktion getOptivoOrderData( ) erhalten Sie Zugriff auf die Bestellungen des Kunden.

Die Funktion zum Zugriff auf Bestellungen unterscheidet sich von den Funktionen zum Zugriff auf die Rechnungsanschrift und die Lieferanschrift. Sie übergeben nicht einzelne Parameter an jeweils ein Empängerlistenfeld, sondern eine Liste mit mehreren Parametern an ein einzelnes Empfängerlistenfeld.

Die Funktion steht Ihnen über die folgende Anweisung zur Verfügung, hier beispielhaft für Produkt-ID, Lagereinheit, Produktname, bestellte Menge und Preis:

{{var order.getOptivoOrderData('product_id','sku','name','qty_ordered','price')}}

Mit dem Mapping folgenden übertragen Sie in das Empfängerlistenfeld order_positions_csv eine Zeichenfolge mit den genannten Bestellinformationen:

order_positions_csv={{var order.getOptivoOrderData('product_id','sku','name','qty_ordered','price')}}
Parameter für getOptivoOrderData()
Nr. Parameter
1 increment_id
2 state
3 status
4 coupon_code
5 shipping_description
6 is_virtual
7 store_id
8 base_discount_amount
9 base_discount_canceled
10 base_discount_invoiced
11 base_discount_refunded
12 base_grand_total
13 base_shipping_amount
14 base_shipping_canceled
15 base_shipping_invoiced
16 base_shipping_refunded
17 base_shipping_tax_amount
18 base_shipping_tax_refunded
19 base_subtotal
20 base_subtotal_canceled
21 base_subtotal_invoiced
22 base_subtotal_refunded
23 base_tax_amount
24 base_tax_canceled
25 base_tax_invoiced
26 base_tax_refunded
27 base_to_global_rate
28 base_to_order_rate
29 base_total_canceled
30 base_total_invoiced
31 base_total_invoiced_cost
32 base_total_offline_refunded
33 base_total_online_refunded
34 base_total_paid
35 base_total_qty_ordered
36 base_total_refunded
37 discount_amount
38 discount_canceled
39 discount_invoiced
40 discount_refunded
41 grand_total
42 shipping_amount
43 shipping_canceled
44 shipping_invoiced
45 shipping_refunded
46 shipping_tax_amount
47 shipping_tax_refunded
48 store_to_base_rate
49 store_to_order_rate
50 subtotal
51 subtotal_canceled
52 subtotal_invoiced
53 subtotal_refunded
54 tax_amount
55 tax_canceled
56 tax_invoiced
57 tax_refunded
58 total_canceled
59 total_invoiced
60 total_offline_refunded
61 total_online_refunded
62 total_paid
63 total_qty_ordered
64 total_refunded
65 base_shipping_discount_amount
66 base_subtotal_incl_tax
67 base_total_due
68 shipping_discount_amount
69 subtotal_incl_tax
70 total_due
71 base_currency_code
72 discount_description
73 global_currency_code
74 order_currency_code
75 shipping_method
76 store_currency_code
77 store_name
78 customer_note
79 created_at
80 updated_at
81 total_item_count
82 shipping_incl_tax
83 base_shipping_incl_tax
84 coupon_rule_name

Nach der Übertragung zu Optimizely Campaign werden die einzelnen Parameter im Empfängerlistenfeld Ihrer Transaktions-Empfängerliste durch ein Semikolon getrennt. Wenn mehrere Produkte übertragen wurden, werden die einzelnen Produkte durch einen Zeilenumbruch getrennt. Die in das Empfängerlistenfeld geschriebene Zeichenfolge entspricht dem Aufbau einer Tabelle, die im CSV-Format gespeichert wurde.

Spezielle Feldfunktion für Bestelldaten erstellen

Wenn Sie Bestelldaten in einer Transaktions-Mail verwenden möchten, müssen Sie eine neue, spezielle Feldfunktion in Ihrem Optimizely Campaign Mandanten erstellen. Diese muss die Template-Engine von Optimizely Campaign nutzen, um die Zeichenfolge in HTML zu überführen. Folgen Sie dazu den folgenden Schritten:

  1. Wählen Sie im Optimizely Campaign Menü Verwaltung > Feldfunktionen.

    Sollte der Menüpunkt Feldfunktionen nicht in Ihrem Mandanten verfügbar sein, wenden Sie sich an die Kundenbetreuung

  2. Klicken Sie auf Hinzufügen.

    Bild: Auf Hinzufügen klicken

  3. Geben Sie unter Allgemein im Feld Name einen prägnanten Namen für die neue Feldfunktion ein, z. B. CSVBestellObjekte.

    Bild: Name eingeben

  4. Wählen Sie in der Drop-down-Liste Typ die Option Velocity aus.
  5. Geben Sie im Bereich Inhalte im Reiter Standard-Ersetzung in das Feld Standard-Ersetzung folgenden Code ein:
    <table>	<tr>		<td>Produkt-ID</td><td>SKU</td><td>Name</td><td>Anzahl</td>		<td>Preis</td>	</tr>#set ($csvContent = $csv.readFromString($user.data.order_positions_csv))#foreach($row in $csvContent)	<tr>#foreach($item in $row)		<td> $item </td>#end	</tr>#end</table>

    Bild: Standard-Ersetzung-Code

  6. Klicken Sie auf Speichern.

    Fügen Sie die Feldfunktion an der gewünschten Stelle in der Optimizely-Vorlage ein. Wenn die Transaktions-Mail versendet wird und das Empfängerlistenfeld order_positions_csv ein CSV-Kontextobjekt enthält, wird in der versendeten Transaktions-Mail eine einfache HTML-Tabelle angezeigt.

    Wenn Sie über HTML-Kenntnisse verfügen, können Die das Layout der Tabelle an Ihre Anforderungen anpassen. Sehen Sie dazu auch Feldfunktionen.