Shopware-Tabellen für Newsletter

Liebe Community,

ich stehe gerade vor der Aufgabe, eine Bereinigung der Newsletter-Abonnenten in Shopware vornehmen zu müssen. Wir haben bspw. Kunden, die gerne unseren Newsletter empfangen würden, aber noch nicht in Shopware eingetragen sind, etc. Die Zustimmung der Kunden für eine Eintragung haben wir und wir würden ungerne allen diesen Kunden „zumuten“, den Registrierungsprozess für den Newsletter noch einmal zu durchlaufen.

Ich würde daher gerne eine entsprechende Bereinigung per SQL durchführen, bin dabei aber auf das Problem gestoßen, dass es anscheinend zwei Tabellen in Shopware gibt, die die entsprechende Information vorhalten, nämlich s_campaigns_maildata und s_campaigns_mailaddresses. Kann mir jemand von Euch erläutern, welche Tabelle welche Funktion hat und wie die beiden Tabellen zusammenhängen? Wir setzen Shopware 5.1.6 CE ein.

Vielen Dank schon einmal!

Christian

Hast Du schon in die Tabellen geschaut?

Hallo NextMike,

ja, in die Tabellen habe ich schon geschaut. Folgende Punkte verstehe ich nicht:

  • Neben der email-Adresse wird bspw. in beiden Tabellen auch redundant die groupID und das added-Datum gespeichert, was aus Normalisierungssicht seltsam erscheint.
  • Die Anzahl der Datensätze in beiden Tabellen sind unterschiedlich, d.h. es gibt datensätze in s_campaigns_mailaddresses, die keine Entsprechung in s_campaigns_maildata haben.

Mit diesen offenen Fragen kann ich leider keine Migration planen. Weiss vielleicht irgendjemand, wie die Daten zusammenhängen?

Sind s_campaigns_maildata nicht verschickte E-Mails?

Kann sich jemand von Shopware mal einklinken.
Ich würd auch gern den Unterschied der beiden Tabellen erfahren.

Danke. :slight_smile:

Hi,

ausschlaggebend, wer einen Newsletter bekommt. ist nur die Tabelle  s_campaigns_mailaddresses.
Beim Versand wird die Adresse genommen und geprüft, ob die Adresse zu einem Kunden gehört/passt und würde für das Personalisieren diese Daten nehmen.
Gibt es keinen Kundensatz, schaut Shopware auch in die Tabelle  s_campaigns_maildata. Daraus werden dann ggf. Daten für das Personailiseren rausgezogen.

Die Tabelle  s_campaigns_maildata wird benötigt, wenn sich einer für den Newsletter registriert und kein Kundenkonto hat. Beim Newsletter Formular kann man auch Adressdaten eintragen. Damit ist dann eine persönlichere Ansprache im Newsletter möglich. Sobald man aber ein Kundenkonto hat, kann Shopware immer alle Daten aus dem aktuellen Kunden ziehen, da der Kunde diese dort auch aktualisieren kann.

Hoffe ich konnte das erklären :wink:

Sebastian

Da ich gerade mal wieder die NL-Empfänger prüfe:

Ein User, der durch den Bestellvorgang geht und sich beim Newsletter anmeldet, landet in s_campaigns_mailaddresses ohne Eintrag in s_campaigns_maildata.
Ein User der sich über das Newsletterformular /newsletter einträgt, landet sowohl in s_campaigns_mailaddresses als auch in s_campaigns_maildata.

Ist das korrekt so?

Noch eine Frage:
Wenn sich ein NL-Empfänger nicht über einen Abmeldelink im erhaltenen Newsletter abmeldet, sondern per E-Mail, kann man den User im Backend auf dem Reiter „Verwaltung > Empfänger“ löschen.
Dadurch wird zwar der Eintrag in s_campaigns_mailaddresses gelöscht, aber nicht in s_campaigns_maildata. Warum nicht?