# Event Parameter ändern (aticleName)

**URL:** <https://forum.shopware.com/t/event-parameter-andern-aticlename/28866>\
**Category:** Programmierung\
**Created:** [15. Juli 2015 um 10:27 UTC](https://forum.shopware.com/t/event-parameter-andern-aticlename/28866 "2015-07-15T10:27:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![creative-man](https://avatars.discourse-cdn.com/v4/letter/c/eada6e/32.png) [@creative-man](https://forum.shopware.com/u/creative-man)\
**Post date:** [15. Juli 2015 um 10:27 UTC](https://forum.shopware.com/t/event-parameter-andern-aticlename/28866/1 "2015-07-15T10:27:06Z")

</div>

Wie kann ich bei dem Event `public function sAddArticle ($id, $quantity=1) { ... $sql = Enlight()-\>Events()-\>filter('Shopware\_Modules\_Basket\_AddArticle\_FilterSql',$sql, array('subject'=\>$this,"article"=\>$getArticle,"price"=\>$getPrice,"esd"=\>$sEsd,"quantity"=\>$quantity,"partner"=\>$this-\>sSYSTEM-\>\_SESSION["sPartner"])); ... }` den Parameter `articleName` der ja im Array article ist ändern ? Ich habe es mit `$arguments-\>set("articleName" ,"Neuer Artikelname");` versucht. Es ändert sich jedoch nichts. Hier das Arguments dump: `stdClass Object ( [\_\_CLASS\_\_] =\> Enlight\_Event\_EventArgs [\_processed] =\> [\_name] =\> Shopware\_Modules\_Basket\_AddArticle\_FilterSql [\_return] =\> INSERT INTO s\_order\_basket (id,sessionID,userID,articlename,articleID, ordernumber, shippingfree, quantity, price, netprice, datum, esdarticle, partnerID, config) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) [\_elements] =\> Array ( [subject] =\> stdClass Object ( [\_\_CLASS\_\_] =\> Shopware\_Proxies\_sBasketProxy [sSYSTEM] =\> sSystem [sBASKET] =\> [snippetObject] =\> Enlight\_Components\_Snippet\_Namespace ) [article] =\> Array ( [articleID] =\> 273 [articleName] =\> Mein Test-Artikel blau / S [taxID] =\> 1 [additionaltext] =\> blau / S [shippingfree] =\> 0 [laststock] =\> 0 [instock] =\> 0 [articledetailsID] =\> 870 [ordernumber] =\> SW10002 ) [price] =\> Array ( [price] =\> 15 [tax] =\> 19.00 [netprice] =\> 12.605042016807 ) [esd] =\> 0 [quantity] =\> 1 [partner] =\> ) )`

---

<div class="post-metadata">

**Author:** ![dirk\_designverign](https://avatars.discourse-cdn.com/v4/letter/d/ec9cab/32.png) [@dirk\_designverign](https://forum.shopware.com/u/dirk_designverign)\
**Post date:** [15. Juli 2015 um 10:43 UTC](https://forum.shopware.com/t/event-parameter-andern-aticlename/28866/2 "2015-07-15T10:43:33Z")

</div>

Mit $arguments-\>getArticle(); kriegst Du zwar das Array, hier Werte zu ändern ist aber bei dem Event nicht vorgesehen. Du könntest das 4 Fragezeichen in der SQL-Abfrage durch den Artikelnamen ersetzen.

---

<div class="post-metadata">

**Author:** ![creative-man](https://avatars.discourse-cdn.com/v4/letter/c/eada6e/32.png) [@creative-man](https://forum.shopware.com/u/creative-man)\
**Post date:** [15. Juli 2015 um 11:19 UTC](https://forum.shopware.com/t/event-parameter-andern-aticlename/28866/3 "2015-07-15T11:19:43Z")

</div>

Das habe ich gerade probiert. Jetzt wird er Artikel nicht mehr in Warenkorb gelegt. Ich habe es so versucht: `$sql = $arguments-\>getReturn(); $sql = "INSERT INTO s\_order\_basket (id,sessionID,userID,articlename,articleID, ordernumber, shippingfree, quantity, price, netprice, datum, esdarticle, partnerID, config) VALUES (?, ?, ?, 'neuerName', ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )"; return $sql;` Das müsste doch eigentlich funktionieren dafür ist das event doch da.

---

<div class="post-metadata">

**Author:** ![creative-man](https://avatars.discourse-cdn.com/v4/letter/c/eada6e/32.png) [@creative-man](https://forum.shopware.com/u/creative-man)\
**Post date:** [15. Juli 2015 um 11:49 UTC](https://forum.shopware.com/t/event-parameter-andern-aticlename/28866/4 "2015-07-15T11:49:29Z")

</div>

Ich habe es jetzt selbst hinbekommen. Ich habe einen after Hook auf sAddArticle gemacht. Dann habe ich einfach ein Datenbankupdate mit der insertID gemacht: `public function AfterAddArticle(Enlight\_Hook\_HookArgs $arguments) { $insertID = $arguments-\>getReturn(); $sql = "UPDATE s\_order\_basket SET articlename ='neuer Name' WHERE id = $insertID "; Shopware()-\>Db()-\>query($sql); }`

---

<div class="post-metadata">

**Author:** ![dirk\_designverign](https://avatars.discourse-cdn.com/v4/letter/d/ec9cab/32.png) [@dirk\_designverign](https://forum.shopware.com/u/dirk_designverign)\
**Post date:** [15. Juli 2015 um 11:52 UTC](https://forum.shopware.com/t/event-parameter-andern-aticlename/28866/5 "2015-07-15T11:52:51Z")

</div>

Macht wahrscheinlich mehr Sinn. Ansonsten muss die Anzahl der Parameter natürlich gleich bleiben, also so etwas wie: ` $sql = "INSERT INTO s\_order\_basket (id,sessionID,userID,articlename,articleID, ordernumber, shippingfree, quantity, price, netprice, datum, esdarticle, partnerID, config) VALUES (?, ?, ?, if (TRUE, 'neuerName', ?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";` Sollte funktionieren.
