Jump to content
Claudiocool

Gastkonten löschen

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?

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
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!

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Du kannst die anderen auch löschen, weil du es ja ohnehin tun musst, wenn ein Kunde das verlangt.

Share this post


Link to post
Share on other sites
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? ;)

 

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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??) 

Share this post


Link to post
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

Share this post


Link to post
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.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More