Paypal-Express/Oxid "Bug"

Habe einen bug in verbindung mit oxid 6.1.X und dem Paypal-Express checkout gefunden und kann diesen auch reproduzieren.

Oxid 6.1.X
Paypal Modul 5.2.5

Sobald es keine versandart mit der oxid oxidstandard (oxdeliveryset) gibt und ein neuer kunde seine bestellung per paypal-express button im warenkorb oder in der user.tpl ausführen/abschliessen möchte, dann funzt alles solange bis der kunde von paypal auf die order seite weitergeleitet wird, mit der fehlermeldung “Es gibt keine Versandart für das gewählte Land und diese Zahlungsart.

Klickt man dann auf bestellen button landet man auf der payment seite (cl=payment&payerror=4) mit der fehlermeldung “Die von Ihnen gewählte Versandart ist nicht mehr verfügbar. Bitte wählen Sie eine andere Versandart aus!

Setzt man nun bei irgend einer versandart die oxid auf oxidstandard (natürlich muss man alle schlüssel-verknüpfungen entsprechend anpassen) dann funzt der paypal-express checkout bei allen neukunden bestens.

Sowas muss doch bei der programmierung vom shop/modul auffallen (oder)?!

In dem fall würde eine checkbox bei den versandarten reichen, mit der man eine versandart als standard definiert.

Das problem kann natürlich nur auftreten wenn man nach einer frischen installation die von oxid vordefinierten versandarten löscht und eigene neue anlegt. Bearbeitet man die vordefinierten versandarten tritt der fehler nicht auf, da eine von den versandarten den eintrag oxidstandard als oxid enthält

Ich konnte den fehler jetzt jedes mal reproduzieren. Im eigenen shop allerdings mit allen modulen deaktiviert bis auf das paypal modul.

Nein, nicht zwingend da der Programmierer in der Regel sich Shop mit Demodaten aufsetzt und dort ist die Versandart mit oxidstandard vorhanden.

Was an dieser Stelle fehlt ist ein Fallback, dies kann man dem Programmierer vorwerfen. Andererseits jemand der die Standard Versandart entfernt und Eigene definiert sollte wissen was er tut.

@gajel hast Bug bereits im Bugtracker Main - OXID eShop bugtrack eingetragen?

Der Shop hat auch interne Funktionen, die sich darauf verlassen, dass es eine oxidstansard Versandart gibt. Es wundert mich, dass man sie löschen kann. Z. B. Bei den Aktionen gibt’s genau wegen sowas ein paar, die man gar nicht löschen kann.

Das dumme ist nur, in der EE version. Gibt es nicht pro Mandat ein Regel mit der oxid oxidstandard. Daher sollte es in Ordnung sein keine Regel zu haben mit dieser ID.

Übringen’s habe ich auch einen Bug gefunden, vielleicht ist es auch deiner. Sollte deine Regel umlaute haben. Findet das Module die Regel auch nicht und es geht wieder zurück auf die evt. gelöschte oxidstandard (oder in der EE nicht vorhandene regel pro Mandat)

klingt nach nach einer variante von dem hier. Schau mal ob du irgend wo Einschränkungen für bestimmte Benutzergruppen drinne hast.

Er erkennt also irgendwo eine falsche Zuordnung von Benutzergruppen
in PaymentList->_getFilterSelect() beim Teil $oUser->getUserGroups()

Sobald ich diese restriktion für die Zahlungsmethode auf die Benutzergruppe “oxid_admin” wieder raus nehme, fällt dieser ganze Teil in der querie Erstellung weg und der Zahlungsprozess läuft wieder ohne Fehlermeldung.

@JBlanck Danke für den Debug-Tip.

Wir haben zwar auch ewig gesucht, aber es ist ganz einfach und auch kein Bug. Es lag am Bonität-Index. Dieser ist auf 100 eingestellt gewesen.

2 Likes