Claudiocool Posted March 1, 2020 Share Posted March 1, 2020 Da Presta 1.6.1.x ja mit Bordmitteln keine Möglichkeit sieht, die Gastkonten zu löschen (die braucht hier niemand, weil die Daten sowieso im WWS drin sind), habe ich überlegt, dies mit einem Datenbankeingriff zu machen. Eigentlich wäre das ja: DELETE FROM `ps_customer` WHERE `is_guest`=1 AND`date_add`<'2019-11-01 00:00:00' Damit müssten dann normalerweise alle Gastkonten älter als 1.11.2019 gelöscht werden, funktioniert auch soweit. Der Gedanke wäre jetzt aber, ob man auch einfach bei Bedarf Daten älter als z.B. 3 Monate löschen könnte, um den SQL-Befehl jetzt nicht einfach jedes mal neu umschreiben zu müssen. Hat da jemand eine Idee? Das Blöde ist vermutlich, weil auch die Uhrzeit mit drin ist und das dann etwas aufwändiger sein könnte... Könnte das mit (date_add(NOW(), INTERVAL 2 day)) funktionieren? Und das Ganze dann als Crontab einmal im Monat wäre dann die Sahnehaube auf dem Ganzen. Die Datenbankanbindungen kann man sicherlich so oder so ähnlich hinkriegen.... <?php define('MYSQL_HOST', ''); define('MYSQL_USER', ''); define('MYSQL_PASS', ''); define('MYSQL_DATABASE', ''); @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error()); mysql_select_db(MYSQL_DATABASE) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error()); $update = "DELETE FROM `ps_customer` WHERE `is_guest`=1 AND`date_add`(date_add(NOW(), INTERVAL 2 day))"; $updaten = mysql_query($update); ?> ich hab grad nur einen "scharfen" Server, an dem ich das gerade nicht testen kann. Daher: Könnte das grundsätzlich funktionieren? Link to comment Share on other sites More sharing options...
Wuschel Posted March 1, 2020 Share Posted March 1, 2020 Nur mal interessehalber: Was machst du mit den anderen Tabelleneinträgen, die mit den gelöschten Gastkonten verknüpft sind, um Inkonsistenzen in der Datenbank zu vermeiden? Link to comment Share on other sites More sharing options...
Claudiocool Posted March 1, 2020 Author Share Posted March 1, 2020 (edited) Die werden dann leer angezeigt, sprich, die Namen der Besteller sind dann leer, stört aber nicht weiter. Edited March 1, 2020 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Wuschel Posted March 2, 2020 Share Posted March 2, 2020 Hmm ... die ps_customer hat folgende Interdependenzen (ich hoffe, das sind alle): ps_address ps_cart ps_cart_rule ps_customer_group ps_customer_message ps_customer_message ps_customer_thread ps_customer_thread ps_guest ps_message ps_orders ps_order_return ps_order_slip ps_specific_price Und du befürchtest da auf Dauer wirklich keine Inkonsistenzen? Mutig! Link to comment Share on other sites More sharing options...
SliderFlash Posted March 2, 2020 Share Posted March 2, 2020 vor 9 Stunden schrieb Claudiocool: Da Presta 1.6.1.x ja mit Bordmitteln keine Möglichkeit sieht, die Gastkonten zu löschen (die braucht hier niemand, weil die Daten sowieso im WWS drin sind), habe ich überlegt, dies mit einem Datenbankeingriff zu machen. Eigentlich wäre das ja: DELETE FROM `ps_customer` WHERE `is_guest`=1 AND`date_add`<'2019-11-01 00:00:00' Damit müssten dann normalerweise alle Gastkonten älter als 1.11.2019 gelöscht werden, funktioniert auch soweit. Der Gedanke wäre jetzt aber, ob man auch einfach bei Bedarf Daten älter als z.B. 3 Monate löschen könnte, um den SQL-Befehl jetzt nicht einfach jedes mal neu umschreiben zu müssen. Hat da jemand eine Idee? Das Blöde ist vermutlich, weil auch die Uhrzeit mit drin ist und das dann etwas aufwändiger sein könnte... Könnte das mit (date_add(NOW(), INTERVAL 2 day)) funktionieren? Und das Ganze dann als Crontab einmal im Monat wäre dann die Sahnehaube auf dem Ganzen. Die Datenbankanbindungen kann man sicherlich so oder so ähnlich hinkriegen.... <?php define('MYSQL_HOST', ''); define('MYSQL_USER', ''); define('MYSQL_PASS', ''); define('MYSQL_DATABASE', ''); @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error()); mysql_select_db(MYSQL_DATABASE) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error()); $update = "DELETE FROM `ps_customer` WHERE `is_guest`=1 AND`date_add`(date_add(NOW(), INTERVAL 2 day))"; $updaten = mysql_query($update); ?> ich hab grad nur einen "scharfen" Server, an dem ich das gerade nicht testen kann. Daher: Könnte das grundsätzlich funktionieren? vielleicht hilft dir das weiter https://gist.github.com/julienbourdeau/cca88e986a75e19488c2397f1386a3dc Link to comment Share on other sites More sharing options...
Wuschel Posted March 2, 2020 Share Posted March 2, 2020 3 hours ago, SliderFlash said: vielleicht hilft dir das weiter https://gist.github.com/julienbourdeau/cca88e986a75e19488c2397f1386a3dc Wohl kaum, denn hier geht es um Connections und unverknüpfte Einträge in der ps_guest, also Gäste, die nichts gekauft haben und deshalb nie Kunde geworden sind. Die kann man natürlich jederzeit problemlos löschen. Link to comment Share on other sites More sharing options...
Claudiocool Posted March 2, 2020 Author Share Posted March 2, 2020 Du kannst die anderen auch löschen, weil du es ja ohnehin tun musst, wenn ein Kunde das verlangt. Link to comment Share on other sites More sharing options...
Wuschel Posted March 2, 2020 Share Posted March 2, 2020 1 hour ago, Claudiocool said: Du kannst die anderen auch löschen, weil du es ja ohnehin tun musst, wenn ein Kunde das verlangt. Und? Wie viele Kunden haben es bei dir schon verlangt? Link to comment Share on other sites More sharing options...
Claudiocool Posted March 2, 2020 Author Share Posted March 2, 2020 Da gab es schon einige, die haben das auch sehr deutlich zum Ausdruck gebracht, aber das war schon zu Beginn des Prestashops, weil die ihre Daten nicht löschen konnten, wie in unserem vorherigen Onlineshop. Wir haben dann ein Backup gemacht und getestet, was mit den Bestellungen passiert, allerdings aus dem BO heraus. es gab da keine Probleme. Alternativ könnte man ja die Kundendaten auch mit Nullen füllen, dann sind diese zwar noch da, aber eben nicht mehr sichtbar Link to comment Share on other sites More sharing options...
Shad86 Posted March 3, 2020 Share Posted March 3, 2020 Am 2.3.2020 um 3:32 PM schrieb Claudiocool: Du kannst die anderen auch löschen, weil du es ja ohnehin tun musst, wenn ein Kunde das verlangt. Das ist nur halb richtig. Der Kunde kann gern verlangen das seine Daten gelöscht werden aber wenn er mit den Daten eine Bestellung getätigt hat, hast du für das Finanzamt eine Aufbewahrungsfrist. Und das Finanzamt steht über der DSGVO und dem Datenschutz. 1 Link to comment Share on other sites More sharing options...
Claudiocool Posted March 3, 2020 Author Share Posted March 3, 2020 Die Daten sind in der Buchhaltung gespeichert und insofern ist der Sache dadurch Genüge getan. Ich schreibe mit dem Shop keine Rechnungen und auch die Buchhaltung wird mit einer dafür geeigneten Software erledigt, ich käme nie auf die Idee, das von einer Shopsoftware machen zu lassen. 1 Link to comment Share on other sites More sharing options...
DRMasterChief Posted March 3, 2020 Share Posted March 3, 2020 35 minutes ago, Claudiocool said: Die Daten sind in der Buchhaltung gespeichert und insofern ist der Sache dadurch Genüge getan. Ich schreibe mit dem Shop keine Rechnungen und auch die Buchhaltung wird mit einer dafür geeigneten Software erledigt, ich käme nie auf die Idee, das von einer Shopsoftware machen zu lassen. Na endlich mal einer 😍 👍 und zum Post eins drüber: nein, es steht nicht "drüber", sondern verlangt konformes handeln und da gibt es mittlerweile ganz andere Dinge zu beachten, die fast schon mehr Streß machen als die DSGVO (oder wer glaubt das Prestashop GoBD-konform ist??) Link to comment Share on other sites More sharing options...
Netagent Posted March 7, 2020 Share Posted March 7, 2020 Ich habe das bei meinen Kunden im Zuge der DSGVO Umstellung so geregelt, dass ich in der Kundenverwaltung ein zusätzliches DropDown eingebaut habe, wo man zwischen den Kundengruppen auswählen kann. Dort auf "Gast" und "zuletzt angemeldet am" filtern und man kann ganz elagent die Gast Accounts löschen. (siehe Bild) Bei der Bestellübersicht sind zwar die Namen dann auch verschwunden, aber in den PDF Rechnungen bleiben sie natürlich nach wie vor erhalten. Was ja laut BGB und DSGVO auch so rechtens ist. Link to comment Share on other sites More sharing options...
Claudiocool Posted March 7, 2020 Author Share Posted March 7, 2020 Das wäre in der Tat ein besserer Lösungsansatz als in der Datenbank rumzufuhrwerken. Die einzelnen Abhängigkeiten dürften zwar auch dadurch nicht durcheinandergewürfelt werden, wie ich mittlerweile getestet hatte, die Kundennummern bei den Bestellungen bleiben ja drin und die Kundennummern werden auch da noch korrekt weitergezählt, so dass auch die Rechnungszuordnung weiterhin funktioniert, die ich mir mal vor einiger Zeit eingebaut hatte, um den Kunden zu ermöglichen, ihre Rechnungen aus dem Shop heraus runterzuladen. Bei mir kommen externe Rechnungen dort rein, weil der Shop nicht unsere einzige Einnahmequelle ist und somit die fortlaufenden Rechnungsnummern in der Buchhaltung nicht passen würden. Da man zwar in der Kundengruppe selbst eine Funktion erkennt, die den Kunden aktivierern bzw. deaktivieren soll, die leider aber wirkungslos ist, so dass man dann bei den Kunden insgesamt eine Löschaktion durchführen könnte, wäre der Weg über das Pulldownd dann sicherlich besser. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now