Warum erscheinen nicht alle Produktvariationen in WooCommerce?
Wenn Sie große variable Produkte (Produkte mit Dutzenden oder Hunderten von Variationen) mit WooCommerce synchronisieren, fällt Ihnen möglicherweise auf, dass einige Variationen fehlen. Zum Beispiel senden Sie 200 Variationen, sehen aber nur 7 in WooCommerce.
Die Ursache: Server-Limits
Dieses Problem wird selten durch einen Fehler im Code verursacht. Meist wird die WooCommerce REST API durch Limits des Webservers oder von PHP unterbrochen. Eine große JSON-Nutzlast (mit Hunderten von Variationen) kann leicht mehrere Megabyte erreichen. Stößt der Server mitten im Vorgang an ein Limit, kann er die Daten abschneiden oder in ein Timeout laufen, sodass WordPress nur einen Teil der Variationen verarbeitet.
Zu prüfende Serverkonfiguration
Um das Problem zu beheben, sollten Sie oder Ihr Hosting-Anbieter die folgenden PHP- und Server-Limits erhöhen:
1. POST-Daten-Limits
post_max_size: Erhöhen Sie diesen Wert auf mindestens32Moder64M. Ist er zu niedrig, lehnt der Server die große JSON-Nutzlast komplett ab.upload_max_filesize: Er ist zwar in erster Linie für Dateien gedacht, einige Serverkonfigurationen begrenzen damit aber auch POST-Anfragen.
2. Limits für Eingabevariablen
max_input_vars: Hier liegt häufig der Übeltäter. Große WooCommerce-Produkte umfassen viele Variablen. Erhöhen Sie den Wert auf5000oder höher.max_input_nesting_level: Stellen Sie sicher, dass er mindestens64beträgt.
3. Timeouts
max_execution_time: Der StoreLinkr-Synchronisationsprozess verarbeitet große Datenmengen. Erhöhen Sie den Wert auf120Sekunden (2 Minuten), damit das Skript nicht zu früh beendet wird.
4. PHP-Arbeitsspeicher
memory_limit: Stellen Sie sicher, dass PHP genug Speicher hat, um die großen JSON-Objekte zu dekodieren und zu verarbeiten. Für große Kataloge empfehlen wir mindestens256Moder512M.
So überprüfen Sie diese Einstellungen
Sie können diese Werte in Ihrem WordPress-Dashboard unter Werkzeuge -> Website-Zustand -> Info -> Server prüfen oder indem Sie auf Ihrem Server eine phpinfo()-Datei anlegen.
Wenn Sie ein Managed Hosting nutzen und diese Werte nicht selbst ändern können, wenden Sie sich an den Support Ihres Hosters und bitten Sie ihn, "die PHP-Limits für die Verarbeitung großer REST-API-Anfragen zu erhöhen".