Jump to content

Gastkonten löschen


Claudiocool

Recommended Posts

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

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

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

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

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.

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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

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.

Kundenverwaltung.jpg

Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...