Email Header und Footer

Hallo,
unter SW5 habe ich Header und Footer für alle Mails über
{include file=“string:{config name=emailheaderplain}”}
einpflegen können.

Wie geht das denn in SW6?

Ich finde keine Doku hierzu.

Danke
Robert

Du kannst unter “__Einstellungen->E-Mail-Vorlagen” den Header und Footer Deinem Sales-Channel zuweisen, die werden dann bei allen Mails eingebunden. Glaube verschieden Footer im gleichen Shop wären damit wohl nicht möglich.

@DerKayser schrieb:

Du kannst unter „__Einstellungen->E-Mail-Vorlagen“ den Header und Footer Deinem Sales-Channel zuweisen, die werden dann bei allen Mails eingebunden. Glaube verschieden Footer im gleichen Shop wären damit wohl nicht möglich.

Kleiner Nachtrag hierzu, in der Version 6.1 werden Header und Footer anscheinend noch nicht in den aus dem Backend ausgelösten E-Mails (Status-Wechsel bei Bestellungen, z.B. bezahlt, versendet usw.) hinzugefügt. Scheint daran zu liegen, dass die Mails vom MailService ohne Sales-Channel Kontext versendet werden.

Die durch direkte Kundenaktionen im Shop ausgelösten E-Mails (Bestellbestätigung, Registrierung etc.) scheinen davon nicht betroffen zu sein.

3 „Gefällt mir“

Hat hier jemand Infos oder ein Ticket zu, dass Header & Footer auch in diesen Mails eingebunden werden?

Bei mir klappt es zumindest immer noch nicht…

Bei mir das gleiche Problem, 

Die Text-Emails die bei Statuswechseln versendet werden haben Weder den Festgelegten Header oder Footer für Text-E-Mails.

Generell fände ich es hier besser die HTML-Versionen zu verschicken bzw. diese wahl dem Shopbetreiber zu überlassen. 

Es wäre aber schon ein riesen Schritt in die richtige Richtung wenn zumindest Header und Footer Ihren Weg in die Text-E-Mails fänden. 
Sowohlt die E-Mail-Vorlagen als auch Header & Footer sind dem Gleichen Verkaufskanal zugewiesen.

Hi in die Runde,

ich habe das gleiche Problem, und konnte es so lösen:

In der Datei:  vendor/shopware/core/Checkout/Order/Api/OrderActionController.php

Sorry, die richtige Datei ist hier:  vendor/shopware/core/Content/MailTemplate/Service/MailService.php

Zeile: 113 - 126 (ich poste mal den ganzen Block, damit man ihn bei späteren Updates wiederfinden kann)

$salesChannel = null;

if ($salesChannelId !== null && !isset($templateData['salesChannel'])) {
  $criteria = new Criteria([$salesChannelId]);
  $criteria->addAssociation('mailHeaderFooter');
  /** @var SalesChannelEntity|null $salesChannel */
  $salesChannel = $this->salesChannelRepository->search($criteria, $context)->get($salesChannelId);

  if ($salesChannel === null) {
    throw new SalesChannelNotFoundException($salesChannelId);
  }

  $templateData['salesChannel'] = $salesChannel;
}

Muss die if-Abfrage in der Zeile 115 ersetzt werden durch:

if ($salesChannelId !== null) {

Dadurch wurden bei mir die Status-Mails mit Header und Footer verschickt. Ob das die richtige Lösung ist, kann ich nicht beschwören…

 

Jetzt eine Frage an die Entwickler:

Warum wird die Variable  $salesChannel  auf null gesetzt, und in dem if-Block nicht wieder neu zugewiesen.
Denn, bei dem Statusänderung-Vorgang werden die Werte für  $salesChannelId und $templateData[‚salesChannel‘] übergeben, sodass der if-Block eigentlich die Bedingung nicht erfüllt und somit übersprungen wird.

In der Zeile 138 wird jedoch die (auf null gesetzte) Variable $salesChannel benötigt:

$contents = $this->buildContents($data, $salesChannel);

und in der buildContents Funktion werden dann der Mail-Header und -Footer aus dem $salesChannel abgefragt…

 

Mfg

Hallo zusammen,

@ozv‍ vielen Dank für die Lösungsbeschreibung. Diese scheint aber für die Version 6.1.4 zu sein. Die Version 6.1.5 von  OrderActionController.php wurde wohl deutlich überarbeitet ohne aber das Problem zu beheben. 

Hat jemand bereits eine Lösung für die 6.1.5?

Viele Grüße

@schelb‍ Sorry, ich habe den falschen Pfad aus der IDE kopiert, der richtige Pfad ist:  vendor/shopware/core/Content/MailTemplate/Service/MailService.php

Und noch der Hinweis: Diese Dateien sollten am besten nicht geändert werden, da sie spätestens beim Update überschrieben werden. Für mich ist das ein temporärer quick&dirty Fix, bis die SW 6.2. Version erscheint. Danach muss geprüft werden ob der Bug behoben ist, ober ob die Quelle nicht generell noch irgendwo anders liegt.

Mfg

Macht auch gerne mal ein Ticket dazu auf oder einen Pull-Request auf Github!

Hab’s gerade entdeckt:

Ticket existiert bereits: https://issues.shopware.com/issues/NEXT-6430

Und auf Github hat sich auch schon jemand dazu gemeldet: https://github.com/shopware/platform/issues/654

Laut Kommentar auf Github wird das Problem voraussichtlich in SW 6.2.1 gefixt.

Mfg

1 „Gefällt mir“

Hi.

Gerade das gleiche Problem hier. Gibt es schon einen Zeitplan wann die 6.2.1 veröffentlicht werden soll?

Aktuell müsste mal wohl header und footer manuell in die status emails kopieren damit das funktioniert richtig? Oder gibt es einen funktionierenden Hotfix? Tut der Fix von oben? Sieht mir auf den ersten Blick nicht korrekt aus das $salesChannel zugewiesen wird trotz null.

Gruß Mike