SW_Modules_Order_SaveOrder_ProcessDetails => sAmount ändern

Hallo zusammen, ich bin gerade dabei ein Plugin zu programmieren, welches Artikelbeträge mit drei Kommastellen erlaubt. Dies ist z. B. bei Kleinteilen wie Schrauben o. ä. interessant. Jetzt bin ich schon ziemlich weit gekommen. Der Warenkorb etc zeigt die richtigen Beträge an. Nun geht es darum, bevor der Warenkorb endgültig in s_orders gespeichert wird, auch dort die Werte der einzelnen Artikel anzupassen. Beispiel: Wenn eine Schraube 0,085 € kostet, dann steht bei 100 Stück in sAmount = 9.00 € => das will ich ändern. Nun habe ich das Event Shopware_Modules_Order_SaveOrder_ProcessDetails dafür gefunden. (http://community.shopware.com/Shopware- … 5_866.html) Es scheint auch an der richtigen Stelle zu greifen. $args->getSubject()->sAmount; wäre z. B. das, was ich suche. Ich kann hier schön den Wert auslesen, aber ich benötige genau das Gegenteil - ich würde gerne den richtigen Wert dort reinschreiben. assign() geht ja nicht, da es ja kein View()-Objekt ist. Hat jemand eine Idee oder einen Tipp, wie ich dennnoch $args->getSubject()->sAmount ändern kann? Vielen Dank für eure Hilfe! Viele Grüße, Tobias

Hi, das ist nur ein „notify“-Event, darüber kannst du sAmount so direkt nicht modifizieren. Über „getSubject()“ würde es gehen - ist aber für deinen Fall zu spät. Theoretisch kannst du dir einen Before-Hook auf sOrder::sSaveOrder::before registrieren - über $args->getSubject() kannst du im Callback auf viele Properties der sOrder-Klasse zugreifen - bspw. auf „sBasketContent“ oder „sAmount“. Wäre jetzt auf die Schnelle eine Idee, vll. geht das an anderer Stelle noch zentraler / schöner. Daniel

1 Like

Hallo Daniel, super vielen Dank! Das ist genau das, was ich gesucht habe. Es funktioniert auch einwandfrei. You made my day… Tobias