# \[erledigt\] REST API: configuratorOptions

**URL:** <https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021>\
**Category:** Programmierung\
**Created:** [19. August 2020 um 07:36 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021 "2020-08-19T07:36:49Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. August 2020 um 07:36 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/1 "2020-08-19T07:36:49Z")

</div>

Ich versuche gegenwärtig eine Schnittstelle zwischen zwei Shops mittels API zu bauen. Allerdings bei den Varianten mit „configuratorOptions“ verzweifel ich.

Die Ausage bei GET sieht so aus:

```
  "configuratorOptions": [
                {
                    "id": 3,
                    "groupId": 5,
                    "name": "S (36 bis 39)",
                    "position": 3,
                    "mediaId": 0
                }
            ]

```

Bei POST habe ich diese Anordnung:

```
[configuratorOptions] => Array
  (
    [0] => Array
      (
      [name] => S (36 bis 39)
      [position] => 3
  )

)

```

**Aber die Option wird nicht angelegt und mit dem Artikel verbunden. Wie muss ich das bei POST umstellen, damit es mir diese Optionen übernimmt?**

&nbsp;

---

<div class="post-metadata">

**Author:** ![NextMike](https://avatars.discourse-cdn.com/v4/letter/n/838e76/32.png) [@NextMike](https://forum.shopware.com/u/NextMike)\
**Post date:** [19. August 2020 um 09:44 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/2 "2020-08-19T09:44:39Z")

</div>

Ich füge die so den Varianten zu:

```
'configuratorOptions' => array(
                        array('group' => 'Größe', 'option' => $data['size']),
                    ),        

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. August 2020 um 11:47 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/3 "2020-08-19T11:47:43Z")

</div>

Hm, ich habe mich eigentlich an dei Doku gehalten:

[https://developers.shopware.com/developers-guide/rest-api/models/#configurator-option](https://developers.shopware.com/developers-guide/rest-api/models/#configurator-option)

Aber die Optionen werden nicht angelegt und mit dem Varianten-Artikel verbunden. Muss mal dein Beispiel testen. Geht das auch bei Update?

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. August 2020 um 12:16 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/4 "2020-08-19T12:16:09Z")

</div>

Nein, da stimmt noch etwas nicht.

Die Optionen werden nun sauber angelegt, aber die Verbindung zur Gruppe leider nicht. Das heißt im Klartext, bei den Einstellungen zum Artikel im Backend Varianten -\> Konfiguration ist die Gruppe (hier im Beispiel Größe) nicht mit den Optionen verbunden. Im Frontend werden sie also nicht dargestellt. Ganz konkret fehlen die Verbindungen in der Tabelle “s\_article\_configurator\_set\_option\_relations”.

Wenn diese noch nicht existieren, müssten die auch automatisch angelegt werden. Das scheint die API leider nicht zu machen.

---

<div class="post-metadata">

**Author:** ![NextMike](https://avatars.discourse-cdn.com/v4/letter/n/838e76/32.png) [@NextMike](https://forum.shopware.com/u/NextMike)\
**Post date:** [19. August 2020 um 12:22 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/5 "2020-08-19T12:22:44Z")

</div>

Na, wenigstens bist Du schon mal weiter.

Hier sind bessere Beispiele zu sehen:&nbsp;[https://developers.shopware.com/developers-guide/rest-api/examples/article/](https://developers.shopware.com/developers-guide/rest-api/examples/article/)

Mit&nbsp;configuratorSet anlegen mit configuratorOptions zuweisen.

---

<div class="post-metadata">

**Author:** ![PStadtfeld](https://avatars.discourse-cdn.com/v4/letter/p/3bc359/32.png) [@PStadtfeld](https://forum.shopware.com/u/PStadtfeld)\
**Post date:** [19. August 2020 um 12:36 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/6 "2020-08-19T12:36:06Z")

</div>

@R4M‍

Da hatte ich am Anfang auch Probleme mit, habe es dann ähnlich wie NextMike gelöst, allerdings brauchten wir neben ‘configuratorOptions’ auch noch das ‘configuratorSet’, sonst hat er die auch nie richtig im Backend angelegt, bzw. teils nicht im Frontend auswählbar gemacht…

Hier ein Auszug nur mit Größe:

```
$updateArticle = [
                    ...
                    'configuratorSet' => [ 'groups' => 
                                     [
                                       [ 'name' => 'Größe', 'options' => 
                                                   [ 
                                                     ['name' => x],
                                                     ['name' => y],
                                                     ['name' => z]
                                                   ] 
                                       ],
                                       ...           
                                     ] 
                    ],
                    'variants' => [
                                    [
                                    ...
                                    'configuratorOptions' => 
                                           [
                                               ['group' => 'Größe', 'option' => x],
                                               ...
                                           ]
                                    ...
                                    ],
                                    ...
                                  ],
                    ...
                ];

```

&nbsp;

Sieht schlimmer aus als es ist …

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. August 2020 um 13:04 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/7 "2020-08-19T13:04:49Z")

</div>

Ist irgendwie ein „gefummel” an dieser Stelle. Wenn ich mir die Beispiele ansehe, bringt es mich nicht wirklich weiter. Während bei GET der Parameter „configuratorSet” auf null gesetzt ist, ist er bei PUT in einem Format wo ich mich frage wie dieser zusammengesetzt wird. Ich lese die Daten per API aus und spiele sie per API wieder ein.

Beim Auslesen über die API stehen die Optionen unter „configuratorOptions” innerhalb der Details. Beim Beispiel oben mit PUT sind die dann bei „configuratorSet” drin. Irgendwie alles verdreht …

---

<div class="post-metadata">

**Author:** ![NextMike](https://avatars.discourse-cdn.com/v4/letter/n/838e76/32.png) [@NextMike](https://forum.shopware.com/u/NextMike)\
**Post date:** [19. August 2020 um 13:11 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/8 "2020-08-19T13:11:33Z")

</div>

Beim&nbsp;configuratorSet hat man alle möglichen Varianten. Bei&nbsp;configuratorOptions nur die der jeweiligen Variante. Beim Anlegen und Updaten ist es wichtig auf das PUT-Format zu achten. Mit GET kannst Du dir die Daten und die Feldnamen anschauen. Aber letztendlich dann wieder in die PUT-Struktur bringen. Einfach den Beispielen folgen.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. August 2020 um 14:31 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/9 "2020-08-19T14:31:20Z")

</div>

> [@PStadtfeld schrieb:](https://forum.shopware.com/profile/26941/PStadtfeld "PStadtfeld")
> 
> &nbsp;
> 
> Sieht schlimmer aus als es ist …

Ja in der Theorie sieht das alles ganz locker aus, aber nicht wenn du die Daten erst mit der API aus einem anderen Shop auslesen musst. Beim Auslesen (also GET) bekommst du von der API ein völlig anderes Format. Dieses musst du jetzt so umbauen wie du es als Beispiel erwähnt hast 🙂 Da kannst Stunden damit verbringen 🙂

&nbsp;

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [20. August 2020 um 08:58 UTC](https://forum.shopware.com/t/erledigt-rest-api-configuratoroptions/69021/10 "2020-08-20T08:58:10Z")

</div>

Habe nun den ganzen Käse in den Griff bekommen. Zwar recht umständlich, aber alles funktioniert 🙂
