Neu Batch Datei erstellen

wegweiser98

Neues Mitglied
15. Februar 2023
5
0
Hallo zusammen,
ich bin leider ein absoluter Neuling im Umgang mit JTL Wawi und hoffe, dass mir hier jemand weiterhelfen kann :)
Mein Ziel ist es Dropshipping-Bestellungen im CSV Format automatisch den den Lieferanten per FTP Upload zu übermitteln.
Dazu hab ich mich an diese tolle Anleitung gehalten, jedoch komm ich bei der Erstellung der Batch Datei nicht zum Ziel.
https://guide.jtl-software.de/jtl-wawi/versand/dropshipping-automatisieren/
Kann mir möglicherweise jemand eine Übersicht geben, wie ich meine Daten in die .bat Datei eintragen soll?
Ich gebe hier einfach mal Beispieldaten an und hänge ein Textdokument zur Vorlage der Batch-Datei an 😊
Vorab schonmal vielen Dank.

FTP-Servername: w01eeb0e.kasserver.com
FTP-Serververzeichnis: w01eeb0e/test
Port: 3028
User: w01eeb0e
Passwort: test123
Lokales Laufwerk mit CSV Datein: C:\User\Desktop\Dropshipping-Lieferant
 

Anhänge

  • Vorlage Batchdatei.txt
    1,1 KB · Aufrufe: 20

Verkäuferlein

Sehr aktives Mitglied
29. April 2012
2.513
1.003
Aktuell bin ich auch dabei, das umzusetzen. Ich versuche es allerdings ohne Batch-Datei, hänge aber genau deshalb wahrscheinlich auch noch ein bisschen.

Weiß jemand, wie man Befehle zur Ausführung in der Kommandozeile in der Wawi in den Workflows hinterlegen muss?
Müssen das immer Batchdateien sein oder kann man auch direkt ein "Batch-Script" bzw. Befehlsketten im Workflow hinterlegen?
Wie müssen Pfade und Anführungszeichen gesetzt werden, damit die Befehle korrekt ausgeführt werden?
Und wie genau wird die CMD angesprochen/aufgerufen und auch wieder terminiert?

Im Ideal-Fall erfolgt die Übertragung per SFTP, da ja auch personenbezogene Daten bei Dropshipping-Bestellungen übertragen werden.
Dazu würde ich ein Tool wie WinSCP einsetzen. Hier kannst Du dann auch die Zugangsdaten zum Server/Sitzung speichern und brauchst diese nicht extra nochmal in einer Batch oder direkt in der Wawi hinterlegen.
Das Speichern in WinSCP ist allerdings auch nicht 100% sicher und mit Zugriff auf den Rechner ist auch ein Auslesen möglich.

Wenn ich das richtig verstehe, hast Du auch schon alles umgesetzt, bis zu dem FTP-Upload, korrekt?
In der .txt ist dann ja 1zu1 das Beispiel von JTL aus dem Guide enthalten.

Da sind aus meiner Sicht ein paar Fehler drin. Meines Erachtens stimmen die Pfade nicht mit dem Beispiel darüber überein und es gibt ein paar kleinere Probleme, die das Batch-Script in eine Endlosschleife schicken können.

Möchtest Du denn CSV-Dateien uploaden oder XML?

Hier mal ein paar Tipps für Dich:

Code:
c:
cd "c:\temp\connect\ftp\Dropshipper"
REM Set vars
set server=ftpserver.de
set user=username
set password=password
:TRYAGAIN
set csvCount=0
for %%f in (*.csv) do set csvCount=%csvCount%+1
echo %csvCount%
IF %csvCount%==0 GOTO NOTHINTODO
REM login
echo open %server%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %user%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %password%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
del c:\temp\connect\ftp\Dropshipper\ausgabe.txt
REM execute stuff
echo cd Dropshipper>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
for %%f in (*.xml) do echo put "c:\temp\connect\ftp\Dropshipper\%%f">> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo dir>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo bye>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
REM run the ftp script
ftp -s:"c:\temp\connect\ftp\Dropshipper\temp.tmp" >> "c:\temp\connect\ftp\Dropshipper\ausgabe.txt"
REM delete temp file
del "c:\temp\connect\ftp\Dropshipper\temp.tmp"
move "c:\temp\connect\ftp\Dropshipper\*.xml" "c:\temp\connect\ftp\Gesendet"
GOTO DONE
:NOTHINTODO
ping 192.0.0.0 -n 1 -w 1000
GOTO TRYAGAIN
:DONE

c:
cd "c:\temp\connect\ftp\Dropshipper"
REM Set vars
set server=ftpserver.de
set user=username
set password=password
:TRYAGAIN
set csvCount=0
for %%f in (*.csv) do set csvCount=%csvCount%+1
echo %csvCount%
IF %csvCount%==0 GOTO NOTHINTODO
REM login
echo open %server%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %user%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo %password%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
del c:\temp\connect\ftp\Dropshipper\ausgabe.txt
REM execute stuff
echo cd Dropshipper>> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
for %%f in (*.xml) do echo put "c:\temp\connect\ftp\Dropshipper\%%f">> "c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo dir>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
echo bye>>"c:\temp\connect\ftp\Dropshipper\temp.tmp"
REM run the ftp script
ftp -s:"c:\temp\connect\ftp\Dropshipper\temp.tmp" >> "c:\temp\connect\ftp\Dropshipper\ausgabe.txt"
REM delete temp file
del "c:\temp\connect\ftp\Dropshipper\temp.tmp"
move "c:\temp\connect\ftp\Dropshipper\*.xml" "c:\temp\connect\ftp\Gesendet"
GOTO DONE
:NOTHINTODO
ping 192.0.0.0 -n 1 -w 1000
GOTO TRYAGAIN
:DONE

1.) In diesem Verzeichnis muss die hochzuladende Datei liegen.
2.) Hier die Platzhalter durch die Zugangsdaten ersetzen.
3.) An allen 3 Stellen muss das gleiche stehen, also je nach Dateityp *.xml oder *.csv.

Das Script macht dann im Idealfall folgendes:
- Upload der Dateien in c:\temp\connect\ftp\Dropshipper auf den Server
- Verschieben der Dateien nach Ausführung des Scripts in c:\temp\connect\ftp\Gesendet

Allerdings landet das Script in einer Endlosschleife, wenn es ausgeführt wird, ohne dass eine Datei zum Upload bereit ist, bzw. wenn Du es so verwendest, wie es im Guide steht und .xml Dateien hochgeladen werden sollen, weil es von "GOTO NOTHINTODO" wieder zu "GOTO TRYAGAIN" geschickt wird und das ein endloser Kreislauf ist, bis eine hochzuladende Datei gefunden/gezählt wird und damit der Durchlauf mal zu "GOTO DONE" kommt.
 
Zuletzt bearbeitet:

wegweiser98

Neues Mitglied
15. Februar 2023
5
0
Aktuell bin ich auch dabei, das umzusetzen. Ich versuche es allerdings ohne Batch-Datei, hänge aber genau deshalb wahrscheinlich auch noch ein bisschen.

Im Ideal-Fall erfolgt die Übertragung per SFTP, da ja auch personenbezogene Daten bei Dropshipping-Bestellungen übertragen werden.
Dazu würde ich ein Tool wie WinSCP einsetzen. Hier kannst Du dann auch die Zugangsdaten zum Server/Sitzung speichern und brauchst diese nicht extra nochmal in einer Batch oder direkt in der Wawi hinterlegen.
Das Speichern in WinSCP ist allerdings auch nicht 100% sicher und mit Zugriff auf den Rechner ist auch ein Auslesen möglich.

Wenn ich das richtig verstehe, hast Du auch schon alles umgesetzt, bis zu dem FTP-Upload, korrekt?
In der .txt ist dann ja 1zu1 das Beispiel von JTL aus dem Guide enthalten.

Da sind aus meiner Sicht ein paar Fehler drin. Meines Erachtens stimmen die Pfade nicht mit dem Beispiel darüber überein und es gibt ein paar kleinere Probleme, die das Batch-Script in eine Endlosschleife schicken können.

Möchtest Du denn CSV-Dateien uploaden oder XML?
Danke für deine Nachricht :)
Im Ideal-Fall erfolgt die Übertragung per SFTP, da ja auch personenbezogene Daten bei Dropshipping-Bestellungen übertragen werden.
Da muss ich selbst nochmal korrigieren. Die Übertragung soll, wie du schon sagtest auch per SFTP passieren.

Wenn ich das richtig verstehe, hast Du auch schon alles umgesetzt, bis zu dem FTP-Upload, korrekt?
Richtig, ich habe die Dateien auch schon manuell mit Filezilla übertragen.
Mein Problem ist aktuell noch die Bash Datei.

In der .txt ist dann ja 1zu1 das Beispiel von JTL aus dem Guide enthalten.
Genau, ich hatte gehofft, dass mir jemand möglicherweise angegebenen Beispieldaten in die .txt datei einsetzen könnte,
damit ich einen Überblick erhalte, wie die funktionierende Batch Datei auszusehen hat.
Natürlich bin ich auch für andere Lösungsansätze bezüglich der Batch Datei offen.
Leider hatte ich mit der Google Suche noch nicht das richtige Glück :(
 

Verkäuferlein

Sehr aktives Mitglied
29. April 2012
2.513
1.003
Genau, ich hatte gehofft, dass mir jemand möglicherweise angegebenen Beispieldaten in die .txt datei einsetzen könnte,
damit ich einen Überblick erhalte, wie die funktionierende Batch Datei auszusehen hat.
Natürlich bin ich auch für andere Lösungsansätze bezüglich der Batch Datei offen.
Leider hatte ich mit der Google Suche noch nicht das richtige Glück :(

Hatte scheinbar zu früh auf "Senden" gedrückt, der Beitrag war noch nicht fertig. (s.o.)

Guck Dir mal WinSCP an. Wenn hier noch der ein oder andere "Crack" mithilft, bekommen wir das vielleicht fertig, das darüber sauber laufen zu lassen.

Das Batch-Script von JTL müsste man an ziemlich vielen Stellen ändern, um das genau anzupassen, so wie oben sollte es aber erstmal funktionieren, nur sftp kann Windows halt so nicht einfach.
 
Zuletzt bearbeitet:

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.578
480
Danke für deine Nachricht :)

Da muss ich selbst nochmal korrigieren. Die Übertragung soll, wie du schon sagtest auch per SFTP passieren.
Wenn du per SFTP übertragen willst, kommst du mit dem Script aus dem ursprünglichen Link nicht weiter, denn dort wird per FTP übertragen (SFTP und FTP sind zwei völlig verschiedene Protokolle)
In dem Beispiel wird das bei Windows standardmäßig installierte Programm ftp.exe benutzt. Ich glaube, dieser Client kann nicht mal den Passive Mode benutzen.
Aber wie auch immer, wenn du sowieso per SFTP übertragen willst/musst, dann brauchst du sowieso einen anderen Client. WinSCP wie vom @Verkäuferlein vorgeschlagen ist schonmal ein ganz guter Vorschlag.
Eine andere Möglichkeit wäre scp.exe bzw. sftp.exe. Diese Programme sollten eigentlich bereits installiert sein, denn Win10 kommt ja jetzt auch mit OpenSSH.

EDIT:
Du schreibst ja oben, dass du schon mit Filezilla rumgemacht hast.
Dieses Programm geht auch - der Filezilla kann auch SFTP ;)
 
  • Gefällt mir
Reaktionen: wegweiser98

Verkäuferlein

Sehr aktives Mitglied
29. April 2012
2.513
1.003
@mh1 hat Recht, seit 2018 scheint OpenSSH in Windows 10 integriert worden zu sein.

Mit Filezilla und WinSCP sind die Wege eigentlich recht ähnlich, WinSCP gefällt mir persönlich allerdings ein bisschen besser.

Das Problem ist immer nur, dass bei der Workflow-Ausführung die Meldung "Das Verzeichnis ist ungültig." kommt. Ich habe den Verdacht, dass die Wawi "C:\Program Files (x86)\WinSCP\" nicht klar kommt und dies nicht sauber in die Konsole übergibt, weil da Leerzeichen drin sind.

Vielleicht hat ja jemand ähnliche Erfahrungen und weiß, wie man das der Funktion "Ausführen" in den Workflows beibringt, einfach nur die entsprechenden Befehle in die Konsole zu schreiben.
 

ple

Sehr aktives Mitglied
20. August 2019
572
128
Ich bastel gerade ebenfalls an eine Lösung, wie man mehrere Wawis an eine Masterwawi anbinden kann. Also 5 Wawis als Dropshipper an meiner Wawi. Setzen deine Lieferanten auch die Wawi ein?
Davon abgesehen, dass ich noch nicht weiß, ob das so der richtige Weg ist, weil ich noch keine richtige Lösung habe deren Artikel bei mir vernünftig zu importieren, kann ich aber doch ein wenig hier beisteuern.

Die ganze Geschichte mit Datei hochladen usw. das würde ich mit Powershell machen und Winscp (windows Boardmittel habe ich noch nicht ausprobiert). Ich mache sowas ähnliches, wo ein Ordner bei mir synchron gehalten wird mit dem FTP, damit ein externer Marktplace die Artikeldaten.csv hat und die aktuellen Bilder.

Das schöne bei Powershell ist, man kann sich seinen Code zusammenschreiben und testen und wenn der funktioniert, kann man diesen base64 Encoden lassen, dann hat man ne Menge Zeichen, welches das Programm ist.
Dann müsste man nur noch im Workflow Powershell ausführen und als Parameter den Base64 Code dahinter.
So hat man alles in der Wawi ohne eine Powershelldatei auf den Rechner.
https://mikefrobbins.com/2017/06/15/simple-obfuscation-with-powershell-using-base64-encoding/

Aber vielleicht wäre ein Powershell script, welches vom Aufgabenplaner alle 5 min getriggert wird besser. Somit wäre ein Abbruch der Internetverbindung nicht tragisch, da beim nächsten mal die Bestellungen wieder synchronisiert werden.

ist nur eben dahingeschrieben, aktuell wenig Zeit, sorry. Aber mache hier gerne mit.

Gruß
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.578
480
Ich habe den Verdacht, dass die Wawi "C:\Program Files (x86)\WinSCP\" nicht klar kommt und dies nicht sauber in die Konsole übergibt, weil da Leerzeichen drin sind.
Das kannst du ja testen, indem du WinSCP einfach in einen Ordner ohne Leerzeichen schiebst und schaust, ob es dann ausgeführt wird.

...oder du führst einfach einfach "scp.exe" aus. Nur zum eine Datei kopieren ist WinSCP eigentlich überflüssig, da du dies auch mit OpenSSH erledigen kannst und wie du auch geschrieben hast:
@mh1 hat Recht, seit 2018 scheint OpenSSH in Windows 10 integriert worden zu sein.

Der entsprechende Befehl wäre dann: scp datei1.dta user@8.8.8.8:/data/upload
Du solltest dann die SSH-Authentifizierung des Servers auf Public Key umstellen, damit du nicht jedesmal ein Passwort eingeben musst.
Man sollte aber generell auf Authentifizierung über öffentliche Schlüssel umstellen und Authentifizierung mit Passwort dann auch gleich abschalten (braucht man dann ja nicht mehr).
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Aufruf Ameise als Batch JTL-Ameise - Ideen, Lob und Kritik 0
Neu Laden einer JS-Datei aus dem Nova im Child Template verhindern Templates für JTL-Shop 4
Neu Vorlage Export Datei JTL Ameise - Eigene Exporte 10
Neu Export von Buchungsdaten zur Differenzbesteuerung als CSV Datei Schnittstellen Import / Export 0
Neu Hilfe bei CSV-Datei mit Erscheinungsdatum im Format KW/2024 User helfen Usern - Fragen zu JTL-Wawi 1
Von Workflow lokal gespeicherte Datei direkt wieder löschen lassen JTL-Wawi 1.8 1
Neu Einbindung PHP. Datei ins Template - Wert aus PHP Datei lesen Templates für JTL-Shop 5
Neu REST-API - Auftrag erstellen - wie Versandposition hinzufügen? Schnittstellen Import / Export 0
Neu Workflow erstellen, einen Wert aus den Stammdaten kopieren in einen anderen User helfen Usern - Fragen zu JTL-Wawi 8
Neu Marketing Coupons mit Betrag + versandkostenfrei erstellen Allgemeine Fragen zu JTL-Shop 4
Variationsertikel erstellen und in Woocommerce einbinden JTL-Wawi 1.9 4
Bundles erstellen - Seriennummern Verfolgung JTL-Wawi 1.9 0
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Eine weitere Datenbank erstellen Eigene Übersichten in der JTL-Wawi 2
Neu Child Template erstellen Technische Fragen zu Plugins und Templates 22
Neu Amazon Marke-Hersteller Sets erstellen User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen