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
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)?
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
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: