Automatischer CSV Import möglich?

Hallo liebe Leut’!

Ist es eigentlich möglich, ohne selbst programmieren zu müssen, einen automatischen Import anzustoßen, indem z.B. ein WAWI die CSV Dateien erstellt, automatisch per FTP hochlädt und dann eine URL im Shop aufruft, welche die CSV Dateien in einem bestimmten Verzeichnis importiert?

Oder müsste ich da das Import-Tool vom Admin duplizieren/umfunktionieren?

Danke für eure Infos!

http://live.w00dy.info @work @ http://www.gugler.at

Hi,

der generische Import ist eigentlich mehr für den initialen Import von Dateien gedacht, weniger für inkrementelle Ideen. Welche WaWi schwebt Dir denn vor? Es gibt verschiedene technologische Ansätze…

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Also die WAWI hat der Kunde bereits seit längerem im Einsatz - und heisst globemanager plus von globesystems

Die haben dem Kunden eine Schnittstelle versprochen, als Endergebnis kommt momentan eine automatisch per FTP hochgeladene CSV Datei mit Produkte heraus und ein Verzeichnis mit Bildern.

Ich habe noch Kategorien/Kategorieverknüpfungen angefordert, da es bei über 60.000 Produkte etwas mühsam ist, diese händisch jede Nacht zuzuweisen ;-))

Tja, und nach dem Export und dem Upload der CSV Datei kann dieses System eine URL aufrufen, die den Import anstossen soll.

Problem: Es gibt diese URL anscheinend nicht gg

Jetzt müsste ich wohl entweder den gen-Import verwenden, der meines Erachtens seeeeehr langsam ist, oder eines meine früheren Importscripte für TYPO3 umschreiben.
Vielleicht hat ja jemand noch eine andere Idee oder bereits ein Script, mit dem man vorhandene CSV Dateien, die nach der MySQL Tabelle benannt ist, automatisch importieren kann?

Danke, liebe Grüße,

Chris

http://live.w00dy.info @work @ http://www.gugler.at

Hallo Chris,

mit ohne Programmieren wird’s in diesem Zusammenhang wahrscheinlich nix. FTP + CSV mit nächtlichem Cronjob sind zwar nette Ideen aber nicht wirklich für den Alltagsbedarf gemacht. Viel zu viele Möglichkeiten, wo etwas schief laufen kann: Export, upload, Import. Was passiert zum Beispiel, wenn der Kunde im Ladengeschäft einen Artikel ausverkauft, sollte da der Artikel nicht sofort im Webshop deaktiviert werden?

Ein zeitgemässerer Ansatz wäre z.B. SOAP. Geht leider mit der CE nicht, es sei denn, jemand programmiert ein entsprechendes Modul.

Und der allerneueste Schrei wären protocol buffers.

Den Globemanager kenne ich leider nicht. Aber vielleicht wäre es an der Zeit, an dieser Front ebenfalls für frischen Wind zu sorgen? Ich weiss, dass es Schnittstellen gibt zu BüroWare, actindo, und Pixi; CAO befindet sich wohl noch im Aufbau (<-- korrigiert mich!).

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Ich habs fast befürchtet ;o)

Also das mit dem Bestand ist bei diesem Shop kein Problem, es geht hier nicht wirklich um einen ICHKAUFDASGLEICH Shop, sondern um Anfragen, auch für Importe.

Das System einfach mal so umzustellen wäre in diesem Fall so, wie sich sich Autoreifen schenken zu lassen, und weil sie nicht passen, sich dann halt ein anderes Auto zu kaufen, es handelt sich nämlich um ein komplettes ERP System :wink:

Die Firma, die das programmiert hat, bietet eben eine Schnittstelle an, indem sie CSV Dateien im für Oxid benötigten Format bereitstellen lässt. Ein echter “Connector” wäre natürlich besser gewesen, aber das liegt ja leider nicht in unserer Hand g

Naja, ich werde einfach wieder mal einen CSV-Import schreiben.

Mal sehen ob der schneller läuft als der generische Import, hoffe ich kannmit einem Datum “letzte Bearbeitung” arbeiten.

Cheeeers


http://live.w00dy.info @work @ http://www.gugler.at

Ich hätte zum Import der Kategorien (oxcategories) noch eine Frage…

Die Felder OXROOTID, OXLEFT, OXRIGHT lassen mich darauf schließen,

dass das ganze als Binärbaum abgespeichert ist… liege ich hier richtig?

Lg Chris


http://live.w00dy.info @work @ http://www.gugler.at

Hallo Chris,

Zauberwörtchen ‘Nested Sets’ in diesem Zusammenhang. Kennst Du den schon?http://www.oxid-esales.com/de/resources/forum/entwickler/artikel-kategorie-zuordnung

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

lach Ja… Ein Nested Set ist ja die Umsetzung von (binären) Bäumen in SQL :wink:

Wollte nur sicher gehen.

Danke!


http://live.w00dy.info @work @ http://www.gugler.at

Hallo!

Wollte nur bekannt geben, dass eine Kombination aus PHP Script und Shell Script, welches per mysqlimport die Daten importiert, spitze funktioniert!

[ol]
[li] Das ERP/WAWI startet einen automatischen Export[/li]
[li] Es lädt ALLE Dateien (mit dem Namen der Datenbanktabelle von Oxid) per FTP hoch[/li]
[li] Wenn alle Dateien hochgeladen sind, ruft das WAWI eine URL mit einem PHP Script auf[/li]
[li] Dieses wird 1-2 Minuten brauchen, und geht in einer Schleife die zu importierenden CSV Dateien durch
[/li][ul]
[li] dabei sucht es sich die Feldbezeichnungen des CSV Files, und die der dazugehörigen Tabelle[/li]
[li] Dann filtert es die GEMEINSAMEN Spalten heraus (es kann ja nur importiert werden, wo es ein Feld dazu gibt ;-))[/li]
[li] legt eine Datei mit diesen Spalten an[/li]
[li] und zerlegt alle CSV Dateien in lauter handliche Dateien mit z.B. 1000 Einträgen und nur den benötigten Spalten und legt sie in Unterordnern als CSV mit dem Spaltennamen an, damit sie problemlos mit mysqlimport wieder importiert werden können (eventuell bereits vorhandene csv Dateien in den unterordnern werden dabei gelöscht).[/li]
[li] Ablegen der zerlegten Datei in den Ordner Archiv.[/li]
[li] Dann erscheint eine Meldung, nach dem man dann das Fenster mit der URL schließen kann[/ul][/li]
[li] Alle 5 Minuten wird ein Shell Script aufgerufen, welches
[/li][ul]
[li] Mit “find” alle CSV Dateien sucht, und sich mittels der Datei, die die Spaltennamen beinhaltet, den mysqlimport Befehl zusammenbaut[/li]
[li] Dieses Script nimmt sich immer 20 zerlegte CSV Dateien von jeder zu importierenden Tabelle vor, und importiert sie[/li]
[li] Wurde der Import ohne Fehler abgeschlossen, wird dieses File gelöscht, anderenfalls nimmt es der nächste cron-Durchgang wieder au[/li]
[li] Das ganze wird noch in ein LogFile dokumentiert, wo man später mal nachsehen kann, wenn etwas schief gelaufen ist.[/ul][/ol][/li]
Bei der Aktuellen Datenmenge (>65.000 Artikel, 700 Kategorien) wird die größte Datei, die Artikeldatei in 70 kleine zerlegt.Bei 20 Dateien pro Durchgang und Durchgängen alle 5 Minuten dauert der maximale Import ohne extremer Serverbelastungalso maximal 52 Minuten.An diesen Zahlen lässt sich noch einiges optimieren, ich könnte auch entweder größere CSV Dateien in PHP erstellen lassen,oder mehrere gesplittete CSV Dateien pro Durchgang importieren lassen, aber auch die Cronjob-häufigkeit erhöhen.Es sind sicher noch einige Sachen zu erledigen, aber im Endeffekt sollte das dann eine Sache sein, die brav im Hintergrund laufen kann.Cheeers Chris

Hallo Chris,

das klingt alles prima, ein paar Fragen habe ich dennoch:

[ul]
[li] Das ist eine ERP-Schnittstelle zu globemanager plus und nur dafür, richtig?[/li]
[li] Läuft das bei Euch schon life?[/li]
[li] Willst Du die Schnittstelle als open source Schnittstelle freigeben?[/ul][/li]Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Ich suche jetzt auch nach einer Möglichkeit die Datensätze per Cronjob von CSV - Dateien zu importieren.

Kann mir jemand helfen? Gibt’s dafür Lösungen als OpenSource?

Danke!

hallo,
wir haben für unsere Oxid Kunden eine Schnittstelle entwickelt. Wir erstellen hierfür in der Schnittstelle das Mappging zwischen der Export-Datei (CSV oder TXT) und der Oxid Datenbank. Der Kunde kann dann wahlweise manuell importieren oder es wird per Cron gemacht.

Bei Cron Import müssen die Daten (CSV- oder TXT-Datei und Fotos) per FTP auf den Server übertragen werden. Das machen viele Warenwirtschaftssysteme automatisch.

Bei manuellen Import wird eine ZIP-Datei mit der CSV- oder TXT-Datei und den Bildern übertragen.

Die Schnittstelle ist sehr flexibel. Durch das Mapping kann man nahezu jede Warenwirtschaft verwenden.