Shopware 6 - Varianten importieren

Hallo,

ich habe leider Schwierigkeiten Wege und Lösungen zu finden, um Varianten von dem „Data Management“ in das Shopware 6 zu bekommen. Nach mehrstündiger Recherche und Ausprobierei habe ich zwei Wege:

1. Varianten über shopwareUpdateProduct

Wurde einige Male im Forum geschrieben, dass man das damit machen kann. Dazu habe ich folgende Doku gefunden.

Nachdem ich nun ein SearchDatstore gemacht habe, folgt darauf ein Filter (hier nicht relevant), habe ich danach einen shopwareUpdateProduct in meinem Flow. Ich habe nun alle Felder entsprechend zugewiesen. Wenn ich dann den Flow ausführe, kommt immer die Fehlermeldung, dass ich keine Id angegeben habe und diese leer ist. Die habe ich deswegen nicht, weil ich ja die Variante erst hinzufügen möchte. Und selbst wenn es eine Variante gibt, möchte ich sie eher über die Produktnummer mappen. Sonst müsste ich einen weiteren Step machen, dass man die Varianten-IDs im Shop mit Synesty-Data Management abgleicht.

Aber auch das habe ich mal statisch gemacht. Ich habe die Varianteninformationen als Produkt in den Shop gebracht und dann diese Id genommen. Aber die Variante bleibt als Produkt, und wird nicht zur Variante.

Ich weiß hier einfach nicht mehr weiter. Wo ist mein Fehler? Was habe ich falsch gemacht?

2. Varianten über ShopwareImport

Laut Doku von Shopware Shopware 6 - Einstellungen - Import/Export soll man diese 4 Schritte gehen. Wenn ich den Step ShopwareImport nutze, sehe ich keine Möglichkeit, den Haken bei „Produktvarianten importieren“ setzen zu können. Weder bei Synesty noch im Shopware (Import-Profile). Daher komme ich hier nicht weiter.

Wie macht ihr das?

Hallo,

ich kenne jetzt die Synesty Shopware Steps nicht, da wir unsere eigenen Steps gebaut haben.
Aber beim Thema Eltern-Artikel und Varianten, muss man zuerst den Eltern-Artikel anlegen, die UUID des Eltern-Artikel gibt man beim Anlegen der Variante mit und dann muss man am Ende noch den Eltern-Artikel mit der UUID der Variante Updaten. Erst dann hat es bei uns funktioniert, dass Eltern-Artikel und Variante miteinander verknüpft sind und man im Frontend auch die einzelnen Varianten sieht.

Eventuell hilft das weiter.

Viele Grüße

Aber beim Thema Eltern-Artikel und Varianten, muss man zuerst den Eltern-Artikel anlegen, die UUID des Eltern-Artikel gibt man beim Anlegen der Variante mit

Habe ich hier gemacht.

Passiert ist dann, dass die Variante zu einem Hauptprodukt wurde, weil ich als ID die ID des Hauptproduktes angegeben habe. Oder was ist mit „der Variante (Abgleichfeld)“ gemeint?

und dann muss man am Ende noch den Eltern-Artikel mit der UUID der Variante Updaten.

Wo gibt es bei Synesty diese Möglichkeit, das einzugeben?

Du bist ja im ShopwareUpdateProducts Step, Du aktualisierst damit ein bereits in Shopware bestehendes Produkt. Das Feld ID (ID des Produkt bzw. der Variante (Abgleichfeld)) bezieht sich auf das Produkt, dass Du updaten willst. Wenn Du also die ID eines bestehenden „Haupt“-Produkts einträgst, wird es mit den Infos der Variante geupdated. So verstehe ich die Erläuterung in der Beschreibung.
Daher müsste in dem Feld „ID“ die ID der Variante rein und dann müsste es noch ein Feld „parentId“ geben, in das man die ID des Hauptprodukts einträgt. So wie es auch in der Shopware API Beschreibung steht Product Data | Admin API

Aber am Besten müsste mal jemand von Synesty erläutern, wie das mit den bestehenden Synesty Steps funktioniert.

Viele Grüße
Ramin

Ich bin da völlig bei dir und hatte es auch mal mit „parentId“ versucht, obwohl es nicht in der Doku steht, sondern mit der Annahme, dass es ein Feld bei Shopware ist. Aber leider ohne Erfolg. Deswegen komme ich nun auch nicht mehr weiter.

Also parentId muss zusätzlich zur id angegeben werden

Vermutlich hier mein Verständnisproblem.

Wenn ich eine Variante neu anlegen möchte, habe ich noch keine Id. parentId ist angegeben, aber ich komme nicht weiter (Fehlermeldung), weil bei einem Update eine Id benötigt wird. Bin dann über ShopwareAddProduct gegangen. Sprich die Variante darüber angelegt, quasi als normales Produkt, UUID erzeugt und nachträglich via ShopwareUpdateProduct in Id + parentId angegeben. Hat nicht zum gewünschten Erfolg geführt.

Ja, genau so müsste es funktionieren. Bzw. wir Updaten den Eltern-Artikel auch nochmal mit der UUID der Variante.

Hier mal ein Auszug aus unserem Payload

Variante als Produkt anlegen

{
	"product-create": {
		"entity": "product",
		"action": "upsert",
		"payload": [
			<#list rows as row> {
				"id": "${row.get("product_uuid")!}",
				"name": "${row.get("name")!}",
                "description": "${row.get("description")!}",
                "productNumber": "${row.get("sku")!}",
                "parentId": <#if row.get("parent_uuid")! != "">"${row.get("parent_uuid")!}"<#else>null</#if>,
                <#if row.get("year")! != ""><#-- START Verknüpfung mit Parent -->
                "options": [ {"id": "${row.get("property_year_uuid")!}"} ],</#if><#-- END  Verknüpfung mit Parent -->

bei parentId geben wir die UUID des Eltern-Artikel an.
Bei options geben wir noch an, dass die Variante später ein Jahrgang des Eltern-Artikels ist. Also in unserem Fall verkaufen wir Wein. Der Wein an Sich, wird als Eltern-Artikel angelegt und die Jahrgänge (2022, 2023, usw.) werden als Varianten angelegt. Laut Shopware Doku muss man der Variante noch mitgeben, welche Art der Variante sie ist. Also ein Jahrgang 2023.

Dann machen wir ein Update des Eltern-Artikels

{
	"product-update-parent": {
		"entity": "product",
		"action": "upsert",
		"payload": [
			 <#list rows as row> {
				"id": "${row.get("parent_uuid")!}",
                "active": false,
                "configuratorSettings": [
                {
                "id": "${row.get("product_uuid")!}",
                "optionId": "${row.get("property_year_uuid")!}"
                }
                ]
			}<#sep>,</#sep></#list>
		]
	}
}

Bei id kommt die UUID des Eltern-Artikels rein den wir updaten und im configuratorSettings Block geben wir dann die Variante an und sagen dann auch nochmal bei optionId das die Variante der Jahrgang 2023 ist.
Klingt ziemlich kompliziert aber das hab ich nach Stunden an Recherche in der Shopware API Dokumentation und Forumsbeiträgen herausgefunden, dass es genau so sein muss.

Schlussendlich haben wir auf jeder Varianten Seite die Verknüpfung zu allen anderen Varianten

1 Like

Ich habe deinen sehr ausführlichen Beitrag erst nach 5-maligen Lesen richtig verstanden. Was aber nicht an dir liegt, sondern um das alles zu verstehen.

Mich verwirrt das alles gerade. Erst benötigt man Variantenkonfigurationen. Nun ist das plötzlich kein Thema mehr. Nun soll es so gehen, wie du beschrieben hast. Mit Google von configuratorSettings findet man auch einiges dazu, und scheint wohl mein letzter Schritt zu sein. Weil alles andere ist da und gemacht, und wenn erstmal nur statisch zum Verständnis.

Nur wie setze ich das mit configuratorSettings bei Synesty um?

Keine Ahnung wie das mit den Standard Synesty Shopware Steps geht, die verwenden wir nicht. Wir haben unsere eigenen Steps gebaut.

@synesty-Lukas kann vielleicht mehr dazu sagen.

Hallo @Lemm und @ramin-ww,

einen extra Shopware 6 Step zum setzen der configuratorSettings haben wir nicht. D.h. die configuratorSettings können, wie es @ramin-ww weiter oben geschrieben hat, über den SpreadsheetUrlDownload Step gesetzt werden oder eventuell über den ShopwareImport Step (Variantenkonfiguration). Beim Import bin ich mir nicht sicher, da ich es noch nicht ausprobiert habe.

Viele Grüße
Torsten