# Varianten über API generieren

**URL:** <https://forum.shopware.com/t/varianten-uber-api-generieren/23084>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [21. Oktober 2014 um 15:39 UTC](https://forum.shopware.com/t/varianten-uber-api-generieren/23084 "2014-10-21T15:39:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![twesmann](https://avatars.discourse-cdn.com/v4/letter/t/3ab097/32.png) [@twesmann](https://forum.shopware.com/u/twesmann)\
**Post date:** [21. Oktober 2014 um 15:39 UTC](https://forum.shopware.com/t/varianten-uber-api-generieren/23084/1 "2014-10-21T15:39:56Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![shopjektiv](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shopjektiv/32/28_2.png) [@shopjektiv](https://forum.shopware.com/u/shopjektiv)\
**Post date:** [30. Januar 2015 um 14:33 UTC](https://forum.shopware.com/t/varianten-uber-api-generieren/23084/2 "2015-01-30T14:33:46Z")

</div>

Hallo, gibt es bereits eine Lösung für dieses Problem?

---

<div class="post-metadata">

**Author:** ![hec](https://avatars.discourse-cdn.com/v4/letter/h/e274bd/32.png) [@hec](https://forum.shopware.com/u/hec)\
**Post date:** [2. Februar 2015 um 10:25 UTC](https://forum.shopware.com/t/varianten-uber-api-generieren/23084/3 "2015-02-02T10:25:33Z")

</div>

Hallo, bei uns lag es daran, dass wir das Feld “active” nicht gesetzt hatten. Beste Grüße, Sven

---

<div class="post-metadata">

**Author:** ![hec](https://avatars.discourse-cdn.com/v4/letter/h/e274bd/32.png) [@hec](https://forum.shopware.com/u/hec)\
**Post date:** [2. Februar 2015 um 10:40 UTC](https://forum.shopware.com/t/varianten-uber-api-generieren/23084/4 "2015-02-02T10:40:52Z")

</div>

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