Paypal Checkout 2.4.0 - Checkoutprozess setzt Shop in Offline Modus

Hallo Forumsmitglieder,

ich habe gestern in unserem Testshop ein Update von dem PayPal Checkout Modul
von Version 2.3.4 auf die aktuelle 2.4.0 vorgenommen.

Update läuft soweit auch durch, Modul lässt sich aktivieren, Zahlungsarten ebenfalls.

Allerdings funktioniert der Checkout nicht, sobald man von Schritt 2 zu Schritt 3 (Versand & Zahlungsart) wechselt, geht der Shop in den Offlinemodus und macht einen redirect auf die Startseite.

Gestestet im Sandbox Modus, ich hatte, da das Vaulting als neue Funktion ausgewiesen ist, auch über die Schaltfläche “Anmeldung Händler” ein neues Onboarding gemacht, was erfolgreich durchgelaufen ist.
Er sagt in der Paypal Konfiguration auch Konfigurationswerte OK und Modul aktiv an.

Freischaltung für Rechnungskauf, Kreditkarte und Vaulting wird ebenfalls mit Ja ausgewiesen.

Im Log findet sich ein Eintrag mit dem ich leider nichts anfangen kann:
[10 Apr 11:31:13.604811 2024] [uncaught error] [type E_COMPILE_ERROR] [file /home/xxx/xxx/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php] [line 43] [code ] [message Type of OxidSolutionCatalysts\PayPal\Model\Order::$payPalOrder must not be defined (as in class InvoicepdfOxOrder)]

Testweise habe ich das angepasste Template auch mal auf Wave bzw. Flow geändert,
Fehler bleibt.

Cache wurden geleert, Views erneuert.

Hat jemand eine Idee oder soll ich das als Bug im Bugtracker eintragen?
Dort ist nichts dergleichen zu sehen, sodass ich davon ausgehe, das das Modul eigentlich funktionsfähig ist.

Viele Grüße,
Michael

Deaktiviere zum Test das PDF-Modul.

Hallo Markus,

das PDF Modul ist ok.
Mittlerweile habe ich herausgefunden, dass sich das alte PayPal Modul mit dem Checkout in der aktuellen Version “beisst”

Bis zur Version 2.4.0 konnte man beide Module nebeneinander aktiv lassen, was jetzt leider nicht mehr geht ohne den Shop beim Checkout in den Offline Modus zu setzen bzw. im Admin Bereich
durch den Aufruf der Bestellungen den Offline Modus zu triggern.

Schade! Wir hatten das alte Paypal Modul noch aktiv, weil es im Admin Bereich noch zusätzlich Spalten für Zahlungsart und Shop-Zahlungsstatus eingeblendet hat, das fanden wir immer sehr nützlich und haben aus diesem Grund das alte Paypal Modul aktiv gelassen und nur die Zahlungsarten deaktiviert.

Ich bin leider kein Programmierer, aber ist es möglich diese beiden Spalten auch in das Checkout Modul zu integrieren oder anders anzeigen zu lassen?

Viele Grüße,
Michael

@djelo: Läuft Version 2.4.0 bei Dir vernünftig? Bei uns kommen ständig Bestellungen ohne Zahlung ins System…

Deutet das nicht darauf hin, dass bei dir Bestellabbrüche stattfinden?

Es gibt einen guten Blog Beitrag zum Thema. Die ständigen Bestellungen ohne Zahlung könnten Internetverbindungsabbrüchen geschuldet sein Bezahlung ohne Bestellung | HB E-Commerce Blog

Ein technischer Fehler lässt sich natürlich nie ganz ausschließen.

Ergänzend was ich meine, ich könnte mir vorstellen die Bestellungen ohne Zahlung im Shop könnte eine Vorsorge dafür sein, dass es nicht dazu kommt, dass die Bestellung zu einer Bezahlung nicht vorliegt im Shop.

Mal ein Beispiel:

Kunde klickt in Bestellschritt 3 auf die Zahlungsart Kreditkarte und geht dann zu Schritt 4 weiter - gibt fehlerhafte Kreditkartendaten ein - und klickt dann auf “zahlungspflichtig Bestellen”. Die Bestellung funktioniert natürlich nicht und der Kunde bekommt eine Fehlermeldung. Jetzt wird aber in OXID trotzdem eine Bestellung mit fortlaufender Bestellnummer angelegt, aber mit dem Status “not_finished”. D.h. die Bestellung hat nicht funktioniert, befindet sich aber im System und blockiert den Artikelbestand.

Ähnlich verhält es sich bei einer Zahlung mit PayPal. Nach dem klick auf “zahlungspflichtig bestellen” öffnet sich das PayPal-Popup. Klickt der Kunde im Popup nun auf “Abbrechen und zurück zum Händler”, so wird wie oben beschrieben, eine Bestellung mit dem Status “not_finished” in OXID angelegt.

Wir haben teilweise Kunden, die es schaffen, zig fehlerhafte Bestellungen auszulösen und keine einzige funktioniert.

Das Ende vom Lied: Ware im Wert von mehreren tausend Euro ist durch die fehlerhaften Bestellungen blockiert und somit nicht mehr kaufbar. Zusätzlich müssen die ganzen fehlerhaften Bestellungen nun wieder händisch storniert werden, was zusätzlichen Aufwand bedeutet.

Mich würde einmal interessieren, ob ihr das nachvollziehen könnt, oder ob dieses Verhalten nur bei mir auftritt. :wink:

Hallo @kow,

das Verhalten kann ich nachvollziehen, auch bei uns kommt es regelmäßig dazu, dass Paypal Bestellungen als “not finished” angelegt werden, weil die Leute das entweder mit dem 2. Faktor nicht hinbekommen oder was auch immer der Grund ist.
Das sind bei uns aber zum Glück nicht viele.
Theoritisch sollte ja in dem Paypal Modul eine Funktion diese Bestellungen automatisch löschen (Konfiguration->Behandlung nicht beendeter Bestellungen), was aber in der Praxis nicht funktioniert.
Die Bestellungen bleiben einfach stehen. Da es bei uns nicht so wahnsinnig viele sind, löschen wir die halt nach ein paar Tagen von Hand.

Wir setzen übrigens noch das Modul 2.3.4 ein, 2.4.0 hat bisher nur ins Staging geschafft,
da sich das ja mit dem alten Paypal Modul beisst und wir die Spaltenansicht mit der Zahlungsart liebgewonnen haben.

Allerdings haben wir im Log vom Paypal Modul jeden Tag auch Bestellungen, die mit Fehlercode 422 von der Paypal-Api beendet werden, Fehlerbeschreibung ist “"issue":"CANNOT_BE_ZERO_OR_NEGATIVE","description":"Must be greater than zero. If the currency supports decimals, only two decimal place precision is supported.”
Was sehr merkwürdig ist, denn die Bestellungen haben ja immer einen Wert größer 0.
Keine Ahnung wo das herkommt, kann man auch an nichts fest machen.

Was aber ja viel schlimmer ist:
Manchmal haben wir auch den Fall (zum Glück nur sehr selten), das PayPal Bestellungen in OXID als Status “OK” erhalten aber gar keine Zahlung dafür vorliegt.
Die werden dann auch wunderbar in unsere Warenwirtschaft übertragen und fallen nur dadurch auf, das bei diesen Bestellungen die Transaktions-ID fehlt.
Wenn dann mal viel los ist, das Telefon 30 mal klingelt und 20 Kunden im Laden sind, kann das natürlich passieren, das man das übersieht und dann eine Bestellung raussendet, für die keine Zahlung vorliegt.
Blöd ist natürlich auch, das sowohl Shopbetreiber als auch Kunde eine Bestellbestätigung zugesendet bekommen, wo als Zahlungsart dann halt Paypal steht und alles so aussieht, als ob das in Ordnung ist.
Ist dann blöd den Kunden anschzuschreiben und zu erklären, dass die Zahlung fehlt.

Meiner Meinung nach, darf so etwas unter keinen Umständen passieren.

Generell kann man sagen, dass in diesem Fall der Spruch “Früher war alles besser” tatsächlich zutrifft.
Seit dem PayPal Checkout ist das alles gefühlt unzuverlässiger geworden.

Mit dem alten Paypal Modul und der API v1 gab es nie Probleme, das Modul und die API waren absolut zuverlässig und unauffällig.

Seit dem neuen Modul mit Checkout und der API v2 hat man ständig mit irgendwelchen fehlerhaften Transaktionen und Kinderkrankheiten zu kämpfen.
Von den Anfängen ganz zu schweigen, wo man erst einmal darüber diskutieren muss, das grundsätzliche Funktionalitäten des Vorgängermoduls plötzlich einfach weggelassen oder verändert wurden, Stichwort Transaktionsnummer.
Da hatte ich ja damals schon einen ellenlangen Thread geöffnet.

Aber wir können die Zeit nicht zurückdrehen und müssen mit diesem Modul und dem Checkout mit neuer API leben, ob wir wollen oder nicht :wink:

Viele Grüße,
Michael

Ja, ich glaube auch, dass das Bestellabbrüche sind. Ich glaube aber, dass dieser “Abbruch” teilweise auch vom Kunden gewünscht ist.

Beispiel: Der Kunde möchte via PayPal bezahlen, klickt auf “zahlungspflichtig bestellen” und er wird zu PayPal weitergeleitet. Nun überlegt es sich der Kunde doch noch anders, warum auch immer, und bricht die Bestellung ab. Vielleicht möchte er auch nur die Zahlungsart ändern, oder vielleicht seine Adresse - da kann es viele Hintergründe geben.

Warum aber legt OXID eine Bestellung an. Es wäre doch sinnvoll, wenn die Bestellung nur angelegt wird, wenn alles, auch die Zahlung, sauber funktioniert hat…?

Mein Vorschläg wäre hier, dass die Verifizierung der Kundendaten schon von Schritt 3 auf 4 geschieht. D.h., wenn der Kunde auf “zahlungspflichtig bestellen” in Schritt 4 klickt, kann schon nichts mehr schiefgehen, denn vorab wurde bereits alles verifiziert.

Ich bin aber leider kein Programmierer und weiß daher nicht, ob mein Vorschlag ein guter Lösungsansatz ist, bzw. ob sich das überhaupt so umsetzen lässt.

Ich vermute, das das einfach ein Umstand ist, der technisch gesehen so sein muss.
Die Bestellung muss schon vor der Weiterleitung an den Zahlungsanbieter angelegt sein,
damit der Shop eine vollständige Bestellung hat, falls bei der Weiterleitung oder beim Redirect was schief geht.

Das kann auch der neuen API v2 geschuldet sein, denn es werden dort bei Paypal ja auch keine
Warenkörbe mehr angezeigt, sondern nur noch die Zahlungssumme.

Früher mit dem alten Paypal Modul und der API v1 wurden bei Paypal ja auch noch die kompletten Warenkorbartikel nebst Versandkosten aufgeführt, was mittlerweile nicht mehr der Fall ist.

Könnte also einfach mit dem Checkout unter API v2 zusammenhängen oder aber was auch denkbar ist,
das wegen der DSGVO keine Warenkorbdaten mehr an den Zahlungsdienstleister übermittelt werden dürfen sondern nur noch die reine Zahlungssumme. Nicht das Paypal noch weiß, wann und wo du das letzte Mal Socken online bestellt hast :wink:

Viele Grüße,
Michael

Ich vermute, das das einfach ein Umstand ist, der technisch gesehen so sein muss.
Die Bestellung muss schon vor der Weiterleitung an den Zahlungsanbieter angelegt sein,
damit der Shop eine vollständige Bestellung hat, falls bei der Weiterleitung oder beim Redirect was schief geht.

Ja, das kann durchaus der Fall sein, aber da muss es doch eine Möglichkeit geben, das Ganze deutlich eleganter zu lösen… Eigentlich sollte das Ziel sein, dass wir es dem Kunden so einfach und übersichtlich wie möglich machen. Was hier “produziert” wird/wurde ist aber genau das Gegenteil. Wir bekommen in Hülle und Fülle Mails a la “hat meine Bestellung funktioniert?” von Kunden - das macht irgendwie keinen Spaß mehr…

Was ich damit sagen will ist, dass nicht nur die Usability für den Kunden schlechter geworden ist, sondern es sich auch die Kundenbeschwerden häufen und wir dadurch zusätzlichen Aufwand haben. Und ganz ehrlich - ich kann die Kunden sogar verstehen - die wollen eben so einfach es geht etwas kaufen und das sollten wir eben auch bieten können.

Könnte also einfach mit dem Checkout unter API v2 zusammenhängen oder aber was auch denkbar ist,
das wegen der DSGVO keine Warenkorbdaten mehr an den Zahlungsdienstleister übermittelt werden dürfen sondern nur noch die reine Zahlungssumme. Nicht das Paypal noch weiß, wann und wo du das letzte Mal Socken online bestellt hast

Ja, da gebe ich Dir Recht - das könnte ggf. mit ein Grund sein. Ich kann mich aber noch daran erinnern, dass man die API V1 auch so konfigurieren konnte, dass keine Daten an PayPal gegeben wurden. Bei uns war das der Fall und es gab keinerlei Probleme.

Naja, schauen wir mal, was passiert. :wink:

Falls es euch noch interessiert: Ich habe mir mal eine paar Checkouts angeschaut und finde den von Reolink Offizielle Website: Überwachungskameras/-systeme für Zuhause & Geschäft enorm gut und übersichtlich. Ich habe OXID mal gebeten sich das anzuschauen, vielleicht kann man von denen lernen…? :wink: