Folgt man diesem Guide und manipuliert die Preise von LineItems im Warenkorb, wird bei prozentualen Rabattaktionen trotzdem stets der reguläre Preis des Artikels genommen, nicht der manipulierte.
Der Anwendungsfall ist konkret dieser: Im Shop werden Produkte nach Maß verkauft. Die bei den Produkten hinterlegten Preise entsprechen einem Quadratmeter. Auf der Produktdetailseite können in einem Konfigurator Höhe und Breite angegeben und (tw. kostenpflichtige) Optionen dazugebucht werden. Mit dem oben verlinkten Code wird anschließend aus diesen Angaben der finale Preis berechnet. So weit, so gut. Problematisch wird es bei dem 10% Eröffnungsrabatt. Dieser nimmt immer den Quadratmeterpreis und nicht den manipulierten.
Wir haben das jetzt mit einem benutzerdefinierten Rabatt gelöst, das ist aber suboptimal, da der Seitenbetreiber den Rabattzeitraum sowie die Prozente nicht mehr über das Shopware-Backend setzen kann bzw. hierfür kompliziert noch eine gesonderte Backend-Seite erstellt werden müsste.
Hat jemand vielleicht eine Idee, wie man das eleganter lösen könnte, sodass prozentuale Rabatte den im CartProcessor mit $lineItem->setPrice() gesetzten Preis verwenden?