Hallo, ich versuche über die API (Shopware 4.3.2) Artikel und Varianten zu generieren. Die Artikel und auch Varianten werden mir zwar generiert (wie ich den Tabellen s_articles, s_articles_details), jedoch werden mir im Artikel im Shopware Backend keine Varianten zum Artikel angezeigt (es sind anscheinend keine Optionen aktiviert??) Woran kann das liegen? Zum Skript: Ich lasse erst den Hauptartikel generieren und füge das configuratorSet ein: foreach($articles as $key =\> $value) { $client-\>post('articles/'.$value['Artikel'].$value['Dekor'], array( 'mainDetail' =\> array( 'number' =\> $value['Artikel'].$value['Dekor'], 'prices' =\> array( array( 'from' =\> 1, 'price' =\> str\_replace(',','.',$value['Preis']), ) ), 'ean' =\> $value['EAN-Code'], 'inStock' =\> $value['Bestand'], 'supplierNumber' =\> $value['Artikel'].$value['Dekor'] ), 'name' =\> $value['Bezeichnung'], 'taxId' =\> 1, 'tax' =\> 19, 'supplierId' =\> 1, 'configuratorSet' =\> array( 'groups' =\> array( array('id' =\> 1, 'name' =\> 'Dekor',), ), ) ) ); }
Die Variante lege ich dann folgendermaßen an: $mainArticle = $client-\>get('articles/'.$value['Artikel'].'000?useNumberAsId=true'); switch ($value['Dekor']) { case '117': $option = 3; break; case '118': $option = 4; break; default: $option = 5; } $client-\>post('variants/'.$value['Artikel'].$value['Dekor'], array( 'articleId' =\> $mainArticle['data']['id'], 'configuratorOptions' =\> array( array('optionId' =\> $option, 'groupID' =\> 1), ), 'number' =\> $value['Artikel'].'000.'.$value['Dekor'], 'inStock' =\> $value['Bestand'], 'prices' =\> array( array( 'from' =\> 1, 'price' =\> str\_replace(',','.',$value['Preis']), ) ), 'supplierNumber' =\> $value['Artikel'].$value['Dekor'], 'ean' =\> $value['EAN-Code'], 'additionalText' =\> $value['Dekor'], ) );
Hat jemand eine Idee wieso die Varianten nicht vollständig angelegt werden? Was habe ich übersehen? Danke vorab Jens
Hallo, gibt es bereits eine Lösung für dieses Problem?
Hallo, bei uns lag es daran, dass wir das Feld “active” nicht gesetzt hatten. Beste Grüße, Sven
… und es kam auch vor, dass bei wiederholten API-Aufrufen das MainDetail mit neuer ID angelegt wurde, das Feld “main_detail_id” in der Tabelle “s_articles” aber nicht aktualisiert wurde (und dann auf eine Zeile in der Tabelle “s_articles_details” zeigte, die nicht mehr existierte). Falls das bei dir auch der Fall ist, kann ich gern nochmal den Code raussuchen und schauen, ob ich reproduzieren kann, was dafür die Ursache (oder zumindest unsere Lösung/Workaround) war.