Produkt mit Varianten via Admin API erstellen in Shopware 6.5.0.0

Hallo liebes Forum,

wir versuche aktuell den Webshop eines Kunden von Shopware 5 auf 6 zu migrieren. Hierzu haben wir unter anderem ein Script, welches die Produkte aus SW5 zieht und nach SW6 pushed.

Das erstellen der Produkte funktioniert einwandfrei, wenn man die configuratorSettings der Gruppe weglässt, also z.B.:

{
   "id":"a6d25ed7cc8134846b28809a3ec8146e",
   "name":"ProduktName",
   "productNumber":"test-8820222",
   "price":[
      {
         "currencyId":"b7d2554b0ce847cd82f3ac9bd1c0dfca",
         "net":0,
         "gross":160,
         "linked":false
      }
   ],
   "stock":0,
   "taxId":"c3ab837bc1564ea787fc0944500ee432",
   "children":[
      {
         "id":"b244e7b9e864eac583e2c7f5f6a9639a",
         "productNumber":"OPT00092",
         "stock":0,
         "options":[
            {
               "id":"733d35ea2c123034902cd71b702b936b",
               "groupId":"d8e1f09240d4430bb25e5fe712c45719",
               "name":"51"
            },
            {
               "id":"8f7882a0ad19cd474c0645af0ae1f85e",
               "groupId":"28d5a5de7b2c48238088812a754f98cd",
               "name":"Havana"
            }
         ]
      },
      {
         "id":"08758b4b55c84f915aa11752222cd918",
         "productNumber":"OPT00093",
         "stock":0,
         "options":[
            {
               "id":"733d35ea2c123034902cd71b702b936b",
               "groupId":"d8e1f09240d4430bb25e5fe712c45719",
               "name":"51"
            },
            {
               "id":"b0b9b90a89fb75e5b64a28c94edfbe60",
               "groupId":"28d5a5de7b2c48238088812a754f98cd",
               "name":"Black"
            }
         ]
      }
   ]
}

Das Problem ist dann allerdings, dass diese nicht korrekt erstellt werden. Diese schauen erst korrekt im Backend aus, wenn man aber versucht sich die Storefront anzusehen, lädt dies nicht.

Ich bin mir relativ sicher, dass das daran liegt, dass wir die configuratorSettings nicht mit senden. Wenn dies aber tuen, bekommen wir einen nicht wirklich aussagekräftigen Fehler.

Hier zunächst der vollständige Payload:

{
   "id":"a6d25ed7cc8134846b28809a3ec8146e",
   "name":"ProduktName",
   "productNumber":"test-8820222",
   "price":[
      {
         "currencyId":"b7d2554b0ce847cd82f3ac9bd1c0dfca",
         "net":0,
         "gross":160,
         "linked":false
      }
   ],
   "stock":0,
   "configuratorSettings":[
      {
         "id":"2201756806604f0a929f0fb284f8d070",
         "productId":"b244e7b9e864eac583e2c7f5f6a9639a",
         "optionId":"733d35ea2c123034902cd71b702b936b"
      },
      {
         "id":"e7ccc83b3d8449aca62e7c1cecf372b3",
         "productId":"b244e7b9e864eac583e2c7f5f6a9639a",
         "optionId":"8f7882a0ad19cd474c0645af0ae1f85e"
      },
      {
         "id":"60ed0fa22ba14f948e671f352426bbd9",
         "productId":"08758b4b55c84f915aa11752222cd918",
         "optionId":"733d35ea2c123034902cd71b702b936b"
      },
      {
         "id":"0710b77f6f6c4b2997e92d27eb61bf34",
         "productId":"08758b4b55c84f915aa11752222cd918",
         "optionId":"b0b9b90a89fb75e5b64a28c94edfbe60"
      }
   ],
   "taxId":"c3ab837bc1564ea787fc0944500ee432",
   "children":[
      {
         "id":"b244e7b9e864eac583e2c7f5f6a9639a",
         "productNumber":"OPT00092",
         "stock":0,
         "options":[
            {
               "id":"733d35ea2c123034902cd71b702b936b",
               "groupId":"d8e1f09240d4430bb25e5fe712c45719",
               "name":"51"
            },
            {
               "id":"8f7882a0ad19cd474c0645af0ae1f85e",
               "groupId":"28d5a5de7b2c48238088812a754f98cd",
               "name":"Havana"
            }
         ]
      },
      {
         "id":"08758b4b55c84f915aa11752222cd918",
         "productNumber":"OPT00093",
         "stock":0,
         "options":[
            {
               "id":"733d35ea2c123034902cd71b702b936b",
               "groupId":"d8e1f09240d4430bb25e5fe712c45719",
               "name":"51"
            },
            {
               "id":"b0b9b90a89fb75e5b64a28c94edfbe60",
               "groupId":"28d5a5de7b2c48238088812a754f98cd",
               "name":"Black"
            }
         ]
      }
   ]
}

Hier erhalten wir nun aber diesen Fehler:

An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '\\xA6\\xD2^\\xD7\\xCC\\x814\\x84k(\\x80\\x9A>\\xC8\\x14n-\\x0F\\xA9\\x1C\\xE3\\' for key 'product_configurator_setting.uniq.product_configurator_setting.prod_id.vers_id.prop_group_id'

Kann hier jemand helfen? Wir verstehen nicht, was genau das problem ist, die configuratorSettings sind meines erachtens korrekt, oder?

Vielen Dank!
djengis

Heyho,

ich glaube, ich habe Lösung gefunden. Ich dachte, man muss die configuratorSettings so bauen, dass die auf die Varianten mappen… ansich muss man nur sagen, welche Optionen es gibt und das wars:

{
   "id":"a6d25ed7cc8134846b28809a3ec8146e",
   "name":"11",
   "productNumber":"test-7536136",
   "price":[
      {
         "currencyId":"b7d2554b0ce847cd82f3ac9bd1c0dfca",
         "net":0,
         "gross":160,
         "linked":false
      }
   ],
   "stock":0,
   "configuratorSettings":[
      {
         "optionId":"733d35ea2c123034902cd71b702b936b"
      },
      {
         "optionId":"8f7882a0ad19cd474c0645af0ae1f85e"
      },
      {
         "optionId":"b0b9b90a89fb75e5b64a28c94edfbe60"
      }
   ],
   "taxId":"c3ab837bc1564ea787fc0944500ee432",
   "children":[
      {
         "id":"b244e7b9e864eac583e2c7f5f6a9639a",
         "productNumber":"OPT00092",
         "stock":0,
         "options":[
            {
               "id":"733d35ea2c123034902cd71b702b936b",
               "groupId":"d8e1f09240d4430bb25e5fe712c45719",
               "name":"51"
            },
            {
               "id":"8f7882a0ad19cd474c0645af0ae1f85e",
               "groupId":"28d5a5de7b2c48238088812a754f98cd",
               "name":"Havana"
            }
         ]
      },
      {
         "id":"08758b4b55c84f915aa11752222cd918",
         "productNumber":"OPT00093",
         "stock":0,
         "options":[
            {
               "id":"733d35ea2c123034902cd71b702b936b",
               "groupId":"d8e1f09240d4430bb25e5fe712c45719",
               "name":"51"
            },
            {
               "id":"b0b9b90a89fb75e5b64a28c94edfbe60",
               "groupId":"28d5a5de7b2c48238088812a754f98cd",
               "name":"Black"
            }
         ]
      }
   ]
}

Ich lasse den Beitrag mal hier für Leute, die auf das selbe Problem stoßen :wink:

Danke und Beste Grüße

1 „Gefällt mir“

Moin, werden die Varianten dann direkt mit angelegt und verknüpft oder muss das in einem seperaten request erfolgen?