API: Mitgeben von Eigenschafts Values, ohne UUID

Hallo zusammen,

beim POSTen (und vielleicht auch beim PATCHen) auf „/product“ möchte ich Eigenschafts Values mitgeben können, ohne die UUID direkt mitzugeben, da ich diese eventuell nicht kenne/vorher nicht immer einen GET call machen möchte. 

Ich habe schon probiert die id einfach weg zu lassen, also anstatt dem hier:

"properties": [
        {
            "groupId": "3e96a8d0040840f1b0656f3d85260573",
            "name": "ABCTest",
            "id": "f9061993722d48b7bc82460a486d017d"
        }
    ]

 

Einfach das hier mitzugeben: 

    "properties": [
        {
            "groupId": "3e96a8d0040840f1b0656f3d85260573",
            "name": "ABCTest"           
        }
    ],

Nach dem ersten Test wurde der Value auch direkt neu angelegt und ich dachte „yay, fertig“. Allerdings wird der Value jetzt jedesmal einmal pro POST neu angelegt, siehe:

 

Ist es möglich dieses neu anlegen zu unterbinden? Kann die API nicht prüfen ob der Value schon existiert und falls ja, ihn nicht nochmal anlegen?

*Push*

So wie ich das sehe möchte ich die funktionalität die in Shopware 5 schon existiert. Laut der Doku ist genau diese funktionsweise dort schon gegeben, siehe:

https://developers.shopware.com/developers-guide/rest-api/examples/article/#example-3-update-product-data

Ist das so einfach noch nicht in Shopware 6 angekommen oder mache ich etwas bei der Übertragung falsch?

Das geht nur in Shopware 5. In Shopware 6 musst du es über die ID machen

Also muss ich für jeden Attributsvalue vorher einen GET Call machen um zu prüfen ob er schon existiert und die id auslesen? Wer hat sich das denn ausgedacht…

Falls es sonst noch jemanden interessiert, ich habe eine alternative Lösung implementiert. 

Anstatt meine Attributsvalues immer von der Shopware API zu GETen bevor ich dann die uuids zu den Values auslese und diese dann verschicke, generiere ich meine uuids einfach selbst. Ich dachte früher das uuids v4 einem bestimmten Muster folgen müssen, wie sich herausstellt akzeptiert die Shopware API aber auch durch sha256 generierte values. 

Wenn mein Attribut Farbe also den Value Rot hat, dann konkateniere ich Farbe+Rot und encrypte das in java per sha256 digest. Die Länge des sha256 hashwertes muss man noch halbieren, dann ist er genauso lang wie eine uuid. Das gebe ich dann einfach als uuid mit. Funktioniert wunderbar, ich muss keine values auslesen oder zwischenspeichern, ich kann sie immer direkt vor Export generieren.