# Varianten aktualisieren über REST API Variants Resource

**URL:** <https://forum.shopware.com/t/varianten-aktualisieren-uber-rest-api-variants-resource/57080>\
**Category:** Programmierung\
**Created:** [14. Dezember 2018 um 14:04 UTC](https://forum.shopware.com/t/varianten-aktualisieren-uber-rest-api-variants-resource/57080 "2018-12-14T14:04:03Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![vismagine](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/vismagine/32/24302_2.png) [@vismagine](https://forum.shopware.com/u/vismagine)\
**Post date:** [14. Dezember 2018 um 14:04 UTC](https://forum.shopware.com/t/varianten-aktualisieren-uber-rest-api-variants-resource/57080/1 "2018-12-14T14:04:03Z")

</div>

Ich habe vergeblich versucht angelegte Varianten eines Artikels über die REST API Variants Resource zu aktualisieren. Laut [Developer Guide](https://developers.shopware.com/developers-guide/rest-api/api-resource-variants/)&nbsp;kann das JSON-Variant-Model über PUT an eine URL übergeben werden, die die passende **id** &nbsp;oder die **ordernumber** definiert. Auf diese Weise ist es aber nicht möglich die Varianten zu aktualisieren, die id/ordernumber darf in der URL nicht auftauchen!?

Statt PUT auf:&nbsp;/api/variants **/SW10003**?useNumberAsId=true ODER&nbsp;/api/variants/3 mit JSON&nbsp;[{“number”:“SW10135”,“inStock”:“102”}]

Funktioniert PUT auf:&nbsp;/api/variants?useNumberAsId=true mit JSON&nbsp;[{“number”:“SW10135”,“inStock”:“102”}]

( **Shopware 5.4.6&nbsp;** Build Rev 201807181357)

Hat jemand ähnliche Erfahrungen? Steht das irgendwo in der Dokumentation oder ist das ein Bug in der API?

&nbsp;

---

<div class="post-metadata">

**Author:** ![stormerMike](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@stormerMike](https://forum.shopware.com/u/stormerMike)\
**Post date:** [17. Dezember 2018 um 09:03 UTC](https://forum.shopware.com/t/varianten-aktualisieren-uber-rest-api-variants-resource/57080/2 "2018-12-17T09:03:45Z")

</div>

Das ist keine Bug sondern der [**Batch Modus**](https://developers.shopware.com/developers-guide/rest-api/examples/batch/), mit dem mit einem Request viele Artikel/Varianten auf einmal geändert werden können.

Eine Aktualisierung funktioniert damit, bei mir sogar ohne **useNumberAsId=true** obwohl trotzdem **number** für das matchen verwendet wird (das ist für mich eher ein Bug)

Ohne Batch funktioniert: **PUT [http://localhost/demoshop\_3/api/variants/72574](http://localhost/demoshop_3/api/variants/72574)**

```
{
	"inStock": 88
}

```

Mit Batch: **PUT [http://localhost/demoshop\_3/api/articles](http://localhost/demoshop_3/api/articles)** (“articles” nicht “variants”)  
Man übergibt hier (mehrere) Artikel Objekte als Array die **mainDetail** und **variants** als Unterelemente enthalten können. Du kannst damit z.B. auch die Kategorie des Hauptartikels ändern.

```
[
  {
    "mainDetail": {
      "number": "MAIN-DETAIL-NUMBER"
    },
    "variants": [
      {
        "number": "VARIANT-NUMBER-TO-UPDATE-182076",
        "inStock": 99
      }
    ]
  }
]

```

Wobei ich drauf gekommen bin das man im Batch-Modus am Besten immer die Hauptvariante (mainDetail mit number) mit schickt um den Fehler

**A variant with the given order number “…” already exists.**

zu vermeiden.
