BoKr Posted April 27, 2013 Share Posted April 27, 2013 (edited) 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. Edited May 9, 2013 by B.Köring (see edit history) Link to comment Share on other sites More sharing options...
BoKr Posted April 29, 2013 Author Share Posted April 29, 2013 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 More sharing options...
BoKr Posted May 3, 2013 Author Share Posted May 3, 2013 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 More sharing options...
BoKr Posted May 8, 2013 Author Share Posted May 8, 2013 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 More sharing options...
eleazar Posted May 8, 2013 Share Posted May 8, 2013 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 1 Link to comment Share on other sites More sharing options...
BoKr Posted May 8, 2013 Author Share Posted May 8, 2013 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 More sharing options...
eleazar Posted May 8, 2013 Share Posted May 8, 2013 (edited) 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 May 10, 2013 by eleazar (see edit history) 1 Link to comment Share on other sites More sharing options...
BoKr Posted May 8, 2013 Author Share Posted May 8, 2013 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 More sharing options...
eleazar Posted May 8, 2013 Share Posted May 8, 2013 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. 1 Link to comment Share on other sites More sharing options...
guest* Posted May 9, 2013 Share Posted May 9, 2013 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 1 Link to comment Share on other sites More sharing options...
BoKr Posted May 9, 2013 Author Share Posted May 9, 2013 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 More sharing options...
Lockesoft Posted May 10, 2013 Share Posted May 10, 2013 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 1 Link to comment Share on other sites More sharing options...
eleazar Posted May 10, 2013 Share Posted May 10, 2013 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 More sharing options...
BoKr Posted May 12, 2013 Author Share Posted May 12, 2013 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 Link to comment Share on other sites More sharing options...
Lockesoft Posted May 12, 2013 Share Posted May 12, 2013 (edited) Der Ablauf ist dort allerdings auch nicht anders. In beiden Majorversionen sollte zum einen das Umwandeln über den "normalen" Anmeldeweg funktionieren, oder halt eben die zwei beschriebenen anderen Wege. Edited May 12, 2013 by Lockesoft (see edit history) 1 Link to comment Share on other sites More sharing options...
guest* Posted May 12, 2013 Share Posted May 12, 2013 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 1 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