Zum Hauptinhalt springen

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 mindestens 32M oder 64M. 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 auf 5000 oder höher.
  • max_input_nesting_level: Stellen Sie sicher, dass er mindestens 64 beträgt.

3. Timeouts​

  • max_execution_time: Der StoreLinkr-Synchronisationsprozess verarbeitet große Datenmengen. Erhöhen Sie den Wert auf 120 Sekunden (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 mindestens 256M oder 512M.

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.

Profi-Tipp

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".