# Hook für Basket()-&gt;sGetAmount()  - richtige Vorgehensweise?

**URL:** <https://forum.shopware.com/t/hook-fur-basket-gt-sgetamount-richtige-vorgehensweise/4482>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [27. September 2011 um 16:09 UTC](https://forum.shopware.com/t/hook-fur-basket-gt-sgetamount-richtige-vorgehensweise/4482 "2011-09-27T16:09:03Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![waldicom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/waldicom/32/12881_2.png) [@waldicom](https://forum.shopware.com/u/waldicom)\
**Post date:** [27. September 2011 um 16:09 UTC](https://forum.shopware.com/t/hook-fur-basket-gt-sgetamount-richtige-vorgehensweise/4482/1 "2011-09-27T16:09:03Z")

</div>

Hallo zusammen, ich habe jetzt einen Hook erstellt, der so aussieht: ` $hookBasket = $this-\>createHook( 'sBasket', 'sGetAmount', 'Basket\_sGetAmount\_After', Enlight\_Hook\_HookHandler::TypeAfter , 0 ); $this-\>subscribeHook($hookBasket); ` Was ich damit erreichen möchte: bei der Berechnung der Warenkorbsumme muss ich ein zusätzliches Feld (`ob_attr1`) mitberechnen. Die Methode Basket\_sGetAmount\_After() sieht so aus: `$row = Shopware()-\>Db()-\>fetchRow( "SELECT SUM(quantity\*(floor(price \* 100 + .55)/100) \* IF (ob\_attr1,ob\_attr1,1)) AS totalAmount FROM s\_order\_basket " ); $args-\>setReturn($row);` Ist das in Ordnung so? Was passiert, wenn ein anderes Plugin auch ein Hook auf diese Methode macht? Kann dadurch was schief gehen? Müsste ich vielleicht „TypeReplace“ statt „TypeAfter“ verwenden? Hoffe, das sind nicht zu viele Fragen 🙂 Vielen Dank.

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [28. September 2011 um 08:22 UTC](https://forum.shopware.com/t/hook-fur-basket-gt-sgetamount-richtige-vorgehensweise/4482/2 "2011-09-28T08:22:55Z")

</div>

[quote=“waldicom”]Hallo zusammen, ich habe jetzt einen Hook erstellt, der so aussieht: ` $hookBasket = $this-\>createHook( 'sBasket', 'sGetAmount', 'Basket\_sGetAmount\_After', Enlight\_Hook\_HookHandler::TypeAfter , 0 ); $this-\>subscribeHook($hookBasket); ` Was ich damit erreichen möchte: bei der Berechnung der Warenkorbsumme muss ich ein zusätzliches Feld (`ob_attr1`) mitberechnen. Die Methode Basket\_sGetAmount\_After() sieht so aus: `$row = Shopware()-\>Db()-\>fetchRow( "SELECT SUM(quantity\*(floor(price \* 100 + .55)/100) \* IF (ob\_attr1,ob\_attr1,1)) AS totalAmount FROM s\_order\_basket " ); $args-\>setReturn($row);` Ist das in Ordnung so? Was passiert, wenn ein anderes Plugin auch ein Hook auf diese Methode macht? Kann dadurch was schief gehen? Müsste ich vielleicht “TypeReplace” statt “TypeAfter” verwenden? Hoffe, das sind nicht zu viele Fragen 🙂 Vielen Dank.[/quote] Morgen, mit der Zahl hinter dem TypeAfter bestimmst du die Reihenfolge des Ausführens. Wenn ein anderes Plugin auch ein Hook darauf hat, werden Beide ausgeführt. TypeReplace nimmst du nur, wenn du den ganzen Code ersetzen willst. Ich kenne den original Code jetzt nicht, aber mit TypeReplace sollte es hinkommen. Funktioniert es den?
