API - ConfigurationSet und Varianten anlegen

Hallo zusammen,

ich bin zurzeit dabei über die API Produkte aktualisieren zu lassen. Das klappt auch soweit schon ganz gut.

Nun möchte ich gerne die Varianten über die API importieren bzw. aktualsieren.

Also habe ich mir einen Hauptartikel mit Varianten erstellen und diesen über eine GET-Abfrage ausgeben lassen, um die Struktur zu sehen.

Ergebnis waren folgende Attribute für die Varianten. Die Werte haben ich erstmal rausgelöscht da zunächst irrelevant:

configuratorOptions:[…],
configuratorSet:…,
details: […],

Anschließend habe ich den REST API Docs nachgeschaut. Dort soll es wie folgt funktionieren:

{
    "name": "ConfiguratorTest",
    "description": "A test article",
    "descriptionLong": "I'm a **test article",
    "active": true,
    "taxId": 1,
    "supplierId": 2,
    "categories": [
        {
            "id": 15
        }
    ],
    "mainDetail": {
        "number": "swTEST5d9b1a9cbcc9d",
        "active": true,
        "prices": [
            {
                "customerGroupKey": "EK",
                "price": 999
            }
        ]
    },
    "configuratorSet": {
        "groups": [
            {
                "name": "Size",
                "options": [
                    {
                        "name": "S"
                    },
                    {
                        "name": "M"
                    },
                    {
                        "name": "L"
                    },
                    {
                        "name": "XL"
                    },
                    {
                        "name": "XXL"
                    }
                ]
            },
            {
                "name": "Color",
                "options": [
                    {
                        "name": "White"
                    },
                    {
                        "name": "Yellow"
                    },
                    {
                        "name": "Blue"
                    },
                    {
                        "name": "Black"
                    }
                ]
            }
        ]
    },
    "variants": [
        {
            "isMain": true,
            "number": "swTEST5d9b1a9cbcc9f",
            "inStock": 15,
            "additionaltext": "S \/ Schwarz",
            "configuratorOptions": [
                {
                    "group": "Size",
                    "option": "S"
                },
                {
                    "group": "Color",
                    "option": "Black"
                }
            ],
            "prices": [
                {
                    "customerGroupKey": "EK",
                    "price": 999
                }
            ]
        },
        {
            "number": "swTEST5d9b1a9cbcca0",
            "inStock": 10,
            "additionaltext": "S \/ Wei\u00df",
            "configuratorOptions": [
                {
                    "group": "Size",
                    "option": "S"
                },
                {
                    "group": "Color",
                    "option": "White"
                }
            ],
            "prices": [
                {
                    "customerGroupKey": "EK",
                    "price": 888
                }
            ],
            "attribute": {
                "attr1": "S\/White Attr1",
                "attr2": "SomeText"
            }
        },
        {
            "number": "swTEST5d9b1a9cbcca1",
            "inStock": 5,
            "additionaltext": "XL \/ Blue",
            "configuratorOptions": [
                {
                    "group": "Size",
                    "option": "XL"
                },
                {
                    "group": "Color",
                    "option": "Blue"
                }
            ],
            "prices": [
                {
                    "customerGroupKey": "EK",
                    "price": 555
                }
            ]
        }
    ]
}

Nun stelle ich mir die Frage warum sind die Strukturen und Attribute grundsätzlich anders, als bei einer GET-Abfrage.

Zum anderen warum ist die number bei der ersten Varianten (isMain=true) nicht dieselbe, wie vom Hauptartikel? Der Hauptartikel ist bei Shopware doch immer auch direkt eine Variante?

Würde mich freuen, wenn mir jemand beim Importieren der Varianten über die API kurz helfen könnte.

Vielen Dank

MadeProel

Hm, hatte die letzten Tage auch viel mit der API zu tun gehabt, aber das Feld „isMain” ist mir nicht aufgefallen. Weder in der Doku noch beim Testen mit GET. Grundsätzlich hat aber die erste Variante immer eine extra Nummer. Sie darf nicht die selbe wie der Stammartikel haben.

@R4M schrieb:

Hm, hatte die letzten Tage auch viel mit der API zu tun gehabt, aber das Feld „isMain” ist mir nicht aufgefallen. Weder in der Doku noch beim Testen mit GET. Grundsätzlich hat aber die erste Variante immer eine extra Nummer. Sie darf nicht die selbe wie der Stammartikel haben

Warum sollte die erste Variante eine extra Nummer bekommen? Die erste Variante ist doch der Stammartikel. Dies gibt man wohl auch durch das isMain=true an.

Der Import der Varianten funktioniert nun aufjedenfall und das auch wenn die erste Variante und der Stammartikel die selbe Nummer haben. Was meiner Meinung nach auch so sein sollte in Shopware.

 

Die erste Variante ist doch der Stammartikel.

Die erste Variante hat in der Regel eine „.1“ hinter der Artikelnummer. Heißt mal so als Beispiel:

Stammartikel Nummer 12345

1. Variante vom Stammartikel 12345.1
2. Variante vom Stammartikel 12345.2
...

Daraus ergibt sich beim API POST zum Beispiel:

Stammartikel Nummer 12345 -> Daten unter Array mainDetail 

1.Variante mit Nummer 12345.1 -> Daten unter Array variants / details
...

Der Stammartikel selber muss noch keine Variante enthalten!