ShopwareImport 6.x Properties/Eigenschaften importieren

Hallo Synesty, wir möchten gerne Artikeleigenschaften importieren. Gibt es eine Möglichkeit, dies über folgende Syntax zu importieren?
Dauer=110-150 Stunden;Farbe=Blau;Breite [mm]=110;Länge [mm]=110;Form=Gross

Oder muss dies zwingend über IDs gelöst werden? Danke für euren Tipp.

Hallo @infoshopsystemsch,

das muss zwingend über die IDs gelöst werden. Was Ihr aber machen könnt, ist ein Mappingset anzulegen und dies dann in der Spalte zu verwenden in der die Eigenschaften gelistet werden.
https://docs.synesty.com/SSUD/Datastores.html#mapping-set

Viele Grüße
Lukas

Hallo Lukas, bestens dank. Soweit alles klar. Wir haben in diesem Zusammenhang noch eine Zusatzfrage. Wir schreiben nun alle Eigenschaften aus den Produkten in einen Datastore, damit wir danach alle IDs zuweisen können. Wir verwenden als identifier die Eigenschaft (z.B. Blau). Da wie als Datenquelle sämtliche Produkte verwenden um alle Eigenschaften ausfindig zu machen, kommt die Eigenschaft Blau somit mehrmals vor. Mit dem DatastoreWriter erhalten wir so immer Fehlermeldungen, weil die jeweilige Eigenschaft bereits existiert (identifier ist im Datastore schon vorhanden). Gibt es eine Möglichkeit solche Einträge die bereits im Datastore existieren vor dem Scheiben herauszufiltern?

@synesty-Lukas , könntest du uns allenfalls bei unserer Zusatzfrage weiterhelfen? Gibt es da einen guten Workaround, damit wir beim Import keine Fehlermeldung aufgrund doppelter identifier erhalten?
Danke vielmals.

Hallo @infoshopsystemsch,

du könntest vor dem Schreiben in den Datastore noch im Mapper vorher die Artikel am Attribut(identifier) gruppieren. So werden alle Artikel die als Eigenschaft z.B. Blau haben auf eine Zeile gruppiert und somit werden doppelte Einträge verhindert.
https://docs.synesty.com/SSUD/Spreadsheets.html#gruppieren-aggregatfunktionen

Oder Ihr macht in einem Mapper vorher einen Querverweis mit der Eigenschaft auf den Datastore im identifier und lasst mit einem Filter nur Einträge durch mit „No Record found“.
https://docs.synesty.com/SSUD/Datastore_Import_und_Export.html#optionale-weitere-identifier-spalten

Viele Grüße
Lukas

Hallo,

ich bin auf der Suche nach einer Lösung auf diesen Thread gestoßen und möchte meine Frage hier gern platzieren, die zum Eingangsbeitrag sicherlich gut passt.

Ich speichere die Produktdaten auch im Datastore. Diese kommen von einem API-Call und auch jede Eigenschaft erhält eine eigene Spalte im Produktdatensatz. Nun wollte ich diese Eigenschaften in ein eigenen Datastore kopieren, im Schema/Profil, wie es Shopware 6.x benötigt. Nun habe ich 16 Eigenschaften und müsste 16mal SearchDatastore und DatastoreWriter machen, weil ich jede Spalte einmal anpacken müsste.

Wenn ich den Datastore der Eigenschaften übertragen habe, dann habe ich noch nicht die Shopware-IDs. Soweit lassen sich die „neuen“ Eigenschaften auch in Shopware importieren. Wenn ich jedoch den Weg zurück gehe und mir die Eigenschaften aus dem Shop hole, werden die Eigenschaften im Datastore Eigenschaften erneut angelegt, nur diesmal auch mit den IDs aus Shopware. Das heißt, ich habe diese nun doppelt drin - einmal mit und ohne IDs.

Wenn aber auch das gelöst wäre, würde ich dann ein Mapping mit Datastore Produkte und Eigenschaften machen, um im Datastore Produkte die option.id mit Pipe getrennt, aufzulisten, um die Variantenkonfiguration zu erstellen und diese zum Import zum Shopware freizugeben.

Klingt alles sehr umständlich und fehlerhaft. Gibt es bessere Wege?

Hallo @Lemm

mal vielleicht als Inspiration wie wir es gelöst haben. Unsere Produkte und Eigenschaften kommen jeweils per API Call aus unserem PIM System und werden in zwei verschiedene Datastores geschrieben, einmal für Produkte und einmal für Eigenschaften. Bei den Eigenschaften lassen wir uns die UUID direkt in Synesty generieren und übertragen das an Shopware.
Beim Import der Produkte machen wir im Mapper einen Querverweis auf den Eigenschaften Datastore und bekommen dann so die UUID der Eigenschaft direkt in den Produkte API Call an Shopware.

@ramin-ww

Bei den Eigenschaften lassen wir uns die UUID direkt in Synesty generieren

Wie erzeugt ihr diese?

@ramin-ww
Ich habe gerade in deinem Profil gestöbert und habe in deinen Beiträgen folgenden Anfrage gefunden, womit du vermutlich die UUID generierst.

Woher weißt du, ob es eine ValueID oder PropertyID schon gibt? Prüft ihr vorher mit einem Mapper/Filter?

Ansonsten nutze ich auch einen eigenen Datastore für Eigenschaften.
Mein Problem ist, wie ich diesen Datastore sinnig befüllen kann? Momentan müsste ich für jede einzelne Property ein SearchDatastore und DatastoreWriter machen. Ich suche nach einer Lösung, dies nur einmal machen zu müssen, um alle Eigenschaften zu erschlagen.

Hallo @Lemm

ja genau über die Template Funktion UUID, die mir Thorsten in dem anderen Beitrag genannt hat.

Die Prüfung machen wir im DataStoreWriter-Mapper mit einem Querverweis, der prüft ob es bereits einen Eintrag in dem Datestore gibt, falls nein wird eine UUID generiert und reingeschrieben, falls ja wird einfach der vorhandene Wert übernommen. Ob das jetzt der Best-Practice ist, sei mal dahingestellt, aber es funktioniert problemlos :slight_smile: