TemplateMail() - E-Mail Vorlage berücksichtigt Subshop nicht

Hallo liebe Shopware Community  Smile

Ich sitze gerade an einem Plugin das Kunden eine E-Mail senden soll. Dazu verwende ich ein eigenes Template mit den Standard-Platzhaltern

{include file="string:{config name=emailheaderplain}"}
{include file="string:{config name=emailfooterplain}"}
{include file="string:{config name=emailheaderhtml}"}
{include file="string:{config name=emailfooterhtml}"}

Die Header & Footer habe ich unter Grundienstellungen > Strorefront > E-Mail Einstellungen unterschiedlich eingerichtet. Im Plugin übergebe ich das jeweilige Shop-Objekt, dass ich dem Order-Objekt entnehme.

$mail = Shopware()
    ->TemplateMail()
    ->createMail(
        'nameMeinesEmailTemplates',
        $meineTemplateVariablen,
        $order->getShop()
    );

Ein var_dump() auf das Shop Objekt zeigt auch, dass der jeweils korrekte Shop übergeben wird. Trotzdem haben alle E-Mails (egal aus welchem Subshop) die E-Mail Header & Footer des Hauptshops und nicht die des jeweiligen Subshops. Gibt es etwas was ich da noch beachten müsste? Ich habe mir die TemplateMail Klasse angesehen, aber es sieht eigentlich alles richtig aus.

Danke schonmal für eure Hilfe!

Zu Dokumentationszwecken beantworte ich meine Frage einfach selbst :smiley:

Damit der Shop die Header & Footer des jeweiligen Subshops läd, müssen die Resourcen des Shops global geladen werden.

$order->getShop()->registerResources(); // TemplateMail()
    ->createMail(
        'nameMeinesEmailTemplates',
        $meineTemplateVariablen,
        $order->getShop()
    );

Im DocBlock der Methode wird aber bereits darauf hingewiesen, dass sie deprecated ist und in Shopware 6.0 entfernt wird. Wenn jemand eine updatesichere Alternative kennt, würde ich mich über einen Kommentar sehr freuen.

 

 

2 „Gefällt mir“

@schwäg schrieb:

Zu Dokumentationszwecken beantworte ich meine Frage einfach selbst :D

Damit der Shop die Header & Footer des jeweiligen Subshops läd, müssen die Resourcen des Shops global geladen werden.

$order->getShop()->registerResources(); // TemplateMail()
->createMail(
‚nameMeinesEmailTemplates‘,
$meineTemplateVariablen,
$order->getShop()
);

Im DocBlock der Methode wird aber bereits darauf hingewiesen, dass sie deprecated ist und in Shopware 6.0 entfernt wird. Wenn jemand eine updatesichere Alternative kennt, würde ich mich über einen Kommentar sehr freuen.

Hey, es scheint ein ähnliches Problem mit dem Mailversand im Backend zu geben. Genauer gesagt hat ein Kunde gerade gerade auf den Mailversand mit SMTP umgestellt. Nun wird als Absendeadresse die richtige Mailadresse des Subshops geladen, allerdings wird versucht über die Mailer-Einstellungen des Hauptshops versucht diese Mail zu versenden, was zu einem Fehler führt. 

Hat jemand eine Idee in welcher Datei man dies überprüfen/recherchieren könnte ? 

Ich öffnete hierzu ein Ticket: 

MfG

teste mal die neueste Shopware 5 Version, da ist das behoben