Zum Inhalt springen Zur Seitenleiste springen

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.

Hallo und herzlich willkommen beim WPML-Support, das deutsche Forum ist aufgrund der Feiertage bis 29.Dezember geschlossen. In der Zwischenzeit steht Ihnen unser englischer Support gerne zur Verfügung, um Ihre Fragen zu beantworten. Vielen Dank für Ihr Verständnis. Wir wünschen Ihnen frohe Festtage und einen erfolgreichen Start ins Jahr 2026! Herzliche Grüße Ihr WPML-Support-Team

Sun Mon Tue Wed Thu Fri Sat
- 8:00 – 13:00 9:00 – 13:00 9:00 – 13:00 8:00 – 12:00 8:00 – 12:00 -
- 14:00 – 17:00 14:00 – 18:00 14:00 – 18:00 13:00 – 17:00 13:00 – 17:00 -

Supporter-Zeitzone: Europe/Zagreb (GMT+01:00)

Schlagwörter: 

Dieses Thema enthält 13 Antworten, hat 0 Stimmen.

Zuletzt aktualisiert von Bruno Kos Vor 5 Tage, 16 Stunden.

Assistiert von: Bruno Kos.

Autor Beiträge
November 24, 2025 um 11:00 a.m.

Robert Rosanke

Hintergrund des Themas:
Wir nutzen die Multi Channel Software "Billbee" zur Lagerbestandsverwaltung.
Billbee setzt ab und zu ein paar Anfragen via REST API an WooCommerce, um den Lagerbestand der Produkte zu aktualisieren.

Wir haben am 05.11. Plugins aktualisiert und seitdem vermehrt Fehlermeldungen in Billbee festgestellt.
Billbee prüft, ob die Antwort den Lagerbestand hat, der im PUT Request gesendet wurde.
Das ist nicht mehr der Fall.

Folgende, relevante, Plugins wurden aktualisiert:
- WooCommerce: 10.2.2 → 10.3.4
- WPML Multilingual & Multicurrency for WooCommerce: 5.5.2.1 → 5.5.2.3
- WPML Multilingual CMS: 4.8.2 → 4.8.4

WPML String Translation wurde nicht aktualisiert, es gab kein Update zu dem Zeitpunkt.

Beispiel-Request:
curl -X PUT "example.org/wp-json/wc/v3/products/1370/variations/1372?consumer_key=123&consumer_secret=456" -H "Content-Type: application/json" -d '{"stock_quantity": 123}'

Als Antwort gibt die REST API nun das aktualisierte Produkt zurück.
Wenn ich stock_quantity von 100 auf 200 aktualisiere, gibt die API folgendes zurück:
- WPML String translation aktiv: 100 (unerwartet)
- WPML string translation inaktiv: 200 (erwartet)

Wenn ich anschließend von 200 auf 300 aktualisiere, erhalte ich mit WPML Stringslation aktiv 200 zurück.
Ich erhalte mit dem Plugin aktiviert also immer einen veralteten Wert.

Ich erwarte, dass die REST Response den korrekten Wert für die stock_quantity zurückgibt, wenn diese modifiziert wird.

Die Symptome:
Die REST API gibt den veralteten Lagerbestand zurück, wenn WPML String Translation aktiv ist.

Fragen:
Warum gibt die REST API den veralteten Lagerbestand zurück, wenn WPML String Translation aktiv ist?
Bitte prüfen.

November 24, 2025 um 1:33 p.m. #17605064

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Damit wir das Verhalten gezielt analysieren können, benötige ich bitte eine konkrete Schritt-für-Schritt-Anleitung zur Reproduktion des Problems in Ihrer Testumgebung.

Auf Basis Ihrer bisherigen Beschreibung schlage ich folgenden Ablauf zur Verifikation vor. Bitte korrigieren Sie mich, falls diese Annahmen nicht zutreffen:

Vorgeschlagene Schritte zur Reproduktion:

1. Anmeldung im WordPress-Backend
2. Aktivierung des Plugins „WPML String Translation“
3. Auswahl eines variablen Produkts (z. B. Produkt-ID 1370 mit Variation 1372)
4. Prüfung des aktuellen Werts von `stock_quantity` (z. B. 100)
5. Senden des folgenden REST API Requests:

   PUT /wp-json/wc/v3/products/1370/variations/1372
   Body: { "stock_quantity": 200 }

6. Beobachtung der REST-Response:
– Erwartetes Verhalten: Rückgabe von stock_quantity = 200
– Tatsächliches Verhalten: Rückgabe des vorherigen Werts (z. B. 100)
7. Deaktivierung von „WPML String Translation“
8. Wiederholung des gleichen REST API Requests
9. Beobachtung: Die API gibt nun den korrekten Wert (z. B. 200) zurück

Könnten Sie bitte bestätigen, ob diese Schritte den Fehler korrekt abbilden, oder uns über Abweichungen informieren?

Zusätzlich wäre ich Ihnen dankbar, wenn Sie – sofern möglich – Screenshots der folgenden Punkte zur Verfügung stellen könnten:

– des gesendeten REST-Requests
– der jeweiligen REST-Responses
– der Produkt-/Variationsansicht im Backend (Lagerbestand)

Die Zugangsdaten zur Staging-Umgebung können Sie mir gerne in einer separaten privaten Nachricht senden.

Dezember 1, 2025 um 9:01 a.m. #17621700

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Vielen Dank für die Details!

Ich überprüfe dies mit unserem 2nd-Tier-Team und werde mich bei Ihnen melden, sobald ich Neuigkeiten oder Fragen für Sie habe.

Dezember 1, 2025 um 4:25 p.m. #17623371

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Unser 2nd-Level-Team hat den Fall geprüft und konnte das Verhalten auf einer eigenen WCML-Installation nicht nachstellen. Sie haben festgestellt, dass der Datenbankwert korrekt aktualisiert wird und dass eine GET-Abfrage direkt nach dem PUT den richtigen Wert zurückgibt. Das Problem betrifft also nur die erste PUT-Antwort, die veraltete Daten liefert.

Der wesentliche Unterschied zwischen Ihrer Umgebung und unserer Testumgebung scheint der Server-Schutzlayer sowie eventuell aktives Caching zu sein.

Um die Ursache einzugrenzen, benötigen wir bitte folgende Prüfungen:

1. Den Server-Schutzlayer kurzzeitig deaktivieren und den PUT-Request erneut testen.
2. Überprüfen, ob irgendeine Form von Caching aktiv ist (Server-Cache, Object-Cache, Proxy-Cache). Falls ja, bitte kurzzeitig deaktivieren und erneut testen.

Diese Schritte helfen uns festzustellen, ob die veraltete PUT-Antwort durch den Server-Schutz oder ein Cache-System verursacht wird und nicht durch WPML/WCML selbst.

Bitte teilen Sie uns die Ergebnisse dieser beiden Tests mit.

Dezember 3, 2025 um 3:53 p.m. #17631580

Robert Rosanke

Hallo Bruno.

1.) Ohne Zugriffsschutz besteht der Fehler ebenfalls.
Wir haben auf der Live-Seite den gleichen Fehler und dort gibt es keinen .htaccess Zugriffsschutz.

2.) Auf den Staging-Seiten ist meines Wissens nach kein serverseitiges Caching aktiv.
Wir haben WP Rocket auf Testseiten aktiviert.
Aber auch das macht keinen Unterschied, ob aktiviert oder nicht.

Der einzige Unterschied ist scheinbar, ob WPML String Translation aktiv ist oder nicht.
Wenn WPML String translation deaktiviert ist, passt alles und funktioniert wie erwartet.

Wir haben mittlerweile eine drohende Account-Sperrung bei Amazon, weil die fehlerhafte HTTP-Antwort so viele Warnungen im Billbee-Ereignismonotor erzeugt, dass die Mitarbeiter meines Kunden die wirklich wichtigen Fehlermeldungen, die die Amazon Anbindung betroffen haben, übersehen haben.

Dezember 4, 2025 um 11:09 a.m. #17633687

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

An dieser Stelle ist das von Ihnen geschilderte Verhalten klar – die REST-API liefert einen veralteten Lagerbestand zurück, wenn WPML String Translation aktiviert ist. Die weiteren von Ihnen genannten Symptome (Amazon-Warnungen, fehlerhafte HTTP-Antworten und das Risiko einer Kontosperrung) deuten jedoch darauf hin, dass möglicherweise ein größeres Problem vorliegt, für das uns derzeit noch nicht alle technischen Details vorliegen.

Um die Situation richtig beurteilen und weitere Amazon-bezogene Probleme vermeiden zu können, benötigen wir genauere Informationen zu den erzeugten Fehlermeldungen.

Könnten Sie uns bitte die genauen Fehlermeldungen oder Log-Einträge zur Verfügung stellen, die Billbee oder Amazon ausgeben? Konkret benötigen wir:

* Die vollständige HTTP-Antwort, die Billbee als fehlerhaft markiert
* Jegliche Fehlerprotokolle oder Warnungen von Billbee/Amazon im Zusammenhang mit diesen Anfragen
* Die genaue API-Anfrage und die entsprechende Antwort, die die Warnungen auslöst

Derzeit kennen wir nur das Problem der veralteten Bestandsangabe in der API-Antwort, aber die Amazon-Warnungen könnten durch etwas anderes verursacht werden, das gleichzeitig passiert. Mit den vollständigen Fehlerdaten können wir feststellen, ob:

* das Problem mit WPML String Translation direkt für die Amazon-Warnungen verantwortlich ist, oder
* ob ein separates, davon unabhängiges Problem vorliegt, das ebenfalls untersucht werden muss

Dezember 4, 2025 um 3:19 p.m. #17635135

Robert Rosanke

Hallo Bruno,

danke fur deine Rückmeldung.

Die weiteren von Ihnen genannten Symptome (Amazon-Warnungen, fehlerhafte HTTP-Antworten und das Risiko einer Kontosperrung) deuten jedoch darauf hin, dass möglicherweise ein größeres Problem vorliegt, für das uns derzeit noch nicht alle technischen Details vorliegen.
Die Amazon-Kontosperrung droht, weil ein Mitarbeiter einen Fehler übersehen hat, den unsere Billbee-Automatisierungen geloggt haben.
Der Fehler wurde übersehen, weil die veraltete Bestandsangabe in der API-Antwort, über die wir hier in diesem Ticket sprechen, viele Einträge in den Billbee-Fehlerberichten erzeugt.
Es entstehen so viele Fehlereinträge wegen der veralteten Bestandsangabe in der API-Antwort, dass ein Mitarbeiter wirklich wichtige, andere Fehler übersehen und nicht korrigiert hat.

Das hat technisch gesehen nichts mit WooCommerce und WPML zu tun.
Es handelt sich hie rum einen menschlichen Fehler, der durch die vielen Fehlermeldungen, die durch die veraltete Bestandsangabe in der API-Antwort entstehen, begünstigt wurde.

Derzeit kennen wir nur das Problem der veralteten Bestandsangabe in der API-Antwort, aber die Amazon-Warnungen könnten durch etwas anderes verursacht werden, das gleichzeitig passiert.
Das Problem der veralteten Bestandsangabe in der API-Antwort ist das, worauf wir uns hier konzentrieren.

Könnten Sie uns bitte die genauen Fehlermeldungen oder Log-Einträge zur Verfügung stellen, die Billbee oder Amazon ausgeben? Konkret benötigen wir:

* Die vollständige HTTP-Antwort, die Billbee als fehlerhaft markiert
&
* Die genaue API-Anfrage und die entsprechende Antwort, die die Warnungen auslöst
Die haben wir in diesem Ticket schon zusammen reproduziert. Billbee markiert die veraltete Bestandsangabe in der API-Antwort als Fehler.
Das ist auch korrekterweise als Fehler eingestuft. Es ist ein unerwartetes Ergebnis und Billbee weist uns darauf hin.

* Jegliche Fehlerprotokolle oder Warnungen von Billbee/Amazon im Zusammenhang mit diesen Anfragen
Das ist für dieses Ticket nicht relevant.
Wir müssen die API Antwort fixen. Das ist hier in diesem Ticket unsere Aufgabe.

Dezember 5, 2025 um 8:20 a.m. #17637032

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Könnten Sie bitte prüfen, ob das Problem weiterhin auftritt, wenn String Translation aktiv ist, aber WooCommerce Multilingual (WCML) deaktiviert ist? Das würde uns helfen, die Ursache einzugrenzen.

Dezember 8, 2025 um 12:29 p.m. #17643907

Robert Rosanke

Hallo Bruno,

habe es getestet.

- Wenn WCML inaktiv und WPML String Translation aktiv: Fehler behoben. API Antwort korrekt.
- Wenn WCML aktiv und WPML String Translation inaktiv: Fehler behoben. API Antwort korrekt.
- Wenn WCML aktiv und WPML String Translation aktiv: Fehler besteht weiterhin. API Antwort veraltet.

Das Problem scheint also nur aufzutreten, wenn WCML und WPML String Translation gleichzeitig aktiv sind.
Es gibt wohl einen Konflikt, wenn beide Plugins aktiv sind.

Grüße
Robert

Dezember 9, 2025 um 8:00 a.m. #17645952

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Hallo,

Danke für das Testen. Ich stimme mich mit unseren Entwicklern ab und melde mich, sobald ich neue Informationen habe.

Dezember 11, 2025 um 8:16 a.m. #17654656

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Unser Second-Tier-Team wird eine tiefere Untersuchung auf dem Staging-Server durchführen. Da wir das Problem in unseren eigenen Umgebungen nicht reproduzieren können und dort alles ordnungsgemäß funktioniert, müssen wir die Analyse direkt auf Ihrer Staging-Seite durchführen.

Insbesondere werden wir Folgendes überprüfen:

* `classes/Rest/Hooks.php`, wo die REST-Hooks hinzugefügt werden — einschließlich des Testens unterschiedlicher Prioritäten für `woocommerce_rest_insert_{$type}_object` (z. B. 5 oder 20), da wir sehen, dass im Konstruktor `\WC_REST_Products_V2_Controller::_construct` ein Transient gelöscht wird.
* `classes/Rest/Wrapper/Products/Products.php`, wo die WCML-Logik auf REST-Produktanfragen angewendet wird.

Diese Arbeiten erfordern Änderungen an Plugin-Dateien. Obwohl wir sehr sorgfältig vorgehen, besteht ein kleines Risiko, dass ein Fehler auftreten könnte, der vorübergehend den Zugriff auf die Seite blockiert. Daher benötigen wir FTP-Zugang, um im Notfall schnell eingreifen zu können.

Zusätzlich wäre es hilfreich, wenn serverseitige Schutz- und Sicherheitsmaßnahmen während der Testphase vorübergehend deaktiviert werden könnten, da diese den Prozess beeinträchtigen könnten.

Falls die Staging-Seite für andere Zwecke genutzt wird, empfehlen wir, vorab ein vollständiges Backup anzulegen.

Bitte lassen Sie uns wissen, sobald FTP-Zugang und die temporären Sicherheitsanpassungen eingerichtet sind – und ob dieses Vorgehen für Sie in Ordnung ist.

Dezember 15, 2025 um 12:43 p.m. #17664132

Robert Rosanke

Hallo Bruno,

ich kann den Serverschutz auf der Staging nicht entfernen.
Auch kann ich euch keinen Zugang via FTP geben.
htaccess-Zugriffsschutz ist vielliecht etwas nervig, verstehe ich, ändert jedoch keine HTTP Antwort. Sollte also kein Problem für die Fehlernalyse sein.

Habe euch den Plugin und Theme-Datei-Editor freigeschaltet.
Dort könnt ihr testweise die Prioritäten eurer WCML-callbacks ändern.
Das sollte eigentlich keine Probleme machen.

Bitte testet erstmal mit der aktuellen Staging, wie weit ihr kommt.
Ihr habt bereits admin-Zugang und könnt dort testen, welchen Einfluss die oben von dir vorgeschlagenen Änderungen haben.

Solltet ihr nicht weiter kommen, lasst es mich wissen.
Ich kann euch notfalls eine neue Staging erstellen, bei der ihr mehr Berechtigungen erhalten könnt.
Das kostet mich jedoch viel Zeit.
Vermutlich ist es nicht notwendig, so viel Zeit zu investieren, wenn z.B. nur die hook prio testweise geändert wird. (das dauert nur ein paar Minuten, Staging erstellen kann eine Stunde dauern.)
Es wäre also super, wenn ihr erstmal mit der bestehenden Staging testet und mir ein Update sendet, ob eure Ideen den Fehler lösen.

Dezember 15, 2025 um 2:31 p.m. #17664673

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Ich werde diese Informationen an unsere Entwickler weiterleiten und Sie auf dem Laufenden halten.

Dezember 18, 2025 um 3:24 p.m. #17675374

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+01:00)

Bei der Analyse ist uns ein wesentlicher Unterschied zwischen Ihrer Staging-Umgebung und unserer lokalen Testumgebung aufgefallen.

Wenn `prepare_object_for_response` in
`woocommerce/includes/rest-api/Controllers/Version3/class-wc-rest-product-variations-controller.php` aufgerufen wird, enthält `$response` den korrekten Lagerbestand, während das zugrunde liegende `$object` noch den vorherigen Bestand enthält.

Geht man im Ablauf weiter zurück, sieht man, dass der `_stock`-Wert zuvor korrekt in
`woocommerce/includes/data-stores/class-wc-product-data-store-cpt.php` über `update_or_delete_post_meta()` aktualisiert wird. Ein direkt anschließender `get_post_meta()`-Aufruf liefert an dieser Stelle bereits den neuen Wert. Dieses unterschiedliche Verhalten tritt in unserer lokalen Testumgebung nicht auf.

Da das Problem offenbar umgebungsspezifisch ist, ist das Debugging ausschließlich auf der Staging-Seite sehr zeitaufwendig und eingeschränkt.

Um das Problem effizient weiter untersuchen zu können, wäre es möglich, dass Sie uns eine Kopie der Seite zur Verfügung stellen, damit wir den Fehler lokal reproduzieren können?

Eine der folgenden Optionen wäre ausreichend:

* Ein Datenbank-Dump (SQL) und die Seitendateien, idealerweise ohne das Verzeichnis `/uploads`
oder
* Ein mit Duplicator ([versteckter Link)) erstelltes Paket, ebenfalls nach Möglichkeit ohne `/uploads`

Damit könnten wir die Ursache deutlich schneller identifizieren. Bitte geben Sie uns Bescheid, was für Sie am einfachsten ist.