# REST API Varianten löschen

**URL:** <https://forum.shopware.com/t/rest-api-varianten-loschen/41210>\
**Category:** Programmierung\
**Created:** [8. November 2016 um 17:04 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210 "2016-11-08T17:04:14Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![sebbo](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@sebbo](https://forum.shopware.com/u/sebbo)\
**Post date:** [8. November 2016 um 17:04 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/1 "2016-11-08T17:04:14Z")

</div>

Hallo,

ich habe folgendes Problem beim Synchronisieren der Artikle mit der API:

Wenn ich bei einem Variantenartikel eine Variante löschen möchte, gebe ich Sie beim aktualisieren des Artikels&nbsp;einfach nicht mehr mit, dann wird sie gelöscht. Das passt soweit.

Wenn der Artikel aber gar keine Varianten mehr haben soll, gebe ich jetzt ‘variants’=\>null mit, die Varianten bleiben dann aber bestehen.

Wie kann ich über die Artikel API alle Varianten löschen?

Beste Grüße!

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [8. November 2016 um 17:33 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/2 "2016-11-08T17:33:58Z")

</div>

Hallo,

benutzen Sie&nbsp;\_\_options\_variants mit&nbsp;replace =\> true

```
// $data Ihr artikel array
$data['__options_variants'] = array(replace => true);

```

&nbsp;

Viele Grüße

Ahmad

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [8. November 2016 um 17:48 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/3 "2016-11-08T17:48:23Z")

</div>

Hi sebbo,

//edit Da war jemand schneller, und scheint auch einfacher…

&nbsp;

die API hat für Varianten den expliziten Endpunkt (zumindest in der aktuellsten Version 5.2.x)

```
DELETE /api/variants/{id}

```

Ebenfalls mit dem optionalen Parameter

```
?useNumberAsId=1

```

&nbsp;

Wenn Du vorher den Artikel abrufst mit

```
/api/articles/{number}?useNumberAsId=1

```

oder

```
/api/articles/{id}

```

bekommst Du den Artikel inkl.&nbsp;aller&nbsp;Varianten. Die Hauptvariante ist wie immer in `mainDetail`.

Die anderen Varianten finden sich als Array in `details`, inkl der Varianten `id`. Die könntest Du dann in

```
DELETE /api/variants/{id}

```

verwenden. Oder wenn bekannt halt direkt mit der `number` und dem oben erwähnten Parameter.

&nbsp;

Vielleicht kannst Du mir auch eine Frage beantworten. Wenn ich bei einem put /api/articles/{id} eine Variante, die vorher drin war beim erneuten updaten weglasse, wird die alte NICHT gelöscht. Warum läuft das bei Dir so? Hast Du bei den Varianten bereits ids drin? Ich habe keine und die Zuordnung findet anscheinend über die `number` statt. Aber wenn ich einen Eintrag weglasse, bleibt die weggelassene bestehen.

&nbsp;

Grüße

Jakob

---

<div class="post-metadata">

**Author:** ![sebbo](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@sebbo](https://forum.shopware.com/u/sebbo)\
**Post date:** [9. November 2016 um 12:26 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/4 "2016-11-09T12:26:03Z")

</div>

> [@ahmadsaad schrieb:](https://forum.shopware.com/profile/24684/ahmadsaad "ahmadsaad")
> 
> Hallo,
> 
> benutzen Sie&nbsp;\_\_options\_variants mit&nbsp;replace =\> true
> 
> // $data Ihr artikel array  
> $data[‚\_\_options\_variants‘] = array(replace =\> true);
> 
> &nbsp;
> 
> Viele Grüße
> 
> Ahmad

Super vielen Dank, habe ich mir gerade im Code angesehen, das sieht sehr vielversprechend aus.

Was muss ich dann bei variants mitgeben? Bei null passiert nichts, bei einem leeren Array bekomme ich eine&nbsp;nicht näher definitierte ValidationException.

Beste Grüße

&nbsp;

EDIT:

Habe das Problem nun lokalisiert:

Wenn der Artikel bereits Varianten hat, muss man bei variants ein leeres Array mitgeben, wenn nicht **darf** man das nicht. Jetzt weiß ich beim Import aber ja nicht, ob im Shop der Artikel jetzt Varianten hat oder nicht. Gibt es eine Möglichketi des Imports, bei dem ich das nicht vorher überprüfen muss?

Danke und LG

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [9. November 2016 um 13:02 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/5 "2016-11-09T13:02:21Z")

</div>

> [@sebbo schrieb:](https://forum.shopware.com/profile/24276/sebbo "sebbo")
> 
> > [@ahmadsaad schrieb:](https://forum.shopware.com/profile/24684/ahmadsaad "ahmadsaad")
> > 
> > Hallo,
> > 
> > benutzen Sie&nbsp;\_\_options\_variants mit&nbsp;replace =\> true
> > 
> > // $data Ihr artikel array  
> > $data[‚\_\_options\_variants‘] = array(replace =\> true);
> > 
> > &nbsp;
> > 
> > Viele Grüße
> > 
> > Ahmad
> 
> Super vielen Dank, habe ich mir gerade im Code angesehen, das sieht sehr vielversprechend aus.
> 
> Was muss ich dann bei variants mitgeben? Bei null passiert nichts, bei einem leeren Array bekomme ich eine&nbsp;nicht näher definitierte ValidationException.
> 
> Beste Grüße

könnten Sie schreiben was ist das&nbsp;Fehler.

---

<div class="post-metadata">

**Author:** ![wwnorden](https://avatars.discourse-cdn.com/v4/letter/w/db5fbb/32.png) [@wwnorden](https://forum.shopware.com/u/wwnorden)\
**Post date:** [14. Dezember 2016 um 10:24 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/6 "2016-12-14T10:24:12Z")

</div>

Mich würde interessieren, wie man bei einem Hauptartikel die Variantenfähigkeit via REST-API beenden kann? Ziel soll es sein, im Shopware-Backend den Haken bei Varianten-Artikel zu entfernen. Der folgende Code im Hauptartikel tut dies nicht:

```
'configuratorSet' => array(),

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![sebbo](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@sebbo](https://forum.shopware.com/u/sebbo)\
**Post date:** [14. Dezember 2016 um 17:52 UTC](https://forum.shopware.com/t/rest-api-varianten-loschen/41210/7 "2016-12-14T17:52:05Z")

</div>

```
$data['__options_variants'] = array('replace' => true);
$data['configuratorSet'] = array();
$data['variants'] = array();

```

should do the job!

Das ganze funktioniert aber nur, wenn der Artikel dabei Varianten hat. Wenn die Variantenfähigkeit bereis negativ ist und man das Update ausführt, bekommt man einen Fehler - einer der vielen vielen Fehler in der Shopware API 🙂

LG
