Ich beschreibe die Situation mal so kurz wie möglich:
Ich habe für ein kleines Unternehmen mit Ladenverkauf eine Webseite gemacht, auf der auch die Produkte, die die verkaufen angezeigt werden. Das ist bislang aber noch kein richtiger Shop. Die Produktdaten (Preise, Eigenschaften, Lieferbarkeit, etc.) werden jeden Abend aus der Warenwirtschaft in eine CSV-Datei exportiert und dann werden die Daten in eine Datenbank auf dem Webserver importiert, also: alle Datensätze raus - neue Datensätze rein. Es sind zwischen 600 und 700 Artikel. Das klappt prima.
Jetzt soll aus der Seite doch ein richtiger Shop werden. Ich habe mich deshalb nach einer Lösung dafür umgesehen.
Problem:
Ich habe einen Freund, der sehr fit mit einem anderen Shopsystem ist. Aber als ich ihm sagte, dass ich plane, die Datenbank täglich zu aktualisieren, um die Verfügbarkeiten und Preise immer für jeden Artikel tagesaktuell zu haben, meinte er, das würde ein Problem werden. Wenn man die Datensätze einfach austauschen würde gäbe es sehr bald ein Problem, weil die Artikelverwaltung dann immer neue Indizes vergeben müsste. Er hat mir das noch genauer erklärt, irgendwann hatte ich das begriffen, ihr hier wisst das wahrscheinlich auch so.
Eine manuelle Verfügbarkeitsverwaltung über das Shopsystem ist sicher nicht möglich (ehrlich).
Frage:
Kommt man bei der Verwendung von Oxid in Schwierigkeiten, wenn man die Datenbank täglich per CSV- (oder XML- oder sonstwie-)Import aktualisieren möchte? Falls das mit Bordmitteln nicht geht: gibt es Plugins, mit denen ein solcher Produktimport möglich wird?
Bestimmt gibt es andere Wege um zu einer guten Lösung zu kommen, aber ich wäre im ersten Schritt und zur Verbesserung meines Verständnisses der Sache sehr an einer Antwort auf genau diese Fragen interessiert.
Probleme bekommt man nur dann, wenn man nicht darauf achtet, dass die primäre ID in der DB (Spalte “OXID”) bei jedem Import beim selben Artikel gleich bleibt.
Dadurch bleiben mal alle Beziehungen in der Datenbank erhalten, was natürlich sehr wichtig ist.
Mit Bordmitteln wird das nicht gehen. Dafür müsste ein individueller Importer erstellt werden. Die Frage wäre hier noch, um was für eine Warenwirtschaft es sich handelt.
Vielleicht reicht es, wenn man als OXID (Primärschlüssel der Datensätze in oxarticles) immer die Artikelnummer nimmt, welche in der WaWi verwendet wird? Solange die dort UNIQUE ist und sich nicht ändert, müsste das doch gehen, oder?
Oder man aktualisiert immer nur die Felder, welche sich auch wirklich ändern, also z.B. die Preise und der Lagerbestand?
Kommt noch eine weiteres Problem: Wenn im Onlineshop ein Artikel verkauft wird, muss im lokalen WaWi der Bestand korrigiert werden. Wird alles sehr aufwändig!
Wir haben bei uns im Laden eine lokale vb.net Anwendung laufen, die regelmäßig (normalerweise alle 10 Minuten) die lokale WaWi-DB mit der Shop-DB synchronisiert. Läuft recht zuverlässig
Vielen herzlichen Dank für die Antworten. Das bestätigt meine Annahmen. Ihr beschreibt ziemlich genau die Punkte, die mir schon der Magento-Profi erklärt hat.
Da ich nun weiß, dass es wohl nirgendwo so einfach wird, kann ich mir Gedanken um eine Lösung machen. Das bekomme ich bestimmt irgendwie hin, zumal mir Oxid recht zugänglich für eigene Lösungen erscheint. Ich wollte nur nicht eine Individuallösung in Angriff nehmen, wenn es eine ganz einfache Möglichkeit gegeben hätte.
Um die Rückfragen zu beantworten: Die Warenwirtschaft (KHK) allein macht den Export nicht aus. Vielmehr gibt es eine eigene Software, die eine Abfrage bei der Warenwirtschaft auslöst und diese Daten dann mit den Produkteigenschaftsdatenbanken der einzelnen Hersteller verbindet. Die zwei Datensätze werden zusammengeführt und die resultierende Datei auf den Webserver hochgeladen. Dort nimmt ein PHP-Script die Datei entgegen und verarbeitet sie zu einer neuen mySQL-Datenbank aus der die Webseite dann die Produktdarstellung macht. Das Format der Export-Datei ist also ein individuelles.
Ein Rückabgleich der Verfügbarkeiten mit der Warenwirtschaft ist nicht nötig. Ich will euch mit den Einzelheiten nicht langweilen, aber ganz kurz gefasst stellt es sich so dar, dass ein Produkt nur dann in die Exportdatei aufgenommen wird, wenn es genügend Bestand hat oder kurzfristig beim Hersteller beschafft werden kann. Die Software, die die Export-Datei erstellt, verfügt über Verzweigungen für eine Menge Eventualitäten. Da täglich aktualisiert wird, genügt dieses Vorgehen, sodass in der Praxis keine Rückverbindung Oxid-WaWi nötig wäre.
Ich danke nochmals herzlich für eure Antworten. Meine Fragen sind vorerst geklärt.