pbAndipbAndi MemberComments: 18 Received thanks: 0 Member since: June 2019 edited June 2020

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:

image

 

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?

1 Answer

  • ShyimShyim MemberComments: 1297 Received thanks: 534 Member since: May 2015

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

    Quote
    Accepted Answer
  • Accepted Answer

Answers

  • pbAndipbAndi MemberComments: 18 Received thanks: 0 Member since: June 2019

    *Push*

  • pbAndipbAndi MemberComments: 18 Received thanks: 0 edited June 2020 Member since: June 2019

    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

    image

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

  • ShyimShyim MemberComments: 1297 Received thanks: 534 Member since: May 2015

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

    Quote
    Accepted Answer
  • pbAndipbAndi MemberComments: 18 Received thanks: 0 Member since: June 2019

    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....

  • pbAndipbAndi MemberComments: 18 Received thanks: 0 Member since: June 2019

    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.

Sign In or Register to comment.