[Gelöst] WPML stört Checkout (422 error, name field), Klarna
Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.
Problem: Der Kunde erlebt einen 422-Fehler bei der Nutzung von Zahlungsgateways wie Mollie Klarna, verursacht durch leere Felder in den Versandkosten-Namen, die von WPML falsch übersetzt oder entfernt werden. Solution: 1. Manuelle Überprüfung und Korrektur der Versandkosten-Namen: - Gehe zu WooCommerce > Einstellungen > Versand - Öffne deine Versandzonen & Methoden - Ändere den Namen der Versandmethode (z. B. von "Standard" auf "Standardversand") - Speichern und eine neue Testbestellung durchführen. 2. Korrektur der WPML-Übersetzungen für Versandnamen: - Gehe zu WPML > String Translation - Suche nach "shipping", "Versand", "shipping_fee" - Falls ein leerer oder falscher Eintrag vorhanden ist, ersetze ihn mit "Versandkosten" oder "Standardversand". - Speichern und erneut testen.
Falls diese Lösung nicht relevant oder veraltet ist, oder falls das Problem weiterhin besteht, empfehlen wir, einen neuen Support-Ticket zu öffnen und die bekannten Probleme zu überprüfen. Bitte bestätige auch, dass du die neuesten Versionen von Themes und Plugins installiert hast. Für weitere Unterstützung besuche bitte unser Support-Forum.
Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.
Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.
Hintergrund des Themas:
Ich versuche, ein Problem mit WPML zu lösen, das einen 422-Fehler bei Zahlungsgateways wie Mollie Klarna verursacht. Bitte beachten Sie: Sie können das Problem nicht live testen. Mollie Klarna ist deaktiviert, das derzeit aktivierte ist von Stripe. Video: versteckter Link. Dies ist das Problem:
klarna: Failed to create Mollie payment object for order 468544: [2025-02-03T15:23:40+0000] Error executing API call (422: Unprocessable Entity): Order line 2 is invalid. The 'name' field should not contain only whitespace characters. Documentation: <em><u>versteckter Link</u></em>. Request body: {"status":422,"title":"Unprocessable Entity","detail":"Order line 2 is invalid. The 'name' field should not contain only whitespace characters","field":"lines.2.name","_links":{"documentation":{"href":"<em><u>versteckter Link</u></em>","type":"text/html"}}}. Field: lines.2.name
.
Vollständiges Mollie-Log: versteckter Link.
WooCommerce Systembericht: versteckter Link.
Link zu einer Seite, auf der das Problem zu sehen ist: versteckter Link.
Die Symptome:
Wenn WPML aktiviert ist, verursacht es einen 422-Fehler mit Zahlungsgateways wie Mollie Klarna. Auch PayPal ist betroffen. Das Problem liegt im 'name field'.
Fragen:
Wie kann ich den 422-Fehler beheben, der durch das 'name field' verursacht wird?
Warum beeinflusst WPML die Zahlungsgateways Mollie Klarna und PayPal?
Zusatz Info: Das Problem tritt nur in der Originalsprache der Seite, also deutsch auf.
Wenn man den Checkout über die übersetzte /en Version auruft, funktioniert alles tadellos. Es gibt also ein Problem mit den Checkout Feldern und der Originalsprache im Checkout mit WPML.
It looks like the issue is caused by an *empty or whitespace-only name field* in one of your *order line items (line 2)* when processing payments via *Mollie Klarna*. Since the error message from Mollie’s API states:
> *“Order line 2 is invalid. The 'name' field should not contain only whitespace characters.”**(422: Unprocessable Entity)*
- Go to *WooCommerce → Orders* and open order *468544*.
- Look at the *product and shipping items* in the order details.
- Ensure that *all item names (including shipping fees, if applicable) are properly filled in*.
Since you *modified translations* using *WPML*, it's possible that:
- Some product names or shipping labels are *missing translations*.
- WPML is sending *empty strings or spaces* instead of valid names.
You can try temporarily disabling *WPML *and testing a checkout.
If the issue persists, you can *switch back to Checkout-WC* or use another payment method while troubleshooting.
Ich kann gerne anbieten mir das einmal genauer anzusehen.
Ich möchte einen temporären Zugriff (wp-admin und FTP) auf die Website anfordern, um das Problem genauer zu untersuchen.
Die dafür erforderlichen Felder findst Du unterhalb des Kommentarbereichs, wenn Du dich anmelden, um die nächste Antwort zu hinterlassen. Die Informationen, die Du angibst sind privat, was bedeutet, dass nur Du und ich sie sehen und darauf zugreifen können.
WICHTIG
Lege bitte unbedingt eine Sicherungskopie der Website und der Datenbank an, bevor Du uns den Zugriff gewährst.
Wenn Du die Felder "wp-admin / FTP" nicht sehen kannst, werden Ihre Anmeldedaten für Post und Website als "PUBLIC" (Öffentlich) festgelegt. Veröffentliche die Daten NICHT, es sei denn, Du siehst die erforderlichen wp-admin / FTP-Felder.
Ich muss hier ggfls. ein Plugin namens "All In One WP Migration" installieren, um eine Kopie der Website anzulegen, auf welche ich das Problem genauer untersuchen kann.
Ich wäre allerdings auch sehr dankbar, wenn Du zu diesem Zweck selbst eine Staging Site, bzw. Kopie der Website von Deinem Server aus bereitstellen könntest.
Bei Fragen zum Erstellen einer solchen Staging Site kannst Du deinen Hosting Anbieter konsultieren. Achte bitte darauf, dass WPML auf diesem Staging ebenso unter https://wpml.org/de/account/websites/ registriert sein muss.
Solltest Du dazu nicht in der Lage sein eine solche Kopie der Website zum Testen bereitzustellen, dann lass es mich bitte auf diesem Ticket wissen.
Das private Antwortformular sieht folgendermaßen aus: versteckter Link
Klicke beim nächsten Antworten auf "I still need assistance".
Video: versteckter Link
Beachte bitte, dass wir verpflichtet sind, diese Informationen auf jedem Ticket individuell anzufordern. Wir dürfen nicht auf Zugangsinformationen zugreifen, die nicht speziell auf diesem Ticket im privaten Antwortformular übermittelt wurden.
Ich versuche, eine Kopie der Site zu erstellen, aber es scheint, dass die Datenbank mindestens mehr als 10 Millionen Einträge enthält und die Migration einer so großen Site ist sehr zeitaufwändig.
Ich möchte Dich bitten, Folgendes zu tun:
- Lösche den WP Rocket Cache in allen Sprachen über die Admin-Leiste
- Lösche den Cache in Object Cache Pro
Wenn das Problem weiterhin auftritt, lass es mich bitte wissen. Wenn das Problem dadurch gelöst wird, gib mir bitte ebenfalls Bescheid, damit ich die Migration der Site beenden kann.
Sobald ich das Problem anhand einer Kopie Ihrer Site untersuchen kann, werde ich Sie erneut kontaktieren.
---
Zum Thema:
Ich habe auf einer Test Site festgestellt, dass Mollie nach dem letzen Update von WordPress noch nicht die Art und Weise wie Textdomänen geladen werden angepasst hat.
Das führt zu einem Fehler zwischen Mollie und WPML String Translation.
Das Problem sollte dringend von Mollie's Seite aus gelöst werden. Beachte bitte auch, dass dieser Fehler mit dem Problem, dass Du berichtet hast, im Zusammenhang stehen könnte.
Der Fehler lautet:
Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the mollie-payments-for-woocommerce domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/rebelwithatwist.nl/staging.avstyle.nl/wp-includes/functions.php on line 6114
das werde ich so weitegeben. Allerdings gibt es den Fehler erst seit wenigen Tagen und da war ja die WordPress Version schon längst installiert. Daran kann es also nicht liegen.
Cache (CDN, Object, WP Rocket) habe ich mehrmals schon probiert, jetzt auch nochmal, bringt leider nichts.
Das Komische ist ja, dass der Fehler auf der /en Seite nicht zustande kommt, nur auf der Seite der Standardsprache.
→ Hier ist der Fehler:
👉 Der Wert "name": " " ist nur ein Leerzeichen, was von Mollie nicht akzeptiert wird.
👉 Das bedeutet, dass WPML beim Checkout in der Originalsprache den Versandkosten-Namen entfernt oder falsch übersetzt.
------
✅ Lösung: Versandkosten-Namen korrekt setzen
1️⃣ Manuell prüfen und korrigieren
Gehe zu: WooCommerce > Einstellungen > Versand
Öffne deine Versandzonen & Methoden
Ändere den Namen der Versandmethode (z. B. von "Standard" auf "Standardversand")
Speichern und eine neue Testbestellung durchführen.
2️⃣ WPML-Übersetzungen für Versandnamen korrigieren
Falls WPML den Versandnamen falsch behandelt:
Gehe zu WPML > String Translation
Suche nach:
"shipping"
"Versand"
"shipping_fee"
Falls du einen leeren oder falschen Eintrag siehst, ersetze ihn mit "Versandkosten" oder "Standardversand".
Speichern und erneut testen.
----
Lösung: Zahlreiche "Shipping" Einträge hatten einfach nur ein Leerzeichen. Ich habe die Übersetzung gesetzt - und nun klappt alles wieder.