Hallo,
wir nutzen für Newsletterversand ein externes System.
Aktuell ist die Anmeldung zum Newsletter über den Shop oder während des checkouts möglich, dabei wird die DB des Shops verwendet. Im Laufe des Tages erfolgt dann ein Abgleich der beiden DBs (also Shop DB zu Newsletter-Programm DB). Dies wird durch das Newsletterprogramm iniziiert und hat dabei folgende SQL-Anweisung
SELECT * FROM tnewsletterempfaenger WHERE nAktiv = 1
Also werden nur die Empfänger genommen, die den Newsletter beim double-opt-in bestätigt haben.
Abmeldung kann dann über Shop erfolgen oder bei Versand des Nesletters.
Wenn die Abmeldung über den Newsletter erfolgt fliegt der Empfänger aus der Empfängerliste raus.
Meldet sich ein Kunde aber direkt im Shop ab, so erfolgt kein Abgleich der beiden Datenbanken und der abgemeldete Empfänger würde weiter den Newsletter erhalten.
Ein vorheriges komplettes Löschen der Empfänger aus der Newsletter DB mit anschließendem Neuimport ist dahergehend nicht gut, da dann die eindeutige ID für die Abmeldung nicht mehr passt und es so zu einer Fehlermeldung kommen würde.
Meine Idee wäre jetzt, ist es möglich die obige Anweisung so zu erweitern, dass der Abgleich so stattfindet, dass alle Empfänger die in der Newsletter DB sind und nicht in der Shop DB (natürlich bezogen auf den Eintrag Newsletter) rausfliegen.
Natürlich soll auch weiterhin die erste Anweisung erhalten bleiben, also nur Empfänger die dem Newsletterversand zugestimmt haben sollen auch importiert werden.
Ist so was möglich und wie könnte eine entsprechende Anweisung aussehen (da kenn ich mich nicht aus).
Danke und schönen Abend
Abgleich von 2 Datenbanken
Re: Abgleich von 2 Datenbanken
Mach bei der Abmeldung vom Newsletter doch den State nAktiv = 0 und lösch die Mailadresse bzw. ersetz sie durch einen Dummy. Zuordnung kann dann weiter über die eindeutige ID erfolgen. Und dann halt im Newesletter Tool ein DELETE * FROM newsletter as nl LEFT JOIN tnewsletterempfaenger as tn ON tn.Eindeutigeid = nl.Eindeutiegeid WHERE tn.nAktiv = 0.
Re: Abgleich von 2 Datenbanken
Beide Datenbanken / Tabellen sind am selben sql/MySQL Server? sehe ich das richtig dass in der DB vom Shop nur die Abmeldungen gespeichert sind? Und in der Newsletter DB die Anmeldungen? Falls ja, ist eine entsprechende query kein Problem.
Ich bin zwar ein Mädel, aber nicht doof.
Re: Abgleich von 2 Datenbanken
Moin,
@Baam wie ich das umsetzen könnte
@marcibet: Beide DBs sind auf dem selben Server.
In der Shop DB werden die Anmeldungen gehandelt (entweder Anmeldung beim Checkout oder über das Formular auf der Shopseite).
Abmeldung kann auf effektiv 3 Arten erfolgen:
- Aus einem versendeten Newsletter => geht dann auf die DB vom Newsletter und wird dort ausgetragen, alles ok
- Über das Formular im Shop => wird aus der Shop DB ausgetragen => Abgleich zur Newsletter DB derzeit offen
- In der double-opt-in Bestätigungsmail ist auch gleich ein Link zur Abmeldung drin => wird aus der Shop DB ausgetragen => Abgleich zur Newsletter DB derzeit offen
Ich hab derzeit halt immer noch ggf. die offen, die sich im Shop abmelden oder gleich wieder über die Anmeldemail.
Bei der Konfiguration des automatischen Imports kann ich wie schon erwähnt diese Anweisung vergeben:
SELECT * FROM tnewsletterempfaenger WHERE nAktiv = 1
Und hier wäre es für mich halt ideal, wenn diese Anweisung jetzt noch erweitert würde, damit die, die sich über die Shop DB ausgetragen haben auch aus der Newsletter DB rausgeschmissen werden. Natürlich unter Beachtung derer die ggf. noch nicht auf den Bestätigungslink gedrückt haben.
@Baam wie ich das umsetzen könnte
@marcibet: Beide DBs sind auf dem selben Server.
In der Shop DB werden die Anmeldungen gehandelt (entweder Anmeldung beim Checkout oder über das Formular auf der Shopseite).
Abmeldung kann auf effektiv 3 Arten erfolgen:
- Aus einem versendeten Newsletter => geht dann auf die DB vom Newsletter und wird dort ausgetragen, alles ok
- Über das Formular im Shop => wird aus der Shop DB ausgetragen => Abgleich zur Newsletter DB derzeit offen
- In der double-opt-in Bestätigungsmail ist auch gleich ein Link zur Abmeldung drin => wird aus der Shop DB ausgetragen => Abgleich zur Newsletter DB derzeit offen
Ich hab derzeit halt immer noch ggf. die offen, die sich im Shop abmelden oder gleich wieder über die Anmeldemail.
Bei der Konfiguration des automatischen Imports kann ich wie schon erwähnt diese Anweisung vergeben:
SELECT * FROM tnewsletterempfaenger WHERE nAktiv = 1
Und hier wäre es für mich halt ideal, wenn diese Anweisung jetzt noch erweitert würde, damit die, die sich über die Shop DB ausgetragen haben auch aus der Newsletter DB rausgeschmissen werden. Natürlich unter Beachtung derer die ggf. noch nicht auf den Bestätigungslink gedrückt haben.
Re: Abgleich von 2 Datenbanken
Na dann erweitere den Code fuer die beiden Abmeldungen die derzeit nur auf die shop Tabelle gehen dass sie auch gleich die Tabelle in der NL DB aktualisieren. Also ein zusätzliches Update Statement im Code. Alternativ kannst du auch mit trigger arbeiten falls MSSQL oder mysql
https://sirmark.de/computer/mysql/mysql ... -1288.html
https://sirmark.de/computer/mysql/mysql ... -1288.html
Ich bin zwar ein Mädel, aber nicht doof.
Re: Abgleich von 2 Datenbanken
Erwähnte ich schon, dass ich von dem Code keine Ahnung habe.marcibet hat geschrieben: ↑26. Mai 2020 06:39 Na dann erweitere den Code fuer die beiden Abmeldungen die derzeit nur auf die shop Tabelle gehen dass sie auch gleich die Tabelle in der NL DB aktualisieren. Also ein zusätzliches Update Statement im Code. Alternativ kannst du auch mit trigger arbeiten falls MSSQL oder mysql
Diese SQL-Anweisung hat mir damals derjenige reingeschrieben der mir den Abgleich konfiguriert hat. Allerdings ist der in dem business nicht mehr tätig sonst hätte ich dort nachgefragt.
Re: Abgleich von 2 Datenbanken
Hat evtuell jemand eine Idee wie der Code dafür aussehen müsste
Danke
Danke
Re: Abgleich von 2 Datenbanken
Code: Alles auswählen
delete FROM tnewsletterempfaenger WHERE FELD_E_MAIL_ADRESSE = 'KUNDEN_E_MAIL_ADRESSE';
FELD_E_MAIL_ADRESSE muss mit dem passenden Spaltennamen aus der Datenbank ersetzt werden
KUNDEN_E_MAIL_ADRESSE ist die E-Mail Adresse des austragenden Kunden
Das SQL Statement löscht den kompletten Eintrag aus der Datenbank.
Wenn beides auf dem gleichen Server läuft, ist das doch ohnehin ein Murks, sowas über zwei Datenbanken laufen zu lassen.
Re: Abgleich von 2 Datenbanken
Das kann sicher sein, aber ich bin da einfach nicht so in der Sache drin, dass ich das beurteilen kann.
Danke Dir für das Statement
Re: Abgleich von 2 Datenbanken
Ich würde tunlichst die Finger davon lassen irgendwelche SQL Statements irgendwo einzubauen wovon du keine Ahnung hast..... ist ja wie bei versteckte Kamera hier.
Ich bin zwar ein Mädel, aber nicht doof.
Re: Abgleich von 2 Datenbanken
Wenn ich da was mache werde ich eine Sicherung haben und einen Zest machen.
Aber trotzdem Danke für den Hinweis
Aber trotzdem Danke für den Hinweis
Re: Abgleich von 2 Datenbanken
Wer brauch den eine Sicherung... Das macht man kurz auf dem Produktionsserver und gut ist....Wenn ich da was mache werde ich eine Sicherung haben und einen Zest machen.
Aber trotzdem Danke für den Hinweis
https://img.ifunny.co/videos/c40e882817 ... 3aa4_1.mp4
Re: Abgleich von 2 Datenbanken
Genau so Beiträge sind notwendig, verwässert alles, Nur unnütz.koshop hat geschrieben: ↑26. Mai 2020 16:00
Wer brauch den eine Sicherung... Das macht man kurz auf dem Produktionsserver und gut ist....
https://img.ifunny.co/videos/c40e882817 ... 3aa4_1.mp4
Wenn mir jemand offen und ehrlich sagt lass die Finger weg Du hast keine Ahnung ist mir das tausend mal lieber als so ein Schrott.
Vielleicht kennst Du Dich da ja besser aus, ist auch ok.
Aber nimm doch einfach einen passenden thread für Deine Spässe dazu.
Und bitte verschone mich mit noch einer Antwort.
Denen die was zum Thema beigetragen haben ein herzliches und ehrliches DANKE.
Re: Abgleich von 2 Datenbanken
Ich denke, es ist etwas umfangreicher. Wenn die Anmeldung im Shop erfolgt und die Abmeldung über das Newslettersystem würde im Shop weiterhin das Abo angezeigt. Mit der Synchronisierung in nur eine Richtung würde das Abo vom Shop erneut im Newslettersystem erstellt.heja hat geschrieben: ↑26. Mai 2020 06:34 ...
Abmeldung kann auf effektiv 3 Arten erfolgen:
- Aus einem versendeten Newsletter => geht dann auf die DB vom Newsletter und wird dort ausgetragen, alles ok
- Über das Formular im Shop => wird aus der Shop DB ausgetragen => Abgleich zur Newsletter DB derzeit offen
- In der double-opt-in Bestätigungsmail ist auch gleich ein Link zur Abmeldung drin => wird aus der Shop DB ausgetragen => Abgleich zur Newsletter DB derzeit offen
...
Wenn es wirklich "nur" um den Abgleich von Shop zu Newslettersystem geht, dann würde ich mit 2 Abfragen arbeiten.
DELETE mit Subselect Newsletter=false und danach
INSERT mit Subselect Newsletter=true
-
- Information
-
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 74 Gäste