[REST-API] Varianten Update fügt nicht hinzu sondern ersetzt

Hallo zusammen,

Ich beschäftige mich gerade mit der Rest-API und dem Update von Varianten. Soweit funktioniert alles einwandfrei, doch wenn ich versuche zu den bestehenden Varianten eine weitere hinzuzufügen werden alle Varianten im Backend richtig angezeigt, doch im Frontend kann ich nur die letzte importierte Variante auswählen. Ich habe bereits einige Versuche hinter mir, doch ich komme auf keinen nenner.

An für sich weiß ich wo der Fehler liegt. In der Tabelle  s_article_configurator_options  erhält jede Variante jeweils die Position 0. Importiere ich mehrere Datensätze bekommt jeder eine fortlaufende Positionsnummer. Das hält aber nur bis zum nächsten import. 

Nun dachte ich mir, ich füge den Wert position  ein und erhöhe jeweils den Wert. Dies hatte aber leider nicht das erhoffte Ergebnis.

 Erster Import:

 $updateArticle = array( 'configuratorSet' =\> array( 'groups' =\> array( array( 'name' =\> 'Typ', 'options' =\> array( array('name' =\> 'SAAB10006'), ) ), array( 'name' =\> 'Serie', 'options' =\> array( array('name' =\> '200003'), ) ), ) ), 'taxId' =\> 1, 'variants' =\> array( array( 'isMain' =\> true, 'active' =\> true, 'number' =\> 'SW10020', 'inStock' =\> 1, 'position' =\> 0, 'additionaltext' =\> '', 'configuratorOptions' =\> array( array('group' =\> 'Typ', 'option' =\> '200003'), array('group' =\> 'Serie', 'option' =\> 'SAAB10006'), ), 'prices' =\> array( array( 'customerGroupKey' =\> 'EK', 'price' =\> 1999, ), ) ), ), );

Zweiter Update Import:

 $updateArticle = array( 'configuratorSet' =\> array( 'groups' =\> array( array( 'name' =\> 'Typ', 'options' =\> array( array('name' =\> 'SAAB10007'), ) ), array( 'name' =\> 'Serie', 'options' =\> array( array('name' =\> '200003'), ) ), ) ), 'taxId' =\> 1, 'variants' =\> array( array( 'isMain' =\> false, 'active' =\> true, 'number' =\> 'SW10020.1', 'inStock' =\> 1, 'position' =\> 1, 'additionaltext' =\> '', 'configuratorOptions' =\> array( array('group' =\> 'Typ', 'option' =\> '200003'), array('group' =\> 'Serie', 'option' =\> 'SAAB10007'), ), 'prices' =\> array( array( 'customerGroupKey' =\> 'EK', 'price' =\> 1999, ), ) ), ), );

Hallo,

jetzt weiß ich sicher wo der Fehler ist. In der Tabelle  s_article_configurator_set_option_relations  werden alle bisherigen einträge komplett gelöscht. Im Anschluss wird hier nur ein Eintrag für den neuste Variante bzw. Varianten angelegt.

Soweit gut, doch wie ich das löse ohne alle Varianten zuvor auszulesen und neu zu importieren weiß ich nicht. Vielleicht hatte hier jemand schonmal ein ähnliches Problem.