# calculateShippingCostsAction per Event überschreiben?

**URL:** <https://forum.shopware.com/t/calculateshippingcostsaction-per-event-uberschreiben/6194>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [15. Februar 2012 um 12:16 UTC](https://forum.shopware.com/t/calculateshippingcostsaction-per-event-uberschreiben/6194 "2012-02-15T12:16:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![addorange](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/addorange/32/77_2.png) [@addorange](https://forum.shopware.com/u/addorange)\
**Post date:** [15. Februar 2012 um 12:16 UTC](https://forum.shopware.com/t/calculateshippingcostsaction-per-event-uberschreiben/6194/1 "2012-02-15T12:16:12Z")

</div>

Hallo zusammen, sicher gibt es dazu schon zig Einträge im Forum, aber richtig verstanden habe ich es leider immer noch nicht. Vielleicht kann mir jemand den entscheidenden Hinweis geben. Ich habe beim Versand die Anforderung, dass der Kunde für die gesamte Bestellung ein Lieferdatum auswählen darf und ggfs. bei Abholung auch ein entsprechendes Ladengeschäft (anbei Screenshot). Um nun die dort gesetzten Werte zur weiteren Verwendung in die Session zu speichern (-\> oder speichert man das besser schon in die Datenbank? Wenn ja, wo?), möchte ich gerne im Controller Checkout.php die Action calculateShippingCosts überschreiben bzw. ergänzen. Bei meinen bisherigen Versuchen ohne Ergebnis hänge ich hier: ` class Shopware\_Plugins\_Frontend\_ExtendShippingCosts\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap { public function install() { $eventCalculateShippingCosts = $this-\>createEvent( 'Enlight\_Controller\_Action\_Frontend\_Checkout', 'onCalculateShippingCosts' ); $this-\>subscribeEvent($eventCalculateShippingCosts); return true; } public static function onCalculateShippingCosts(Enlight\_Event\_EventArgs $args) { $args-\>setProcessed(true); $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if ($request-\>getPost('sCountry')) { $this-\>session['sCountry'] = (int) $request-\>getPost('sCountry'); } if ($request-\>getPost('sPayment')) { $this-\>session['sPaymentID'] = (int) $request-\>getPost('sPayment'); } if ($request-\>getPost('sDispatch')) { $this-\>session['sDispatch'] = (int) $request-\>getPost('sDispatch'); } if ($request-\>getPost('sDeliverySelectWhere')) { $this-\>session['sDeliverySelectWhere'] = (int) $request-\>getPost('sDeliverySelectWhere'); } $this-\>forward($this-\>Request()-\>getParam('sTargetAction', 'index')); } ` Hat vielleicht jemand einen Tipp für mich? Das wäre echt Klasse, da ich auf dem Schlauch stehe, was da noch fehlen sollte. Viele Grüße

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [15. Februar 2012 um 15:36 UTC](https://forum.shopware.com/t/calculateshippingcostsaction-per-event-uberschreiben/6194/2 "2012-02-15T15:36:10Z")

</div>

Schon mal statt ‘Enlight\_Controller\_Action\_Frontend\_Checkout’ mit ‘Enlight\_Controller\_Action\_Frontend\_Checkout\_Index’ probiert (Ggf. ‘Index’ in die gewünschte Action des Controller ändern)?

---

<div class="post-metadata">

**Author:** ![addorange](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/addorange/32/77_2.png) [@addorange](https://forum.shopware.com/u/addorange)\
**Post date:** [16. Februar 2012 um 11:36 UTC](https://forum.shopware.com/t/calculateshippingcostsaction-per-event-uberschreiben/6194/3 "2012-02-16T11:36:39Z")

</div>

Hallo, das habe ich probiert, aber leider hat das keine Verbesserung gebracht. Wahrscheinlich mache ich da noch grundsätzlich was falsch, fragt sich nur was? Grüße

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [16. Februar 2012 um 11:58 UTC](https://forum.shopware.com/t/calculateshippingcostsaction-per-event-uberschreiben/6194/4 "2012-02-16T11:58:07Z")

</div>

Hallo, landest Du denn auch in “onCalculateShippingCosts” und falls ja, warum muss mit $args-\>setProcessed(true); und $this-\>forward() die Standard-Verarbeitung abgebrochen werden? Auch würde ich prüfen, ob Dir $this-\>session wirklich die echte Session zurückleifert. Viel Erfolg :thumbup:
