Im wachsenden E-Commerce entscheidet die Geschwindigkeit der Datenpflege über Marge und Kundenzufriedenheit. Wenn Lieferanten täglich neue Preislisten, geänderte Bestände oder Auslaufartikel per FTP oder E-Mail schicken, wird das manuelle Einpflegen über die Benutzeroberfläche schnell zum personellen Flaschenhals.

Besonders in sortimentsstarken Branchen – wie etwa im spezialisierten Teile- und Zubehörhandel (ein typisches Szenario, das wir beispielsweise bei Kunden wie bully-performance / ehemals SUB-Motorradteile mit über 15.000 aktiven Artikeln gelöst haben) – führt manuelle Tipparbeit unweigerlich zu zwei gravierenden Problemen:

  1. Veraltete Einkaufspreise: Preissteigerungen der Hersteller werden erst Tage später im System erfasst. Bei Verkäufen im Shop zahlt der Händler im schlimmsten Fall drauf.
  2. Überverkäufe (Overselling): Ein Artikel ist beim Großhändler vergriffen, steht im Shop aber noch als lieferbar. Stornierungen, negative Google-Bewertungen und verärgerte Kunden sind die Folge.

In diesem Leitfaden zeige ich Ihnen die technische Architektur, wie Sie die JTL-Ameise über die Befehlszeile (CLI) zeitgesteuert automatisieren, welche typischen Fehlerquellen auftreten und ab wann ein individuelles Regelwerk sinnvoller ist.


Die Architektur: Wie ein automatisierter Import-Flow funktioniert

Ein stabiler Import besteht typischerweise aus fünf getrennten Phasen, die sequenziell nachts oder in festen Intervallen ablaufen:

[1. FTP / HTTP Feed]
       │ (Download via SFTP / cURL / Skript)
       ▼
[2. Lokaler Staging-Ordner]
       │ (Format-Prüfung, Encoding-Check & Backup)
       ▼
[3. JTL-Ameise CLI]
       │ (Ausführung mit vordefinierter Vorlage)
       ▼
[4. JTL-Wawi MSSQL-Datenbank]
       │ (Synchronisation mit Onlineshop & Marktplätzen)
       ▼
[5. Logging & Fehler-Alert] (Benachrichtigung bei Abweichungen)

Schritt 1: Das Import-Profil in der JTL-Ameise vorbereiten

Bevor wir eine Zeile Code ausführen, muss in der grafischen Oberfläche der JTL-Ameise eine Importvorlage erstellt und abgespeichert werden:

  1. Öffnen Sie die JTL-Ameise und wählen Sie den Menüpunkt Import -> Artikel -> Artikeldaten.
  2. Laden Sie eine typische Beispieldatei des Lieferanten.
  3. Eindeutiger Identifikator: Wählen Sie die Lieferanten-Artikelnummer oder die EAN / Barcode als Identifikationskriterium. Wenn Sie über die Lieferanten-Artikelnummer aktualisieren, muss der passende Standardlieferant bzw. die Lieferantenzuordnung korrekt hinterlegt sein, damit die Artikel eindeutig gefunden werden.
  4. Felder zuordnen: Weisen Sie mindestens folgende Spalten zu:
    • Artikelnummer / EAN
    • Einkaufspreis Netto (EK)
    • Lagerbestand (oder Lieferantenbestand)
    • Lieferanten-Bestand / Lieferzeit
  5. Import-Einstellungen prüfen: Legen Sie fest, wie vorhandene Artikel aktualisiert werden und wie JTL-Ameise mit fehlenden oder nicht enthaltenen Datensätzen umgehen soll. Beachten Sie: Die Standardwerte dienen vor allem beim Neuanlegen von Datensätzen und ersetzen nicht pauschal leere Werte bei bestehenden Artikeln.
  6. Vorlage speichern: Speichern Sie die Konfiguration unter einem prägnanten Namen ab, z. B. Lieferant_Motorrad_Tagesbestand. Notieren Sie zusätzlich die von JTL-Ameise vergebene Vorlagen-ID (z. B. IMP01) – diese wird später für den CLI-Aufruf benötigt.

Schritt 2: Automatisierter Download via Batch / SFTP

Lieferantendaten liegen meist auf einem externen FTP-Server bereit. Um die Datei nachts um 03:00 Uhr herunterzuladen, eignet sich ein einfaches WinSCP-Skript oder ein schlankes Python-Tool:

# winscp_script.txt
open sftp://lieferant_user:Passwort123@sftp.grosshaendler.de/ -hostkey="<SSH-HOSTKEY-FINGERPRINT>"
cd /export/daily/
get produkte_bestand.csv C:\JTL_Import\staging\produkte_aktuell.csv
exit

Aufgerufen wird das Skript über eine einfache Windows-Batch-Datei (fetch_and_import.bat):

@echo off
set LOGFILE=C:\JTL_Import\logs\import_%date%.log
echo [%time%] Starte FTP-Download... >> %LOGFILE%

"C:\Program Files (x86)\WinSCP\WinSCP.com" /script=C:\JTL_Import\winscp_script.txt >> %LOGFILE%

if %ERRORLEVEL% NEQ 0 (
    echo [%time%] FEHLER beim Download! Abbruch. >> %LOGFILE%
    exit /b 1
)

Schritt 3: Der CLI-Befehl der JTL-Ameise

Sobald die Datei im Verzeichnis C:\JTL_Import\staging\ liegt, kann die JTL-Ameise headless (ohne GUI) gestartet werden. Je nach gebuchter JTL-Edition bzw. Paketkonfiguration steht die CMD-Line-Version möglicherweise nicht zur Verfügung.

Die Syntax für den Aufruf lautet:

echo [%time%] Starte JTL-Ameise Import... >> %LOGFILE%

"C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" ^
  --server=localhost\JTLWAWI ^
  --database=eazybusiness ^
  --dbuser=sa ^
  --dbpass=IhrDatenbankPasswort ^
  --templateid=IMP01 ^
  --inputfile=C:\JTL_Import\staging\produkte_aktuell.csv ^
  --log=C:\JTL_Import\logs\ameise_import.log

echo [%time%] Import beendet mit Code %ERRORLEVEL% >> %LOGFILE%

Wichtiger Sicherheitshinweis: Zugangsdaten gehören nicht in öffentlich zugängliche Ordner oder Repositories. Beschränken Sie den Zugriff auf Batch-Dateien und Konfigurationen auf die benötigten Windows-Benutzer und verwenden Sie beim SFTP-Zugriff den echten SSH-Hostkey-Fingerprint statt einer pauschalen Vertrauensfreigabe.


Die 3 gefährlichsten Fallstricke im Alltag

In der Theorie klingt dieser Ablauf simpel. In der Praxis bei Händlern mit 10.000 bis 50.000 Artikeln sehen wir in unserer IT-Praxis regelmäßig folgende Ausfälle:

1. Zeichensatz-Chaos: UTF-8 vs. ANSI / Windows-1252

Lieferanten exportieren ihre CSVs teilweise in wechselnden Encodings. Ist in der Importvorlage ein anderes Datei-Encoding eingestellt als die tatsächlich gelieferte Datei verwendet, können Sonderzeichen oder Feldinhalte falsch eingelesen werden.

2. Spaltenverschiebung durch neue Attribute

Der Hersteller fügt plötzlich eine Spalte für „Hersteller-Gewährleistung“ ein oder ändert die Reihenfolge bestehender Spalten. Wenn eine gespeicherte Importvorlage dadurch nicht mehr zur Struktur der Datei passt, können Werte falschen Datenbankfeldern zugeordnet werden.

3. Hängende Prozesse im Windows-Aufgabenplaner

Bleibt ein Import etwa durch einen Datenbank-Lock, eine Verbindungsstörung oder einen unerwarteten Fehler hängen, kann der nächste geplante Lauf parallel starten und weitere Probleme verursachen. Deshalb sollten Laufzeitbegrenzung, Prozessprüfung und Fehler-Alert Teil der Automatisierung sein.


Wann Standard-Skripte an Grenzen stoßen: Der Weg zu VendorHive

Ein statisches Skript funktioniert gut, solange ein einziger Lieferant eine saubere, verlässliche Datei liefert.

Sobald ein Händler jedoch:

reichen einfache Batch-Dateien nicht mehr aus.

Genau aus dieser praktischen Herausforderung heraus haben wir bei SNBL IT unser System VendorHive entwickelt: Eine intelligente Daten-Middleware, die Lieferantendaten vorab validiert, Ausreißer filtert, Preisregeln anwendet und die bereinigten Daten anschließend an den vorgesehenen Importprozess von JTL-Wawi oder per API/Webhook an Systeme wie Shopify und WooCommerce übergibt.


Fazit: Zeit sparen und Fehlerquote deutlich senken

Die Automatisierung der JTL-Ameise kann für wachsende Händler ein großer Hebel sein:


Benötigen Sie Unterstützung bei Ihrer JTL-Infrastruktur?

Haben Sie Lieferanten mit wechselnden Dateiformaten, bricht Ihr Import regelmäßig ab oder wollen Sie Ihren Bestandsabgleich auf Echtzeit umstellen?

Als IT-Spezialist für E-Commerce und ERP-Schnittstellen im Raum Bremen & Niedersachsen analysiere ich gerne Ihre aktuellen Workflows.

Kostenlosen Workflow-Check anfragen · Mehr zu unseren Schnittstellen-Lösungen