# Email-Template mit Daten anreichern

**URL:** https://forum.shopware.com/t/email-template-mit-daten-anreichern/72685
**Category:** Programmierung
**Created:** [10. Februar 2021 um 13:39 UTC](https://forum.shopware.com/t/email-template-mit-daten-anreichern/72685 "2021-02-10T13:39:34Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![marvpaul](https://avatars.discourse-cdn.com/v4/letter/m/e36b37/32.png) [@marvpaul](https://forum.shopware.com/u/marvpaul)
#### Post date: [10. Februar 2021 um 13:39 UTC](https://forum.shopware.com/t/email-template-mit-daten-anreichern/72685/1 "2021-02-10T13:39:34Z")

</div>

Ich möchte gerne in der Bestellbestätigungs-Mail zusätzliche Daten anzeigen, die in der Datenbank mit Referenz der bestellten Artikel-IDS&nbsp;abgelegt sind. Ich habe mir dazu eine extra Tabelle **extra\_infos** &nbsp;angelegt in der die Felder **artikel\_id** und&nbsp; **information** vorhanden sind. Ein Beispieleintrag wäre dann zum Beispiel (1a50a6b74c7f42bba47e435a4f042134, “Eine zusätzliche Information”). Wenn der Kunde den Artikel&nbsp;1a50a6b74c7f42bba47e435a4f042134 bestellt, dann will ich in der Email-Bestellbestätigung zusätzlich zu Artikeldaten wie&nbsp;name, Preis usw.&nbsp;“Eine zusätzliche Information” übergeben und anzeigen.

Aktuell habe ich einen Subscriber auf dem Event&nbsp;MailBeforeValidateEvent gesetzt und kann hier zumindest zusätzliche Daten an das Template übergeben:&nbsp;

```
public static function getSubscribedEvents(): array
{
    return [
        MailBeforeValidateEvent::class => 'sendMail',
    ];
}

public function sendMail(MailBeforeValidateEvent $event): void{
    $data = $event->getTemplateData(); 
    $data["test"] = "hey";
    $event->setTemplateData($data);
}

```

Im Email-Template kann ich dann zum Beispiel mit {{test}} den Inhalt meiner Variablen ausgeben lassen - das klappt schonmal.&nbsp;

Leider muss ich aber Daten aus der Datenbank laden die von den Artikel-IDS in der Bestellung des Kunden abhängen. Das Event&nbsp;MailBeforeValidateEvent beinhaltet soweit ich das gesehen habe keine Daten zur Bestellung und den bestellten Artikeln.&nbsp;Ich habe zumindest herausgefunden, dass in der Datenbank-Tabelle&nbsp;mail\_template\_type eine Spalte available\_entities enthalten ist. Mein Verständnis ist, dass die Daten, die in der Spalte angeben sind (zum Beispiel bei der Bestellbestätigung “order” Daten), irgendwie an das Mail-Template übergeben werden. An welcher Stelle passiert das Laden und übergeben der (Order)-Daten an das Template? An welcher Stelle kann ich einhaken und abhängig von der Artikel-ID des bestellten Artikels meine zusätzlichen Informationen aus der Tabelle&nbsp; **extra\_infos&nbsp;** mit übergeben?

Eventuell habe ich auch etwas übersehen und ihr habt eine Idee, wie ich im Event&nbsp; **MailBeforeValidateEvent&nbsp;** die bestellten Artikel-IDS bekommen kann?

---

<div class="post-metadata">

### Author: ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)
#### Post date: [10. Februar 2021 um 13:46 UTC](https://forum.shopware.com/t/email-template-mit-daten-anreichern/72685/2 "2021-02-10T13:46:33Z")

</div>

Also&nbsp;$data = $event-\>getTemplateData(); hat auf jeden Fall die komplette Order.

> <https://github.com/mnaczenski/MNLogMailVariables/blob/master/src/Subscriber/MySubscriber.php>

Benutze das bspw. in meinem Plugin im alle verfügbaren Variablen ins Log zu schreiben.

---

<div class="post-metadata">

### Author: ![marvpaul](https://avatars.discourse-cdn.com/v4/letter/m/e36b37/32.png) [@marvpaul](https://forum.shopware.com/u/marvpaul)
#### Post date: [10. Februar 2021 um 13:50 UTC](https://forum.shopware.com/t/email-template-mit-daten-anreichern/72685/3 "2021-02-10T13:50:44Z")

</div>

Wow Danke Moritz, so schnell hatte ich keine Antwort erwartet.&nbsp;

Ich schau mir das morgen nochmal genauer an! Eventuell war das Problem, das ich das Senden der&nbsp;Bestellbestätigung aus dem Backend heraus getriggert habe (unter&nbsp;E-Mail-Template bearbeiten und dann Test-Email senden). Hier liegen eventuell keine Orderdaten für die Bestellbestätigung vor.&nbsp;

Gibt es denn eine Möglichkeit das Versenden der Bestellbestätigung mit echten Daten zu veranlassen, ohne dafür jedes Mal eine komplette Bestellung im Shop-Frontend aufzugeben?

---

<div class="post-metadata">

### Author: ![marvpaul](https://avatars.discourse-cdn.com/v4/letter/m/e36b37/32.png) [@marvpaul](https://forum.shopware.com/u/marvpaul)
#### Post date: [11. Februar 2021 um 09:10 UTC](https://forum.shopware.com/t/email-template-mit-daten-anreichern/72685/4 "2021-02-11T09:10:34Z")

</div>

Funktioniert alles! Vielen Dank nochmal.
