Jump to content

Artikel lassen sich nicht zum Warenkorb hinzufügen


Bikehit

Recommended Posts

Hallo.

Wir haben sowohl im Frontend als auch im Backend, dass teilweise keine Artikel zum Warenkorb bzw. zu einer Bestellung hinzugefügt werden können. Die Probleme hängen vermutlich zusammen.

Im Backend erscheint folgende Fehlermeldung: "Es existiert bereits eine Bestellung in diesem Warenkorb. Artikel kann leider nicht zum Warenkorb hinzugefügt werden." Der Debug-Modus gibt keine zusätzlichen Fehlermeldungen aus.

Im Frontend werden Artikel teilweise nicht zum Warenkorb hinzugefügt (trotz Bestand) und es erscheint bei mehreren Kunden die Meldung "There are no more items in your cart." Das Frontend-Problem konnten wir unsererseits bisher nicht reproduzieren, da alle Tests funktionierten.

Wir sind für jede Hilfestellung dankbar, da wir aktuell keine Idee haben, wodurch das Problem ausgelöst wird.

 

Edited by Bikehit (see edit history)
Link to comment
Share on other sites

Willkommen im Forum!

Dieses Unterforum ist wie folgt beschrieben: "Bitte hier nur evtl. entdeckte BUGS angeben. Hier gehören keine Server-Fehler oder sonstige Fehlermeldungen hinein." Hier sollen eigentlich keine Fragen beantwortet werden, dein Post wird hier wohl auch weniger gelesen als in anderen Bereichen!

Leider fehlen alle wichtigen Infos wie Shopversion, PHP-Version, History (alter oder neuer Shop, wurde an der Datenbank gebastelt (denn das sieht nach einem Fehler in der Datenbank aus)).

Link to comment
Share on other sites

Wir verwenden PS 1.7.5.1 und PHP-Version 7.2. Der Shop ist vor über einem halben Jahr umgezogen (vorher Version 1.7.2.x). Das Problem tritt allerdings erst seit ca. 1 Monat auf. Der Umzug erfolgte zum wesentlichen Teil mit dem Modul MigrationPro. Dieses verursachte ein paar Probleme in ein paar DB Tabellen, welche manuell gefixt wurden. Es ist nicht auszuschließen, dass es weitere Probleme verursacht hat. Weiterhin wurde in größeren Abständen das Modul Database Optimization (mypresta.eu) ausgeführt, welches u.a. die Tabelle ps_cart leert.

Auf dem Beispiel-Screenshot  sind alle gescheiterten Versuche gelistet, für ein und denselben Kunden einen Artikel in den Warenkorb zu legen. Auffällig ist dabei, dass manchmal versucht wird, alte IDs zu vergeben und dann wieder die neuesten IDs verwendet werden. Nach mehreren Versuchen gelingt es dann i.d. Regel. Wieviele nötig sind, konnten wir noch nicht herausfinden.

1.png

Link to comment
Share on other sites

Operationen an der Datenbank sind eher etwas für Profis, oft sind die Tabellen ja miteinander verbunden. Ich denke, du mußt dir die betreffenden Tabellen näher anschauen, evtl. einen Wert für Auto-Inkrement festlegen, der oberhalb der bisher verwendeten IDs liegt. Mach vorher eine Datenbank-Sicherung.

Link to comment
Share on other sites

Das Problem ist gelöst. Der Hinweis mit dem Auto-Inkrement war entscheidend. Die Ursache war die Leerung der tabelle ps_cart (durch Shop-Umzug oder DB-Säuberung). Dabei zählte die Cart ID wieder von 1 los. Sobald jedoch ein Warenkorb mit einer Cart ID, welche in der tabelle ps_orders vorkommt (Spalte id_cart) generiert wurde, kam es zu diesem Fehler. Ich habe den Wert jetzt höher als die höchste vorkommende Cart ID in der ps_orders gesetzt. Danke für die schnelle Hilfe.

Link to comment
Share on other sites

  • 2 weeks later...
1 hour ago, rictools said:

Ist doch eigentlich nicht so schwer, in der ersten Zeile steht deutlich "AUTO_INCREMENT" und direkt daneben ist der Bearbeiten-Knopf ...

Und was soll das an dieser Stelle bringen? Die Datenbankdefinition sollte so bleiben, wie sie ist! Es geht um den Inhalt. Die id_cart des letzten Warenkorbs muss hochgesetzt werden, aber so, dass keine Inkonsistenzen entstehen. Also überall da, wo diese letzte ID vorkommt.

  • Thanks 1
Link to comment
Share on other sites


Das solltest Du sowiso nicht machen weil das Problem wahrscheinlich bei Dir nicht von einer DB Inkositenz kommt, in dem Fall würde schon eine Fehlermeldung hoch kommen. Selbst wenn nicht würde das zumindest geloggt werden. Noch dazu würde sich das nach einem refresh auch nicht anders verhalten - denn dabei ändert sich die cart_id sicherlich/hoffentlich nicht 😉

Seh das Problem eher bei der Registrierung des add to cart events. Deaktivier doch mal den "Smart Cache für Javascript" unter Leistung und schau ob es dann geht, wenn nein dann hau mal dein FB Pixel gedöns raus.

  • Thanks 1
Link to comment
Share on other sites

2 hours ago, fox@dog1 said:

Hallo wmunich

Habe beides versucht. Smart Cache deaktiviert und FB Pixel deaktiviert. Leider beides ohne Erfolg.

Jetzt wird aber der event richtig ausgelöst nur kommt es nun zum nächste js Fehler da die plugindetect.js nicht geladen wird. Wie sieht denn deine statsdata.php unter module/statsdata/ aus?

Speziell:

$this->context->controller->registerJavascript('modules-plugindetect'....

Bzw. deaktiviere doch testweise mal die "Plug-Ins-Erkennung" im Statistik Modul und versuch es erneut.

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

vor 8 Stunden schrieb fox@dog1:

Danke, habe ich gerade gemacht id_order -> Bearbeiten und dann geht eine Maske auf (siehe jpg). Muss ich da bei Länge/Werte den Wert ändern, ansonsten sehe ich keine Zahlen. Wie gesagt, von Datenbanken habe ich kein Ahnung.

Ich hatte jetzt übersehen, daß du die Tabelle ps_orders bearbeiten wolltest, Bikehit hatte aber ausdrücklich von einer Änderung in der ps_cart gesprochen (in der ps_orders kann man nur nachsehen, wie die höchste dort bisher enthaltene id_cart lautet). Im Grunde ist das keine Zauberei, auf jeden Fall sollte man mit der entsprechenden Prestashop-Funktion vorher die Datenbank sichern und am besten auch genau notieren, was man wie genau geändert hat. Ob das Problem jetzt da liegt, weiß ich freilich nicht, bevor du etwas änderst, kannst du ja erst einmal in der ps_orders schauen, wie die höchste id_cart lautet und schauen, welche ID ein neu erstellter Warenkorb erhält oder wie viele Einträge / IDs die Tabelle ps_cart besitzt.

Das Auto-Inkrement findet sich wahrscheinlich ganz unten, hängt vom Programm ab. Manchmal muß man halt ein wenig googeln oder eine Anleitung lesen ... 

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

Hallo wmunich

Merci vöu x (Danke viel Mals)! Du bist mein Held. Es hat funktioniert. Nach dem ich im Module Statistik "Plug-Ins-Erkennung" deaktiviert habe, funktioniert der Warenkorb. Ich habe es mit dem Mobile Browser, Firefox und Edge getestet und es läuft.

Im Debug Mode zeigt es mir nur noch Warnungen an. Eine davon ist: "Enabling the "sensio_framework_extra.router.annotations" configuration is deprecated since version 5.2. Set it to false and use the "Symfony\Component\Routing\Annotation\Route" annotation from Symfony itself". Ich weiss nicht, ob die wichtig ist.

Und im Firefox zeigt es mir noch diesen Fehler an:

"Source-Map-Fehler: Error: NetworkError when attempting to fetch resource. Ressourcen-Adresse: moz-extension://05b4729f-a482-4a18-bb77-2b46a53dcd86/content/js/purify.min.js Source-Map-Adresse: purify.min.js.map"

Aber der Shop läuft endlich. Hoffentlich war das der letzte riesen Fehler.

Und danke an euch Alle für eure Hilfe.

Link to comment
Share on other sites

Die zwei Meldungen (sensio_framework, Source-Map) kannst Du ignorieren.

Jetzt solltest wahrscheinlich auch dein FB Pixel wieder aktivieren und den cache für JS verwenden können - das waren wahrscheinlich nur Folgefehler - musst mal testen.

Wenn Du dennoch die Plug-Ins-Erkennung/Statsdata verwenden möchtest, was ich nicht empfehle, dann sollte die Einbindnung der plugindetect.js über hookActionFrontControllerSetMedia($params) laufen. Aber Du hast ja eh google analytics am Start, somit brauchst das ja nicht wirklich.

  • Thanks 1
Link to comment
Share on other sites

  • 2 years later...

Bei mir war es das Geotargeting (Geolocation)!
Im Log gesehen dass, sämtliche Warenkörbe wegen geolocation abgewiesen wurden.

Frontcontroller::init - GEOLOCATION is deleting a cart

So habe ich das Geolocation deaktiviert (PS 1.7.8.1 -> Menu: International > Localization > Tab: Geolocation -> Abschnitt "Geotargeting über IP-Adresse")

Ich hoffe es hilft Euch ebenfalls.

 

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...