# Preis aktualisieren über die REST API?

**URL:** https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015
**Category:** Programmierung
**Created:** [7. Juli 2016 um 10:48 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015 "2016-07-07T10:48:21Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![MarcelEpp](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@MarcelEpp](https://forum.shopware.com/u/MarcelEpp)
#### Post date: [7. Juli 2016 um 10:48 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015/1 "2016-07-07T10:48:21Z")

</div>

Hallo,

ich probiere Shopware seit ein paar Tagen aus. Ich würde gerne die Preise aus einer CSV-Datei aktualisieren. In der Doku steht das man für größere Aktualisierungen die REST API benutzen soll.

Ich bin der Doku gefolgt und habe mir eine kleine PHP Seite gebaut. Artikel abrufen und anzeigen habe ich hinbekommen. Weiterhin habe ich mir nun einen Upload für meine CSV-Datei gebastelt und diese geöffnet. Ich bekomme dann eine Ausgabe in der Form:

```
Array
(
    [0] => SW10000
    [1] => 0,01
)
Array
(
    [0] => SW10001
    [1] => 0,95
)
Array
(
    [0] => SW10002
    [1] => 1,95
)
Array
(
    [0] => SW10003
    [1] => 2,95
)
Array
(
    [0] => SW10004
    [1] => 3,95
)
Array
(
    [0] => SW10005
    [1] => 4,95
)

```

Wie bringe ich nun die REST API dazu die Preise zu aktualisieren. Folgendes hat schon funktioniert:

```
$client->put('articles/2', array(
'name' => 'Ball'
));

```

Damit konnte ich problemlos den Namen ändern. In der CSV-Datei steht aber nun nur Ordernumber und price. Kann ich über die REST API auch nur diese beiden Sachen ansprechen?

Im Wiki steht ich brauche eine immer die ID. Ich würde das wie im Backend lieber über die Ordernumber machen. Die Artikel kommen sonst aus einem Warenwirtschaftssystem.

Daher denke ich mir, das man die Ordernumber für Shopware aus dem Warenwirtschaftssystem übernehmen kann. ![Undecided](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/8ae622c50104e84c5003fedfcc22572813a67b41.png "Undecided")

---

<div class="post-metadata">

### Author: ![t2oh4e](https://avatars.discourse-cdn.com/v4/letter/t/a5b964/32.png) [@t2oh4e](https://forum.shopware.com/u/t2oh4e)
#### Post date: [7. Juli 2016 um 11:10 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015/2 "2016-07-07T11:10:09Z")

</div>

Das Stichwort das du suchst ist: useNumberAsId

siehe:&nbsp;[REST API - Article Resource](https://developers.shopware.com/developers-guide/rest-api/api-resource-article/#put-update)

---

<div class="post-metadata">

### Author: ![MarcelEpp](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@MarcelEpp](https://forum.shopware.com/u/MarcelEpp)
#### Post date: [7. Juli 2016 um 13:24 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015/3 "2016-07-07T13:24:11Z")

</div>

Juhu. Danke für den Hinweis. Der Befehl scheint zu klappen. Zumindest kann ich so den Namen ändern. Kann man so auch den Preis ändern?

```
$client->put('articles/SW0001?useNumberAsId=true', array(
      'price' => 9,95
      ));  

```

&nbsp;

---

<div class="post-metadata">

### Author: ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)
#### Post date: [7. Juli 2016 um 13:36 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015/4 "2016-07-07T13:36:38Z")

</div>

Steht alles auf der Seite wie es geht…

Hol dir nen Artikel, guck wie er aufgebaut ist, bau bei dir die Struktur nach, gib die Pflichtangaben an.

Wenn du eine API benutzen willst solltest du auch gucken wie das funktioniert.

---

<div class="post-metadata">

### Author: ![MarcelEpp](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@MarcelEpp](https://forum.shopware.com/u/MarcelEpp)
#### Post date: [8. Juli 2016 um 06:30 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015/5 "2016-07-08T06:30:03Z")

</div>

Hallo,

danke für die Antworten. Als Frischling ist das nun mal nicht so leicht da durchzublicken.&nbsp; ![Foot-in-Mouth](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/foot-in-mouth.png "Foot-in-Mouth")  
Der Vorschlag von steinsoftware mir erst die Artikel zu holen hat es dann doch gebracht. Ich habe die Struktur nicht kapiert bzw. nicht ordentlich angeschaut.  
Für das Update des Preises muss nicht nur das „prices“ array angesprochen werden, sondern auch das „mainDetail“ array. So habe ich jetzt den Namen geändert  
und den Preis aktualisiert:

```
$updateArticle = array(
              'name' => 'Restball22',
              'mainDetail' => array(
              'prices' => array(
                array(
                    'customerGroupKey' => 'EK',
                    'price' => 900,
                ),
              )
            )
            );
            

      $client->put('articles/SW10001?useNumberAsId=true', $updateArticle);

```

Dabei habe ich wie oben von t2oh4e beschrieben „Number as id“ benutzt.

---

<div class="post-metadata">

### Author: ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)
#### Post date: [15. September 2020 um 09:42 UTC](https://forum.shopware.com/t/preis-aktualisieren-uber-die-rest-api/38015/6 "2020-09-15T09:42:53Z")

</div>

Es wäre sehr hilfreich, wenn bei&nbsp;

```
$client->put('articles/SW0001?useNumberAsId=true', array(
      'price' => 9,95
      ));  

```

kein success TRUE herauskommt, denn es ist in Wiklichkeit FALSE
