Hallo, ich habe da mal eine Frage, da ich nicht weiß ob der Fehler bei mir liegt oder es ein Bug der API ist. Folgende Situation, ein Artikel ist angelegt und hat schon ein paar Varianten, es sollen aber neue Varianten dazu kommen, diese sollen automatisch über die API angelegt werden. Das Beispiel in der Wiki sieht wie folgt aus. Führe ich den unten stehenden Code aus, werden die Varianten zwar angelegt, jedoch nicht im Frontend angezeigt. Nachdem ich die Datenbank etwas genauer unter die Lupe genommen habe, ist mir aufgefallen das ein Eintrag in der Tabelle “s_article_configurator_set_option_relations” fehlt. Ergänze ich den Eintrag in der Tabelle von Hand, ist die Variante im Shop zusehen. Die Frage ist, mache ich etwas falsch und das unten stehende Beispiel ist nicht genug. Muss ich vielleicht noch ein configuratorSet davor schreiben(die Tabelle gehört laut Namen dazu) oder ist es doch ein Bug in der APi. Wäre für jegliche Hilfe sehr Dankbar. // POST /api/variants array( 'articleId' =\> 279, 'number' =\> 'swTEST52b03205900ca', 'inStock' =\> 100, 'unitId' =\> 1, 'prices' =\> array( array( 'customerGroupKey' =\> 'EK', 'from' =\> 1, 'to' =\> '-', 'price' =\> 400, ), ), 'configuratorOptions' =\> array( array('optionId' =\> 35,'groupId' =\> 5,), array('optionId' =\> 14,'groupId' =\> 6,), array('optionId' =\> 60,'groupId' =\> 7,), ), );
Schau dir mal das ganze hier genauer an: https://developers.shopware.com/develop … eated-arti https://developers.shopware.com/develop … nfiguratio
Hallo kayyy, das habe ich schon gesehen, das Anlegen der Artikel mit Varianten und das aktualisieren der Werte(oder deaktivieren) in den Varianten klappt ohne Probleme. Versuche ich aber einen bestehenden Artikel um eine Variante zu erweitern, läuft etwas schief. Wie oben erwähnt, wird die „s_article_configurator_set_option_relations“ einfach nicht beschrieben. Ich habe hier den Sonderfall, das Artikel von Hand angelegt und wieder gelöscht werden sollen, das einzige was sich automatisch ändern soll, sind die Varianten in den Artikeln.
Nur zur Info, falls jemand mit dem gleichen Problem kämpft, ich habe es folgendermaßen gelöst. Ist nicht der schönste Weg, aber es funktioniert. $VariantePost = array( 'articleId' =\> $prod\_id, 'number' =\> $products\_artvarnr, 'active' =\> 1, 'inStock' =\> $products\_stock, 'unitId' =\> 1, 'prices' =\> array( array( 'customerGroupKey' =\> 'EK', 'from' =\> 1, 'to' =\> '-', 'price' =\> $products\_price\_final, ), ), 'configuratorOptions' =\> array( array('optionId' =\> $option\_id,'groupId' =\> $group\_id,), ), ); $client-\>post('variants',$VariantePost); $set\_name = 'Set-'.$products\_artnr; $query = "SELECT \* FROM `s_article_configurator_sets` WHERE name ='".$set\_name."' "; $select\_setid = mysql\_query($query); while($select\_set\_row = mysql\_fetch\_assoc($select\_setid)) { $set\_id = $select\_set\_row['id']; } $query = "INSERT INTO `s_article_configurator_set_option_relations` (`set_id`, `option_id`) VALUES ('".$set\_id."', '".$option\_id."')"; mysql\_query($query) or die ("
kein INSERT INTO `s_article_configurator_set_option_relations` (fehler in 7745trzrtzu568)!!!");