E-Mail-Templates und Business-Events nach Update auf 6.3.3

Hallo,

ich habe vorgestern das Update auf Version 6.3.3 gemacht und habe seitdem Probleme mit den E-Mail-Templates und den Business-Events.

Beim Update sind wohl ein paar ID´s in der Tabelle mail_template und mail_template_type durcheinandergekommen. Es wurden in der Übersicht der Templates einige leere Zeilen in der Tabelle angezeigt und teilweise keine Mails mehr verschickt (z.B. “Passwort vergessen”) 

Ich habe die IDs dann manuell angepasst (so wie hier beschrieben: https://forum.shopware.com/discussion/67651/passwort-vergessen-e-mail-an-empfaenger-wird-nicht-verschickt). Die Templates werden nun im Backend zwar wieder richtig angezeigt, aber trotzdem nicht verschickt (was vor dem Update einwandfrei funktioniert hat).

Meine Vermutung ist, dass es an der Tabelle event_action liegt. In dieser gibt es eine Spalte “config” mit folgendem Inhalt: {“mail_template_id”:“110715c356164e65a183ab7194a75101”,“mail_template_type_id”:“4234b627fd764a6da0d6d89638b62b6e”}

Die erste ID (mail_template_id) ist ok, die zweite ID (mail_template_type_id) kann ich in der Tabelle “mail_template_type” jedoch nicht finden. Das komische ist jedoch, dass dies auch bei anderen Datensätzen in der Tabelle so ist und diese werden trotzdem verschickt.

Leider kann ich auch keine neuen Business-Events anlegen, weil auch diese im Backend nicht mehr richtig angezeigt werden. Beim Aufruf erscheint folgender JS-Fehler in der Konsole:

TypeError: Cannot read property 'description' of undefined
    at fn (eval at qs (vendors-node.js?16043227021442902:formatted:54077), :3:2259)
    at i (vendors-node.js?16043227021442902:formatted:50093)
    at s.xt [as _t] (vendors-node.js?16043227021442902:formatted:50140)
    at eval (eval at qs (vendors-node.js?16043227021442902:formatted:54077), :3:6206)
    at s.bt [as _l] (vendors-node.js?16043227021442902:formatted:50114)
    at eval (eval at qs (vendors-node.js?16043227021442902:formatted:54077), :3:5720)
    at s.bt [as _l] (vendors-node.js?16043227021442902:formatted:50114)
    at s.eval (eval at qs (vendors-node.js?16043227021442902:formatted:54077), :3:5237)
    at s.e._render (vendors-node.js?16043227021442902:formatted:51257)
    at s.i (vendors-node.js?16043227021442902:formatted:52937)

Die zweite Seite kann allerdings angezeigt werden  Undecided

Hat jemand ähnliche Probleme seit dem Update? Oder kann mir jemand Tipps geben, wie ich diese Fehler beheben kann?

Danke schon mal im Voraus

Johannes

Hallo.

Bei mir sind seitedem fast alle Templates auf english, leider.

Und SW Support sagt, Sie müssen sich im Community um Hilfe schauen, klingt gut oder?

Ich wünsche dir und allen anderen viel Glück, aber so macht es definitiv kein Spass, immer irgendwas geht nicht so wie es sein sollte.

Hallo Johannes,

klingt so als hättest du einen „kaputten“ Eintrag in den Business Events. 
Generell führt das aber nicht dazu, dass keine Mails mehr rausgehen. Generell ist die Tabelle event_action ja einfach nur das, was im Modul Business Events steht. Also da sollte es keine Unterschiede geben.

Werden denn Testmails bspw. über die Mailvorlagen verschickt? Weil das ist ja unabhängig von den Business Events. Wenn das auch nicht funktioniert, liegt die Ursache nicht in event_action.

@LeonardKengji schrieb:

Hallo.

Bei mir sind seitedem fast alle Templates auf english, leider.

Und SW Support sagt, Sie müssen sich im Community um Hilfe schauen, klingt gut oder?

Ich wünsche dir und allen anderen viel Glück, aber so macht es definitiv kein Spass, immer irgendwas geht nicht so wie es sein sollte. 

Unseren Support erreichst du ja nur über account.shopware.com mit einem gültigen Wartungsvertrag (nicht per Telefon o.ä.). Die helfen die auch die Templates wieder einzuspielen. Wenn du die Community Edition hast, musst du das natürlich selbst machen.  

Das einfachste ist eine zweite Installation aufzusetzen und alles händisch rüber zu kopieren. Sollte ja schnell gemacht sein. Kannst ja auch sonst einen kostenlosen Demoshop in deinem Account anlegen und daraus rüber kopieren.

@Moritz Naczenski schrieb:

Hallo Johannes,

klingt so als hättest du einen „kaputten“ Eintrag in den Business Events. 
Generell führt das aber nicht dazu, dass keine Mails mehr rausgehen. Generell ist die Tabelle event_action ja einfach nur das, was im Modul Business Events steht. Also da sollte es keine Unterschiede geben.

Werden denn Testmails bspw. über die Mailvorlagen verschickt? Weil das ist ja unabhängig von den Business Events. Wenn das auch nicht funktioniert, liegt die Ursache nicht in event_action.

Hallo Moritz,

danke schon mal. Ja, die Testmails funktionieren alle. In der Tabelle event_action stehen für jeden Event-Namen (z.B. „customer.recovery.request“) auch zwei Datensätze. Ist das normal?

Einer mit dem Datum des Updates auf 6.3.3 und folgendem Wert in der Spalte „config“:

{"mail_template_id":"110715c356164e65a183ab7194a75101","mail_template_type_id":"4234b627fd764a6da0d6d89638b62b6e"}

Und dann noch einer mit einem älteren Datum und diesem Wert in der config:

{"mail_template_type_id":"3dea3c7c4c03454da7847e7cab805cbb"}

Den Wert „mail_template_type_id“ des ersten Eintrags („4234b627fd764a6da0d6d89638b62b6e“) kann ich aber nirgendwo zuordnen bzw. diese ID gibt es in der Tabelle mail_template_type nicht, den zweiten („3dea3c7c4c03454da7847e7cab805cbb“) schon. Habe auch schon versucht, die ID auf die korrekte mail_template_type_id zu ändern, aber die Mail wird trotzdem nicht verschickt. Die „mail_template_id“ ist korrekt.

Die Ids bei den anderen Events stimmen aber meistens auch nicht und diese Mails (z.B. Bestellbestätigung) werden trotzdem verschickt, was ich aber nicht nachvollziehen kann.

Du kannst das ja auch einfach löschen da, man kann ja jetzt jeden Eintrag über den Admin wieder anlegen.

Hast du denn auch beide Einträge im Admin? Dann kannst du das auch da löschen statt über die DB.

Generell sollte das aber den Mailversand von anderen Mails nicht beeinflussen.-

Das geht leider auch nicht. Immer wenn ich einen neuen Business-Event über das Backend anlegen will, kommt die Fehlermeldung “Bitte fülle alle Pflichtfelder aus”, obwohl alle Felder befüllt wurden. Außerdem erscheint folgende Fehlermeldung in der Konsole:

TypeError: Cannot read property 'description' of undefined
    at fn (eval at qs (vendors-node.js?16043227021442902:2), :3:2259)
    at i (vendors-node.js?16043227021442902:2)
    at s.xt [as _t] (vendors-node.js?16043227021442902:2)
    at eval (eval at qs (vendors-node.js?16043227021442902:2), :3:6206)
    at s.bt [as _l] (vendors-node.js?16043227021442902:2)
    at eval (eval at qs (vendors-node.js?16043227021442902:2), :3:5720)
    at s.bt [as _l] (vendors-node.js?16043227021442902:2)
    at s.eval (eval at qs (vendors-node.js?16043227021442902:2), :3:5237)
    at s.e._render (vendors-node.js?16043227021442902:2)
    at s.i (vendors-node.js?16043227021442902:2)
Ue @ vendors-node.js?16043227021442902:2
api/v3/event-action:1 Failed to load resource: the server responded with a status of 500 (Internal Server Error)
vendors-node.js?16043227021442902:2 Error: Request failed with status code 500
    at LYNF.e.exports (vendors-node.js?16043227021442902:2)
    at Rn+g.e.exports (vendors-node.js?16043227021442902:2)
    at XMLHttpRequest.d.onreadystatechange (vendors-node.js?16043227021442902:2)
Ue @ vendors-node.js?16043227021442902:2
api/v3/event-action:1 Failed to load resource: the server responded with a status of 500 (Internal Server Error)
vendors-node.js?16043227021442902:2 Error: Request failed with status code 500
    at LYNF.e.exports (vendors-node.js?16043227021442902:2)
    at Rn+g.e.exports (vendors-node.js?16043227021442902:2)
    at XMLHttpRequest.d.onreadystatechange (vendors-node.js?16043227021442902:2)

Bin langsam echt am verzweifeln. Habe vor dem Update nur ein paar E-Mail-Templates geändert (also die Texte), keine Templates hinzugefügt oder gelöscht und es hat alles reibungslos funktioniert.

Ein Update auf 6.3.3.1 wird wahrscheinlich auch nichts bringen, oder? Da wurde ja nur der Bug mit dem fehlerhaften Listing gefixt.

Ich kämpfe aktuell mit dem gleichen Fehler, 6.3.3.1 ist aktuell installiert. Was kann ich tun?

Ist denn der Name in der Hauptsprache des Shops für jede Vorlage gefüllt?

Um ehrlich zu sein, verstehe ich gerade nicht was Du meinst.

Kleiner Nachtrag: Ich konnte feststelle, dass es scheinbar nur mit den BE vom Newsletter zusammen hängt. Alle anderen scheinen angezeigt zu werden, wenn ich entsprechend über die Suchleiste im Kopf filtere.

Ich hatte gerade das selbe Problem.

Ursache des Problems ist wenn es einen Eintrag für ein business event gibt dem ein Email template zugeordnet wurde das nicht mehr in der Shopware Installation existiert.

Bei mir waren das die Emails für Zahlungsstatus Paid und Bestellstatus in Bearbeitung. Hier wollte der Kunde keine benachrichtigung und hat das Template kurzer hand gelöscht. Ich habe hier nun die Business Events auch entfernt und schon geht meine Übersicht wieder. Schön ist die Lösung aus meiner sicht zwar nicht aber da der Kunde diese Benachrichtigungen nicht will habe ich dies erstmal so gelößt. Eventuell muss ich in der zukunft das Email Template und das Business Event wieder importieren und nur deaktivieren.

Das ist ein Bug beim Update auf 6.3.3. Da wir nun auch die Business Events vermehrt nutzen, hat uns das auch eiskalt erwischt, und das bei allen unseren Kunden.

Hier werden einfach Business Events zerstört, die kein gültiges Mail-Template mehr haben, nur eine mail_template_type_id, aber eben keine mail_template_id (siehe Screenshot).


Deshalb scheinen die Events dann im Shopware-Admin auch gar nicht auf und man muss die überflüssigen - betrifft bei uns mehrere Events - manuell über die Datenbank löschen.

Da dieser fehlerhafte Business Events vor unserem zweiten in der Datenbank steht, gibt es einen Error bei Ausführung des fehlerhaften Events:

app.ERROR: Could not send mail: Caught 1 violation errors. Error Code:0 Template data:

Nachtrag: So viele Events sind beim Update bei uns betroffen (Update von 6.3.2.1 auf 6.3.5.4). Alle mit Datum 25.03.2020 müssen gelöscht werden, da sie inkonsistent sind und diese Events sonst nicht funktionieren.

Diese müssen nun in unseren Fällen alle gelöscht werden, da redundant und teilweise eben fehlerhaft:

Zum Fixen müssen alle Business Events gelöscht werden, deren created_at Datum vor dem Datum liegt, an dem das Update durchgeführt wurde.

DELETE FROM event_action WHERE created_at < ‚2020-09-22‘

Es gibt auch einen Issue dazu:

Im Prinzip werden durch das Update die neuen Business Events angelegt, allerdings werden die bestehende, die davor existierten und nun nicht mehr konsistent sind, da sie keine mail_template_id haben sondern nur eine mail_template_type_id nicht gelöscht.

Ist schon ein krasser Bug, dass das niemand bei Shopware getestet hat… :thinking:

Hallo @Moritz_Naczenski ,

ich habe das umgedrehte Problem und weiß nicht weiter…
An den Evens habe ich nichts verändert (E-Mail Empfänger auch leer) und trotzdem erhalte ich eine Mail und der Kunde keinerlei Mails. Testmails / Templatemails gehen ohne Probleme als Test raus…wo liegt hier das Problem ??? In der Event Tabelle ?

Typischerweise hast du dann in der Empfänger-Adresse was hinterlegt und dann gehen halt alle mails nur dahin.

ich habe aber den Synchroner Mailversand aktiviert und nicht smtp :upside_down_face:

Hallo,

habe das selbe Problem scheinbar, aber die Daten sind nach einem neueren Update.
D.h., alle doppelten Einträge mit mail_template_type_id kann man löschen?

Ich habe damals alle gelöscht, die älter waren aufgrund des created_at Datums. Doppelte Einträge mit mail_template_type_id würde ich nicht löschen, vielleicht hast du ja schon mehrere Events angelegt, die das gemeinsam haben. Im Prinzip muss jeder Eintrag hier eine mail_template_id UND eine mail_template_type_id haben. Einträge OHNE mail_template_id sind die fehlerhaften, diese scheinen im Admin dann mangels Verknüpfung auch nicht auf.

Die Abfrage

SELECT * FROM `event_action` WHERE config NOT LIKE '%mail_template_id%' 

sollte keine Treffer zeigen, falls ja, sind das vermutlich die defekten.

Hoffe, das hilft dir weiter.