FROM CACHE - de_header
Gelöst

Fehler beim Express Checkout (checkout.json)

dominic-msqln
Tourist
9 1 3

Guten Tag,

ich habe folgendes Problem: In meinem Shopify Shop, kann man bei den Produkten direkt den Warenkorb überspringen und mit Paypal oder amazon pay das Produkt direkt kaufen (Express Checkout). Sobald ich aber diese Möglichkeit testen möchte, wird ein Fehler geworfen. Wenn ich im Browser in die Entwicklerkonsole schaue, sehe ich auch den Fehler, jedoch habe ich nirgends gefunden, wo ich diesen beheben kann. 

Wenn man auf den Button "Mit PayPal kaufen" klickt, wird nämlich ein AJAX Call zur checkout.json gemacht, in dem die Variante als Parameter übergeben wird, leider ist an dieser Stelle die quantity immer 0 und so lange diese 0 ist, kann dieser Checkout nicht verwendet werden. Die dazugehörige JavaScript Datei scheint eine Shopify interne zu sein (de.js).

Kennt jemand das Problem und kann mir helfen?

1 AKZEPTIERTE LÖSUNG
dominic-msqln
Tourist
9 1 3

Erfolg.

Hey, 

ich konnte das Problem jetzt lösen. Es lag im Endeffekt an einem veralteten Polyfill für die fetch Methode. Ich habe diesen nun aktualisiert und jetzt scheint es ohne Probleme zu funktionieren. Ich danke Euch aber für Eure Hilfe. 

Beste Grüße

Lösung in ursprünglichem Beitrag anzeigen

7 ANTWORTEN 7

Gabe
Shopify Staff
16357 2587 3853

Hey @dominic-msqln 

Gerne helfe ich hier dieses Problem zu analysieren und ggf. dich in die richtigen wege zu leiten um passende Ressourcen zu finden wie man diesen Fehler beheben kann. User Experte Mario (@r8r) kann auch gerne ein Auge darauf werfen. Bekommst du einen Fehler der etwa wie folgt aussieht?

image.png

Dass kann mehrere Gründe haben, wie z. B. das Theme Code selber (bitte die Theme Entwickler kontaktieren diesbzgl.). Manchmal kann auch etwas im PayPal Backend nicht stimmen aber das muss man mit dem PayPal Support klären.

Einige Ressourcen habe ich zu diesem Fehler auf Google gefunden, wie unseren Leitfaden hier.

Oder man kann prüfen ob es in einer frischen Theme Kopie funktioniert. Wenn ja, dann scheint es ein Problem dieses Themes zu sein. Wenn du deine Shop URL hier postest kann ich das mal testen. Ich kann auch gerne die URL in deinem Beitrag nach dem lesen wieder löschen falls du sie nicht öffentlich preisgeben möchtest ("burn after reading" style...).

VG,

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

dominic-msqln
Tourist
9 1 3

Hi @Gabe ,

genau dieses Popup bekomme ich als Fehler, leider kann ich dir aber noch keine URL geben, da sich der Shop noch im Aufbau befindet und für die Öffentlichkeit noch nicht freigegeben ist. 

Bezüglich PayPal: Generell funktioniert alles mit Paypal und der Fehler tritt auch auf, wenn ich es mit amazon pay versuche, daher bezweifle ich, dass das Problem mit Paypal zu tun hat. 

Wie vorher schon beschrieben, weiß ich auch schon was der Fehler ist, jedoch habe ich Code technisch keinen Zugriff auf die Datei, in die Daten an die checkout.json Schnittstelle weitergegeben werden.

Die Response der API lautet: {"errors":{"line_items":{"0":{"quantity":[{"code":"greater_than_or_equal_to","message":"muss größer oder gleich 1 sein","options":{"count":1}}]}}}}

Und wenn ich mit den API-Call dazu anschaue, stellt man sofort fest, dass diese über die de.js Datei aufgerufen wird, welche die Anzahl (Quantity) der zu kaufenden Produkte mit 0 übergibt. Ich habe bereits das JavaScript des Themes einmal kurz entfernt, um genau dieses Problem ausschließen zu können.

Gibt es noch weitere Anhaltspunkte oder Ideen?

Gabe
Shopify Staff
16357 2587 3853

@dominic-msqln 

Hmm, ja bei deinem Beispiel scheint es, dass das Produkt gar nicht erkannt wird während dem PayPal Button OnClick Event (Anzahl (Quantity) der zu kaufenden Produkte mit 0 übergibt) und somit scheint das auf den Button Javascript selber zu schliessen.

Wie wärs es mit dem kompletten Entfernen der DCBs (dynamic checkout buttons) zu probieren und das darauffolgende Wiederherstellen? Vielleicht stellt ein kompletter Reboot der Verknüpfung das ganze Code im Theme wieder her? Oder eben eine Zurücksetzung des product.liquid was die Literatur in solchen Fällen generell empfiehlt?

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

r8r
Shopify Expert
2555 327 940

@dominic-msqln – kannst Du vom Maker-Theme als zusätzliches Dev-Theme eine "jungfäuliche" Kopie installieren; dann die beiden json-Dateien im /config-Verzeichnis vom Produktiv-Theme hernehmen, und damit den Inhalt der Dateien im Dev-Theme damit überschreiben?

Wenn Du dann in's Preview des Dev-Theme gehst – kannst Du das Problem nach wie vor reproduzieren?

LG, Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte
dominic-msqln
Tourist
9 1 3

Hi @r8r ,

ich habe jetzt zum Test mal alles vom Theme entfernt und das ganze System auf das Standard Theme von Shopify zurückgesetzt. Ich bekomme den gleichen Fehler und wenn ich dem Stacktrace folge, sind dort auch nur Dateien hinterlegt, auf die ich keinerlei Zugriff habe. 

@Gabe wie vorher schon erwähnt, hat das nicht viel mit PayPal zu tun, da ich das Problem auch habe, wenn ich den Express Checkout von PayPal entferne oder den von amazon pay benutze.

Wenn ich die checkout.json manuell aufrufe und statt einer quantity von 0 -> 1 angebe, funktioniert auch alles. Aus irgendeinem Grund nimmt Shopify selbst hier den falschen Wert. 

Gibt es eventuell einen detaillierteren ChangeLog? Auf dieser Seite hier: https://changelog.shopify.com/ ist das ja recht allgemein gehalten und da geht leider nicht heraus, ob das Problem bei Shopify direkt liegt. Als ich das System im März eingerichtet habe, hat das nämlich noch funktioniert.

Habt Ihr noch Ideen? 

Gabe
Shopify Staff
16357 2587 3853

Hey @dominic-msqln 

Da hast du recht, dass das nicht mit dem PayPal Backend, Account usw. zusammenhängt. Ich selber vermute eher dass der Wurm im Frontend (Javascript) Code des "Buy it now" Button lebt.

Eine Frage hätte ich dazu: Wir wissen, dass wenn du im Live Theme sowohl auf den gebrandeten "Buy with PayPal" Button im Shopfront als auch auf den unbranded "Buy it now" im Theme Editor klickst, dann bekommst du, wie gesagt, die bereits gezeigte Fehlermeldung.

Aber: wenn du in der Theme-Kopie dieselben Schritte ausführst dann bekommst du diesen Fehler, ja oder nein?

Wenn nein, dann haben wir den Wurm in deinem Live Theme isoliert, und meiner Vermutung nach auf den branded und unbranded DCB (dynamischen Checkout-Button). Da liegt irgendwo der Wurm drin in diesen Button, da wenn man drauf klickt kommt ja gleich die Fehlermeldung ohne irgendwelche Request Calls zum Server oder Backend. Somit spielt sich das komplett im Frontend, Client Side ab.

Deine Vermutung, dass es mit dem Shopify Backend (und irgendwelche Updates zum System, Changelog usw.) irgendwie zusammenhängt wird hier nicht stimmen wenn das Problem in der Theme Kopie nicht reproduzierbar ist. Somit wäre das gleiche Problem in allen Themes die du zu deiner Bibliothek hinzugefügt reproduzierbar, dann müßten unsere Entwickler in der Tat ran.

Da aber das Problem alleine nur in der Welt des Live Themes lebt, werden unsere Entwickler das ablehnen und sagen "das hat mit dem System nichts zu tun sondern mit dem 3rd Party Theme Code des Live Themes. Da muss ein Experte ran".

Preview Links zum Live Theme und zur Kopie

Noch eine Frage: kannst du uns hier kurzfristig einen Preview Link zu deinem Live Theme und auch zu deinen anderen Themes (Kopie des Live Themes und auch das eine oder andere hinzugefügte Shopify Theme) hier einfügen?

Selbstverständlich lösche ich die Links gleich nach dem Lesen ("burn after reading"). Nur so könne Mario und ich das von hier aus testen. Ansonsten sitzen wir hier im Dunkeln leider.

Apropos, Changelog, hast die Changelogs deines 3rd party Themes geprüft auf der Entwicklerseite? Selbst das wird aber m. E. nicht damit zusammenhängen.

Also lass uns das Problem hoffentlich heute noch lösen vor dem W-Ende, so das du dich endlich auf deine Kern-Business Aufgaben konzentrieren kannst. Aber dafür brauchen wir mehr Infos sowie die Preview Links von dir.

VG,

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

dominic-msqln
Tourist
9 1 3

Erfolg.

Hey, 

ich konnte das Problem jetzt lösen. Es lag im Endeffekt an einem veralteten Polyfill für die fetch Methode. Ich habe diesen nun aktualisiert und jetzt scheint es ohne Probleme zu funktionieren. Ich danke Euch aber für Eure Hilfe. 

Beste Grüße