Jump to content

[erledigt] ehemaliger Gast kann sich nicht als Kunde registrieren


Recommended Posts

Hallo

 

Uns ist gestern ein Problem aufgefallen unter prestashop 1.4.9. Eine Kundin wollte sich registrieren, konnte dieses aber nicht, weil der Shop festgestellt hat, dass die E-Mail-Adresse schon benutzt wird.

Der Hintergrund ist, dass sie sich zuvor schon als Gast bei uns registriert hat/bzw. bestellt hat.

 

Ich finde, das dürfte nicht der Fall sein. Eigentlich, müsste sich der Shop doch freuen wenn ein zuvor registrierter Gast sich nun als richtiger Kunde registrieren möchte.

post-402975-0-79086100-1367060140_thumb.gif

Edited by B.Köring (see edit history)
Link to comment
Share on other sites

Ich muss meine Frage hier noch einmal pushen.

 

Es ist mir schon eminent wichtig und ich finde nirgends eine Erklärung dazu.

Daher wäre es klasse, wenn Ihr mal nachsehen würdet bitte, wie es bei Euch ist.

Entweder ist es ein Fehler bei uns oder aber es ein Fehler (so sehe ich es zur Zeit) von

Prestashop (149).

 

Danke

Link to comment
Share on other sites

Liebe Moderatoren, könntet Ihr mit bitte sagen, ob das obige aufgezeigte Verhalten richtig ist oder ob bei uns was schief gelaufen ist?

 

Kann doch nicht sein, dass ein wiederkehrender Gast, der sich registrieren möchte, die Fehlermeldung bekommt, es ginge nicht, da seine Emailadr schon in der Prestadatenbank ist (Gastbestellung ...).

Link to comment
Share on other sites

Liebe Moderatoren, könntet Ihr mit bitte sagen, ob das obige aufgezeigte Verhalten richtig ist oder ob bei uns was schief gelaufen ist?

 

Kann doch nicht sein, dass ein wiederkehrender Gast, der sich registrieren möchte, die Fehlermeldung bekommt, es ginge nicht, da seine Emailadr schon in der Prestadatenbank ist (Gastbestellung ...).

Link to comment
Share on other sites

Hi Boris,

 

ich bin zwar kein Mod, versuchs aber trotzdem mal. ;)

 

Schau mal in /classes/Customer.php nach, ob in der function customerExists in Zeile 261 folgendes steht:

 

.($ignoreGuest ? 'AND `is_guest` = 0' : ''));

 

Die komplette Funktion sollte wie folgt aussehen:

 

public static function customerExists($email, $return_id = false, $ignoreGuest = true)
{
  if (!Validate::isEmail($email))
  return false;
 $result = Db::getInstance()->getRow('
 SELECT `id_customer`
 FROM `'._DB_PREFIX_.'customer`
 WHERE `email` = \''.pSQL($email).'\''
 .($ignoreGuest ? 'AND `is_guest` = 0' : ''));
 if (!$result)
  return false;
 return $return_id ? (int)$result['id_customer'] : isset($result['id_customer']);
}

 

Damit sollte es eigentlich funktionieren.

 

Viele Grüße

Rainer

  • Like 1
Link to comment
Share on other sites

Rainer, tausend dank für die schnelle Antwort. Eigentlich war meine Frage ja auch nicht ausschließlich an mods gerichtet. Ich muss ja erstmal wissen, ob es 'by design' so ist oder nicht. Wie Du mir sagst und gezeigt hast, ist es nicht 'by design' so und es sollte so funktionieren, wie ich es angenommen hatte und meine Kunden gern hätten.

 

Da ich nie an den classes was gedreht habe und der code identisch ist (1.4.9):

/**
  * Check if e-mail is already registered in database
  *
  * @param string $email e-mail
  * @param $return_id boolean
  * @param $ignoreGuest boolean, to exclude guest customer
  * @return Customer ID if found, false otherwise
  */
public static function customerExists($email, $return_id = false, $ignoreGuest = true)
{
  if (!Validate::isEmail($email))
  return false;
 $result = Db::getInstance()->getRow('
 SELECT `id_customer`
 FROM `'._DB_PREFIX_.'customer`
 WHERE `email` = \''.pSQL($email).'\''
 .($ignoreGuest ? 'AND `is_guest` = 0' : ''));
 if (!$result)
  return false;
 return $return_id ? (int)$result['id_customer'] : isset($result['id_customer']);
}

 

stehe ich nun auf dem Schlauch, da das nicht die Lösung war. Aber ich weiß nun, dass es eine Ursache bei unser Installation geben muss leider :(

Link to comment
Share on other sites

Ja, das habe ich inzwischen auch gemerkt. Und es scheint so, dass dieses Verhalten bis einschl. PrestaShop 1.4.10 tatsächlich so gewollt ist: Der Gast muss sich unter einer anderen Mail-Adresse anmelden, um einen Kundenbereich zu erstellen.

 

Erst ab 1.5.x ist das abgestellt, zumindest ist das bei 1.5.4.1 so. Da kannst du deinen Gastaccount problemlos umwandeln, ohne dass die Fehlermeldung auftritt.

 

Nachtrag:

Da war ich auf dem falschen Dampfer. Es geht doch! S. unten Posts Nr. 12 und 13.

Edited by eleazar (see edit history)
  • Like 1
Link to comment
Share on other sites

Oh,

 

das ist ja nun mal interessant. Klasse, dass Du Dir die Mühe gemacht hast nachzuschauen!

 

Du hast einfach die Erfahrung und mir fehlen die Mittel sowas selbst zu eruieren aber ich arbeite dran. Zur Zeit läuft mein erstes Probeupdate auf einer Subdomain. 1.4.9 mit Upgradmodul auf 1.4.10 und dann gehe ich nach Empfehlung manuell auf 1.5.2 und dann wohl wieder mittels Modul auf 1.5.3.1 erstmal. Weiter traue ich mich mit dem Produtivshop noch nicht.

 

Was ich aber sagen will ist, ich werde einfach die Tage in verschiedene Subdomains verschiedene Prestaversionen mit Vanillaeinstellungen ablegen. So könnte ich dann mehr oder weniger manche Ungereimtheit selbst einzirkeln. Bleibt nur verwunderlich, warum bei 1.4.9 der Code ja scheinbar schon vorhanden zu sein scheint, aber das ist zu kompliziert.

Link to comment
Share on other sites

Weiter würde ich auch im Moment gar nicht gehen, aber ich glaube, den Zwischenschritt von 1.4.9 zu 1.4.10 kannst du dir sparen. Und wenn du eh manuell vorgehen willst, dann auch den auf 1.5.2. Oder hat jemand andere Erfahrungen gemacht?

 

Und was den Code anbelangt - da werden offenbar die Weichen anderswo im Programm gestellt. Denn selbst wenn man einen Teil des Codes von 1.5.4.1 hier einfügt, bleibt die Fehlermeldung.

  • Like 1
Link to comment
Share on other sites

Hallo Boris,

 

Du hattest ja mit 1.4.9 begonnen soweit ich mich erinnern kann. Hier ist kein Zwischenschritt nötig auf 1.4.1.0. Aber bitte beachte die weiteren Dinge wie mit Module und dein speziell angepasstes Theme. Die solltest du unbedingt vor dem Upgrade, egal ob manuell oder nicht deinstallieren (oder zumindest deaktivieren) und auf Prestashop Theme umstellen bevor du upgradest. Kauf und kostenlose Module dann wieder nach und nach aktivieren nach dem Upgrade und ausprobieren. Die meisten kostenlosen funktionieren dann nämlich nicht mehr unter 1.5.

 

Und das mit dem Gastkonto für PS 1.4. ist leider wirklich wie Rainer schon geschrieben hat. Wenn der Kunde als Gast einmal gekauft hat, dann kannst du nur das Account komplett löschen, damit die Mailadresse wieder freigegeben wird. Eine Zusammenführung von Konten unter PS 1.4. war leider noch fehlerhaft.

 

LG

  • Like 1
Link to comment
Share on other sites

Da müsste es ja nun ein Modul geben, welches alle Emailadr. der Gastkonten sofort oder nach x Tagen (14+1) oder wie auch immer umbenennt. Z.b. mit einem Präfix wie 'test' oder so, dann bleiben die Sachen logisch findbar.

 

Vielen Dank nochmal für Eure Tipps und die Aufklärung. Wünsche noch einen schönen Feiertag!

Link to comment
Share on other sites

Hallo zusammen,

 

auch wenn das jetzt bereits als erledigt markiert ist.

 

Zu allererst einmal kann ich den Fehler hier nicht nachstellen. Ich habe in einem 1.4.8.2 jetzt wiederholt Gastbestellungen durchgeführt und diese E-Mailadressen danach allesamt ganz normal über den link "Bitte melden Sie sich an" oben auf der Seite in Kundenkonten umwandeln können. Das war das eine.

Das Zweite ist: Ich glaube hier liegt ein kleiner Denkfehler vor. Auch wenn ich den Fehler hier nicht nachstellen kann. Unabhängig davon kann der Kunde durchaus einen Gastzugang in ein Kundenkonto umwandeln ohne den Kunden zu löschen, das geht einfach über die guest-tracking.php.

Mit einer (der letzten?) Bestellnummer und der E-Mailadresse anmelden und weiter unten auf der Seite ein Passwort angeben. Fertig

 

Als zweiten Weg bietet das Back-Office unter Bestellungen, nach der Auswahl einer / der letzten Bestellung die Möglichkeit den Gastzugang umzuwandeln. Ein Klick und der Kunde bekommt ein zufälliges Passwort zu geschickt.

 

Tritt der Fehler denn bei allen Gästen auf?

Oder könnte sich jemand evtl. schon einmal den Gastzugang umgewandelt haben?

In dem Fall sollte eine erneute Gastbestellung auch nicht möglich sein.

Das müsst sich evtl. über die Datenbank herausfinden lassen, wenn man die Tabelle Customer nach der E-Mailadreese sortiert enzeigen lässt, sollten alle Vorkommen einer E-Mailadresse schnell zu sehen sein und wenn bei einer Stelle eben eine 0 im Feld "is_guest" steht. hat das schon jemand umgewandelt

 

Nur so ein paar Gedanken dazu....

 

LG Klaus / Lockesoft

  • Like 1
Link to comment
Share on other sites

Hallo Klaus,

 

auutsch! An den Link Gastbestellung auf der Bestellbestätigung habe ich nicht gedacht.

Hab's mit 1.4.9 gerade auch nochmal ausprobiert und es geht tadellos, wenn man seine Bestell-Nr. und die E-Mail eingibt. Und da ist auch schon die "Registirierung" mit der Eingabemöglichkeit für das Passwort, um den Account in ein Kundenkonto umzuwandeln. ;)

 

Anschließend bekommen ich dann die Meldung:

 

Ihr Gaskonto wurde erfolgreich in ein Kundenkonto umgewandelt. Sie können sich jetzt unter anmelden.

 

Und ungeachtet der Schreibfehler in den Meldungen funktoniert auch das. :)

 

Ich ziehe meinen Post #7 daher zurück.

Link to comment
Share on other sites

Gut es geht.

 

Allerdings werde ich die Anleitung dazu nun wohl nicht in dier autentication.tpl oder sonst wo hin rein schreiben. Allerdings wird ja wohl kaum jeder Kunde, den von Euch beschriebenen Weg über Logik und intuitive Handlungsweise selbst finden.

 

Also muss ich zusehen, wie ich auf den Presta V1.5er Zug aufspringen kann, sobald das upgrade 1.4.9 -1.5 irgendwann mal klappen sollte auf dem Testserver :wacko:

Link to comment
Share on other sites

Hallo Boris,

 

erspare dir den Zwischenschritt mit PS 1.4.10 mit dem 1-Klick-Upgrade-Modul bitte nicht. Hatte gestern wieder einen gecrashten Shop.

Am Besten ist, du verzichtest wirklich auf das Modul und machst direkt das Upgrade manuell. Es gibt Probleme mit dem 1-Klick-Modul und Server die mit cgi oder fast-cgi laufen. Das Modul erkennt kein mod_rewrite und crasht dann alle Links. Egal was auch immer ich da eingestellt habe unter SEO & Friendly URL's, die .htaccess bleibt fehlerfaht und der Debug_Modus zeigt mir Fehler auf overrides/classes/Link.php, Hooks und auch canonical. Wieder einmal habe ich das als Fehler gemeldet. Prestashop ignoriert einfach, dass cgi und fast-cgi, und das sind nicht wenige Provider die damit fahren, mod_rewrite NICHT erkennt und dies auch einen Einfluss hat bei Upgrades mit dem 1-Klick-Upgrade.

Wenn du also ein Upgrade machst, dann clone den Shop und mache das Upgrade bitte nur manuell. Die Errors die dann in der XML angezeigt werden sind wirklich nur Warnungen, die Shops laufen aber ohne Probleme.

 

LG

  • Like 1
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...