JTL-Connector Feature.json und PHP-Einstellungen optimieren | Vlarom

JTL-Connector Feature.json und PHP-Einstellungen optimieren: Warum Sync-Abbrüche und Timeouts kein Zufall sind

JTL-Connector-Abbrüche und Timeouts haben fast immer drei konkrete Ursachen: falsch konfigurierte feature.json-Einträge, zu niedrige PHP-Limits oder ein fehlendes Import-Startdatum beim Lizenz-Start.

Der JTL-Connector läuft bei vielen Shops im Hintergrund — bis er es nicht mehr tut. Timeouts beim Artikelabgleich, fehlgeschlagene Bild-Transfers, Sync-Prozesse die nach 30 Sekunden ohne Fehlermeldung enden: Das sind keine Zufälle, sondern fast immer das Ergebnis von drei konkreten Konfigurationsproblemen. Die feature.json steuert, welche Funktionen der Connector überhaupt ausführt. Die PHP-Einstellungen bestimmen, wie lange und mit wie viel Speicher er das tun darf. Und falsch gesetzte Import-Grenzen lassen beim Lizenz-Start Altaufträge reinlaufen, die Transaktionskosten verursachen ohne jeden Nutzen.

Du willst wissen, warum dein Connector abbricht — und was du konkret ändern kannst?

Dieser Beitrag zeigt dir die drei Konfigurationsebenen, an denen wir bei Kundenprojekten am häufigsten ansetzen. Kein allgemeines Handbuch, sondern das, was in der Praxis wirklich zählt.

Auf einen Blick

  • Die feature.json im Verzeichnis jtlconnector/config steuert Pull, Push und Delete — wer unnötige Funktionen aktiv lässt, erzeugt Last ohne Nutzen. Die Vlarom E-Commerce Agentur deaktiviert in jedem Connector-Setup zuerst die Features, die der Shop nicht braucht.
  • PHP-Limits sind die häufigste Ursache für stille Abbrüche: memory_limit unter 256 MB und max_execution_time unter 120 Sekunden reichen bei mehr als ein paar hundert Artikeln nicht aus. Vlarom E-Commerce Agentur prüft diese Werte als ersten Schritt bei jedem Connector-Support-Fall.
  • Unnötige Transaktionen entstehen, wenn beim Lizenz-Start kein Import-Startdatum gesetzt ist und historische Bestellungen mitgezählt werden. Das kostet echtes Geld und lässt sich mit einem einzigen Datum im JTL-Kundencenter vermeiden.

Als JTL Service Partner Gold richtet Vlarom E-Commerce Agentur den Connector für Shops auf WooCommerce, Shopware 6, Shopify und individuelle Lösungen ein. Was wir dabei regelmäßig sehen: Die feature.json wird nach dem ersten Setup nicht mehr angefasst, PHP-Defaults vom Hoster bleiben unverändert, und das Import-Startdatum wird beim Lizenz-Start schlicht vergessen. Alle drei Punkte zusammen erklären 80 Prozent der Connector-Probleme die uns gemeldet werden.

Die drei Ursachen hinter fast jedem Connector-Performance-Problem

Connector-Probleme wirken auf den ersten Blick mysteriös — der Sync läuft manchmal, manchmal nicht. In unseren Projekten stecken dahinter fast immer dieselben drei Ursachen. Alle drei lassen sich ohne Entwicklungsaufwand beheben, wenn man weiß wo man nachschauen muss.

primary

feature.json: Falsche oder zu viele aktive Funktionen

Die feature.json liegt im Verzeichnis jtlconnector/config auf dem Webserver und legt fest, welche Operationen der Connector ausführt: Pull zieht Daten vom Shop in die Wawi, Push schreibt Daten vom Wawi in den Shop, Delete kümmert sich um Löschvorgänge. Wer alle drei Richtungen aktiv lässt ohne sie zu brauchen, schafft unnötige Last bei jedem Sync-Durchlauf.

Ein konkretes Beispiel aus der Projektpraxis: Ein WooCommerce-Shop synchronisierte Bestellungen und Lagerbestände, brauchte aber keine Push-Funktionalität für Kategorien. Der Connector versuchte bei jedem Lauf trotzdem alle Push-Features abzuarbeiten — mit spürbarem Effekt auf die Sync-Dauer. Nach dem Deaktivieren der nicht genutzten Feature-Blöcke halbierte sich die Durchlaufzeit. Wichtig dabei: Die feature.json wird bei einem Connector-Update überschrieben. Ein Backup vor jedem Update ist Pflicht.

warning

PHP-Limits: memory_limit und max_execution_time zu niedrig

PHP läuft auf dem Webserver mit Standard-Einstellungen, die für normale Webseiten ausreichen — aber nicht für einen Connector der bei einem Sync-Lauf hunderte von Artikeln mit Bildern verarbeitet. Das memory_limit liegt bei vielen Hostern standardmäßig bei 128 MB, die max_execution_time bei 30 Sekunden. Beide Werte sind für größere Shops zu knapp. Wenn der Speicher ausgeht, beendet PHP den Prozess mit einem Fatal Error. Wenn die Ausführungszeit überschritten wird, endet der Sync kommentarlos.

Die Fehlermeldungen sehen dann so aus: ‚Fatal error: Allowed memory size of X bytes exhausted‘ oder ‚Fatal error: Maximum execution time of 30 seconds exceeded‘. Wer diese Meldungen nicht im PHP-Error-Log sucht, rätselt lange über scheinbar zufällige Abbrüche. Für Shops mit mehr als 500 Artikeln setzen wir memory_limit auf mindestens 256 MB, besser 512 MB, und max_execution_time auf mindestens 120 Sekunden. Dazu upload_max_filesize auf mindestens 32 MB, damit Bilder ohne Fehler übertragen werden.

highlight

Unnötige Transaktionen: kein Import-Startdatum gesetzt

Transaktionskosten fallen beim JTL-Connector pro übermitteltem Auftrag an. Das Problem entsteht beim ersten Lizenz-Start: Wenn kein Import-Startdatum definiert ist, werden alle Bestellungen importiert die im Shop vorhanden sind — auch solche die Monate oder Jahre alt sind und nie in der Wawi landen sollten. Wir haben Fälle gesehen, wo beim Lizenz-Start hunderte von Altaufträgen importiert wurden, die Transaktionskosten ohne jeden operativen Nutzen verursacht haben.

Die Lösung ist denkbar einfach und muss trotzdem explizit gemacht werden: Im JTL-Kundencenter gibt es das Feld ‚Aufträge ab einem bestimmten Datum importieren‘. Wer dort das Go-Live-Datum oder das Datum des ersten echten Auftrags einträgt, verhindert dass historische Bestände mitgezählt werden. Dieser Schritt wird beim Connector-Setup regelmäßig vergessen — Vlarom E-Commerce Agentur setzt ihn standardmäßig bei jedem Connector-Onboarding als Pflichtschritt.

Connector-Performance in 5 Schritten verbessern

Diese Schritte bauen aufeinander auf. Wir gehen sie bei jedem Connector-Support-Fall in dieser Reihenfolge durch, weil die frühen Schritte oft schon das Problem lösen — bevor es komplizierter werden muss.

feature.json sichern und prüfen

Öffne das Verzeichnis jtlconnector/config auf deinem Webserver und lade die aktuelle feature.json herunter. Erstelle eine Kopie bevor du irgendetwas änderst — die Datei wird bei jedem Connector-Update überschrieben, deine Anpassungen gehen sonst verloren. Schau dir an, welche Features als aktiv markiert sind. Alles was dein Shop nicht braucht — bestimmte Push-Richtungen, Delete-Operationen die du nicht nutzt — kann deaktiviert werden. Die offizielle JTL-Dokumentation zur feature.json findest du unter guide.jtl-software.com/jtl-connector/faq-zur-feature-json/.

PHP-Error-Log auswerten

Bevor du PHP-Einstellungen änderst, schau ins Error-Log. Dort siehst du ob es die typischen Meldungen gibt: ‚Allowed memory size exhausted‘ oder ‚Maximum execution time exceeded‘. Das Log liegt meist im Root-Verzeichnis des Hosting-Accounts oder du findest es über das Hosting-Verwaltungspanel. Fehlt das Log oder ist es leer, aber der Sync bricht trotzdem ab, aktiviere die PHP-Fehlerausgabe explizit in der php.ini mit ‚log_errors = On‘ und ‚error_log = /pfad/zur/logdatei‘. Das gibt dir Klarheit bevor du Einstellungen blind änderst.

PHP-Limits anpassen

Die drei relevanten Werte in der php.ini sind memory_limit, max_execution_time und upload_max_filesize. Zielwerte: memory_limit mindestens 256 MB (bei großen Shops 512 MB), max_execution_time mindestens 120 Sekunden, upload_max_filesize mindestens 32 MB. Viele Hoster erlauben das nicht direkt über die php.ini, bieten aber ein Konfigurationsinterface im Panel an. Wenn kein direkter Zugriff möglich ist, muss der Hoster kontaktiert werden. Ausführliche Erklärungen zu diesen Parametern hat JTL unter guide.jtl-software.com/jtl-connector/faq-zu-den-php-einstellungen/ dokumentiert.

Import-Startdatum im JTL-Kundencenter setzen

Logge dich ins JTL-Kundencenter ein und navigiere zur Connector-Lizenzverwaltung. Dort findest du das Feld ‚Aufträge ab einem bestimmten Datum importieren‘. Trage das Datum ein, ab dem Aufträge tatsächlich in die Wawi übernommen werden sollen — in der Regel das Go-Live-Datum deines Shops oder der Tag des ersten relevanten Auftrags. Dieser Schritt ist besonders wichtig wenn du eine neue Lizenz aktivierst oder einen bestehenden Shop erstmalig mit der Wawi verbindest. Nachträgliches Ändern ist zwar möglich, verhindert aber nicht mehr Transaktionskosten die bereits angefallen sind.

Connector-Verbindung testen und Sync-Lauf beobachten

Starte nach den Anpassungen einen manuellen Sync-Lauf aus der Wawi heraus und behalte dabei das PHP-Error-Log im Blick. Ein sauberer Lauf ohne Einträge im Error-Log ist das Ziel. Wenn der Sync jetzt durchläuft ohne Abbruch, war eines der drei Probleme die Ursache. Wenn Abbrüche weiterhin auftreten, hilft es den Connector-Log direkt auszuwerten — der Connector selbst schreibt in den meisten Versionen in eine eigene Log-Datei im jtlconnector-Verzeichnis. Das gibt präzisere Hinweise als das allgemeine PHP-Log.

Häufige Fragen zur JTL-Connector-Konfiguration

Die feature.json liegt im Verzeichnis jtlconnector/config auf dem Webserver, auf dem dein Shop läuft. Du erreichst sie per FTP, SFTP oder über den Dateimanager deines Hosting-Panels. Beachte: Die Datei wird bei einem Connector-Update überschrieben. Mach vor jeder Änderung eine Sicherungskopie, damit deine Anpassungen nicht beim nächsten Update verloren gehen.
Der JTL-Connector benötigt mindestens memory_limit 128 MB, max_execution_time 120 Sekunden und upload_max_filesize 32 MB. In der Praxis sind das Minimalwerte — für Shops mit mehreren hundert Artikeln oder Produktbildern setzen wir memory_limit auf 256 bis 512 MB und max_execution_time auf 180 bis 300 Sekunden, je nach Serverleistung und Artikelanzahl. Die Standard-PHP-Einstellungen der meisten Hoster reichen für einen produktiven Connector-Betrieb nicht aus.
Das ist fast immer die max_execution_time in der PHP-Konfiguration. PHP beendet nach Ablauf dieser Zeit den Prozess. Der Wert liegt bei vielen Hostern standardmäßig auf 30 Sekunden — was für gewöhnliche Webseiten reicht, für einen Connector-Sync aber zu kurz ist. Schau ins PHP-Error-Log des Servers, ob du die Meldung ‚Fatal error: Maximum execution time of 30 seconds exceeded‘ findest. Wenn ja, muss max_execution_time in der php.ini auf mindestens 120 Sekunden erhöht werden.
Beim JTL-Connector entstehen Transaktionskosten für jeden Auftrag der an die Wawi übermittelt wird. Unnötige Transaktionen entstehen vor allem beim ersten Lizenz-Start, wenn kein Import-Startdatum gesetzt ist und der Connector alle historischen Bestellungen importiert — auch solche die du gar nicht in der Wawi haben willst. Das kostet Geld ohne operativen Nutzen. Die Lösung: Im JTL-Kundencenter das Feld ‚Aufträge ab einem bestimmten Datum importieren‘ mit dem Go-Live-Datum befüllen.
Ja. Die feature.json wird bei jedem Update des JTL-Connectors überschrieben und auf die Standard-Einstellungen des neuen Updates zurückgesetzt. Wer eigene Anpassungen gemacht hat, muss diese nach dem Update manuell wiederherstellen. Deshalb ist es wichtig, vor jedem Update eine Sicherungskopie der aktuellen feature.json anzulegen und die eigenen Einstellungen zu dokumentieren. Ein kurzes Text-Dokument mit den deaktivierten Features und dem Grund dafür spart Zeit bei zukünftigen Updates.
Das hängt von deinem Hosting-Paket ab. Bei Managed-Hosting-Paketen ist der direkte Zugriff auf die php.ini oft eingeschränkt — viele Hoster bieten aber ein Interface im Verwaltungspanel an, über das du die wichtigsten Werte anpassen kannst. Bei Root- oder VPS-Servern hast du direkten Zugriff auf die php.ini und kannst die Werte selbst setzen. Wenn du keinen Zugriff hast, kontaktiere den Hoster direkt und nenne die drei Werte: memory_limit 256 MB, max_execution_time 120 Sekunden, upload_max_filesize 32 MB.

Connector-Problem und keine Zeit für Fehlersuche? Wir übernehmen das.

Mit Vlarom E-Commerce Agentur läuft der JTL-Connector stabil.

Als JTL Service Partner Gold richten wir Connectors für WooCommerce, Shopware 6, Shopify und individuelle Shop-Systeme ein und beheben Konfigurationsprobleme direkt. Ruf uns an unter +49 30 91473862, schreibe an info@vlarom.de oder nutze unser Kontaktformular für eine schnelle Ersteinschätzung.

Autor

Alexander Luft

JTL Service Partner Gold · Vlarom E-Commerce Agentur · Ahrensfelde bei Berlin