# Before Hook: Funktion der Klasse aufrufen

**URL:** https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482
**Category:** Programmierung
**Created:** [17. Juli 2019 um 13:13 UTC](https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482 "2019-07-17T13:13:44Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![sebbo](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@sebbo](https://forum.shopware.com/u/sebbo)
#### Post date: [17. Juli 2019 um 13:13 UTC](https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482/1 "2019-07-17T13:13:44Z")

</div>

Hallo,

ich nutze den before Hook auf sSaveOrder, um im Warenkorb etwas zu verändern, das funktioniert soweit. Anschließend würde ich für das sBasket-Objekt gerne die Funktion sRefreshBasket aufrufen, um die Bestellsumme etc. neu zu berechnen, bekomme aber diese Fehlermeldung:

```
[17-Jul-2019 15:03:45 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined method Shopware_Proxies_sOrderProxy::sRefreshBasket() in ...

```

In der Doku hatte ich nur herausgelesen, dass bei replace-Hooks eine Proxy-Klasse genutzt wird. Ist dies auch bei before-Hooks der Fall? Und: Wie kann ich nun die Funktion für diese Proxy-Klasse aufrufen? Mit executeParent scheine ich nicht weiterzukommen, weil es ja um das konkrete Objekt geht.

&nbsp;

Danke schonmal&nbsp;für die Hilfe!

---

<div class="post-metadata">

### Author: ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)
#### Post date: [17. Juli 2019 um 19:54 UTC](https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482/2 "2019-07-17T19:54:25Z")

</div>

Auf die HookArgs getSubject ausführen und darauf sRefreshBasket aufrufen

---

<div class="post-metadata">

### Author: ![sebbo](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@sebbo](https://forum.shopware.com/u/sebbo)
#### Post date: [18. Juli 2019 um 06:51 UTC](https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482/3 "2019-07-18T06:51:53Z")

</div>

Danke für deine Antwort! Genau das habe ich gemacht, bei $args-\>getSubject bekomme ich aber dann ein Objekt der Klasse sOrderProxy, nicht der sOrder.

---

<div class="post-metadata">

### Author: ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)
#### Post date: [18. Juli 2019 um 16:46 UTC](https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482/4 "2019-07-18T16:46:43Z")

</div>

sOrderProxy extended sOrder.

Du kriegst eigentlich nie die echte s\* Klasse, da diese immer nur als Proxy übergeben werden. Sonst funktionieren ja die Hooks nicht 🙂

---

<div class="post-metadata">

### Author: ![sebbo](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@sebbo](https://forum.shopware.com/u/sebbo)
#### Post date: [20. Juli 2019 um 07:57 UTC](https://forum.shopware.com/t/before-hook-funktion-der-klasse-aufrufen/60482/5 "2019-07-20T07:57:58Z")

</div>

Das verstehe ich soweit, aber wieso ist dann die method&nbsp;sRefreshBasket() unknown? Wenn sOrderProxy von sOrder erbt, müsste die Funktion doch aufrufbar sein oder?
