# REST-API: Batch Modus mit useNumberAsId?

**URL:** <https://forum.shopware.com/t/rest-api-batch-modus-mit-usenumberasid/29024>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [21. Juli 2015 um 18:32 UTC](https://forum.shopware.com/t/rest-api-batch-modus-mit-usenumberasid/29024 "2015-07-21T18:32:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jan\_im\_Forum](https://avatars.discourse-cdn.com/v4/letter/j/b38774/32.png) [@Jan\_im\_Forum](https://forum.shopware.com/u/Jan_im_Forum)\
**Post date:** [21. Juli 2015 um 18:32 UTC](https://forum.shopware.com/t/rest-api-batch-modus-mit-usenumberasid/29024/1 "2015-07-21T18:32:56Z")

</div>

Hallo, ich möchte gerne die Bestände per REST-API im Batch Modus aktualisieren. Da ich die interne Shopware Artikel-ID zu diesem Zeitpunkt nicht kenne, möchten ich die OrderNumber als ID verwenden. Um einen einzelnen Arikel zu aktualisiern, rufen ich die API mit “?useNumberAsId=true” als Parameter auf. So sieht der Code aus, wenn ich einen einzelnen Artikel aktualisieren. Das funktioniert soweit auch gut. ` /\* Assign values to variables \*/ $now = date("c"); $stock = 4; /\* Compute article data array \*/ $ArticleData = array( 'changed' =\> $now, 'mainDetail' =\> array( 'inStock' =\> $stock, ) ); /\* Put data \*/ $articles = $client-\>put('articles/EAN-4008789039118?useNumberAsId=true',$ArticleData); ` Unsere OrderNumber hat das Format “EAN-EAN-Nummer”. Z.B. EAN-4008789039118. In unserer Warenwirtschaft ist die EAN die eindeutige und führende Nummer. Somit sollte sich der Bestand im Shop aktualisieren lassen, ohne dass zuvor die ID zur OrderNumber gesucht / ausgelesen wird. Wie sieht der Aufruf aus, wenn der Batch Modus verwendet und gleichzeit mit der OrderNumber als ID gearbeitet werden soll? Jan

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [22. Juli 2015 um 09:39 UTC](https://forum.shopware.com/t/rest-api-batch-modus-mit-usenumberasid/29024/2 "2015-07-22T09:39:26Z")

</div>

Hi, beim Batch-Modus geht das automatisch, wenn eine ID im Artikel-Array ist, nimmt die API die, wenn eine Bestellnummer drin ist, nimmt die API die: [http://community.shopware.com/Shopware- … Batch\_Mode](http://community.shopware.com/Shopware-4.2-Upgrade-Guide-for-Developers%5C_detail%5C_1436.html#Batch%5C_Mode) Also: Kein “useNumberAsId” notwendig, einfach die Bestellnummer im Maindetail mit angeben, siehe \Shopware\Components\Api\Resource\Article::getIdByData Gruß, Daniel

---

<div class="post-metadata">

**Author:** ![Jan\_im\_Forum](https://avatars.discourse-cdn.com/v4/letter/j/b38774/32.png) [@Jan\_im\_Forum](https://forum.shopware.com/u/Jan_im_Forum)\
**Post date:** [22. Juli 2015 um 17:19 UTC](https://forum.shopware.com/t/rest-api-batch-modus-mit-usenumberasid/29024/3 "2015-07-22T17:19:57Z")

</div>

Hallo Daniel, leider bekomme ich das nicht hin. Ich habe jetzt folgendes ausprobiert: ` /\* Compute article data array \*/ $ArticleData = array( array('mainDetail' =\> array('number'=\> 'EAN-4008789039118'),'mainDetail' =\> array('inStock' =\> '10')) ); /\* Put data \*/ $articles = $client-\>put('articles/',$ArticleData); ` Das funktioniert nicht. Dann habe ich folgendes ausprobiert: ` /\* Compute article data array \*/ $ArticleData = array( array('number'=\> 'EAN-4008789039118','mainDetail' =\> array('inStock' =\> '10')) ); /\* Put data \*/ $articles = $client-\>put('articles/',$ArticleData); ` Das funktioniert auch nicht. Ich bekomme immer diese Meldung: ` HTTP: 200 Success Array ( [0] =\> Array ( [success] =\> [message] =\> Object(Shopware\Models\Article\Article).name: This value should not be blank. Object(Shopware\Models\Article\Article).tax: This value should not be blank. Object(Shopware\Models\Article\Article).mainDetail.number: This value should not be blank. [trace] =\> #0 ` Und der Bestand wird nicht verändert. Ich habe in der von dir angegebenen Datei nachgesehen, aber mir ist nicht klar, wie ich den Aufruf / Zuweisung der ‘number’ mache. Sorry, bin kein Experte und klicke mir das so zusammen / versuche das zu verstehen. Jan

---

<div class="post-metadata">

**Author:** ![Jan\_im\_Forum](https://avatars.discourse-cdn.com/v4/letter/j/b38774/32.png) [@Jan\_im\_Forum](https://forum.shopware.com/u/Jan_im_Forum)\
**Post date:** [25. Juli 2015 um 22:09 UTC](https://forum.shopware.com/t/rest-api-batch-modus-mit-usenumberasid/29024/4 "2015-07-25T22:09:57Z")

</div>

Nach weiterem Probieren habe ich jetzt die Lösung gefunden: ` /\* Assign values to variables \*/ $now = date("c"); $EAN = 'EAN-4008789039118'; $stock = 6; $active = 1; /\* Compute article data array \*/ $ArticleData = array( array('mainDetail' =\> array('number'=\> $EAN,'inStock' =\> $stock,'active'=\> $active),'changed' =\> $now,'active' =\> $active), ); /\* Put data \*/ $articles = $client-\>put('articles/',$ArticleData); ` Man muss alle Werte, die in mainDetail stehen auch nur in einem Array ‘mainDetail’ übergeben.
