Custom Products V2 : Preisstaffeln für Optionen

Das Plugin Custom Products V2 wäre interessant für uns, allerdings bräuchten wir mengenabhängige Staffelpreise für die Optionen und

nicht nur einen einzelnen Preis. Allerdings sieht der Source-Code so aus, als wäre er nicht sonderlich für Erweiterungen programmiert worden,

zumindest werden praktisch keine Events generiert, die man für Erweiterungen benutzen könnte.

Oder täusche ich mich da. Welche Möglichkeiten gibt es sonst das Plugin dahingehend abzuändern, daß es mit Preisstaffeln arbeitet?

Für CustomProducts haben wir sogar ein paar Beispiele in der Doku, wie man das erweitern kann: Extend an existing plugin via another plugin

 

Stimmt, hatte ich gar nicht gesehen, vielen Dank.

Allerdings bin ich gerade etwas erstaunt darüber, wie die Klasse

 SwagCustomProducts\Subscriber\Basket

programmiert ist. Die subscribed sich auf das

 Shopware\_Modules\_Basket\_AddArticle\_Start Event und gibt true zurück, überschreibt damit die Methode 

 sAddArticle der Klasse sBasket komplett. Finde ich eine sehr unglückliche Implementierung, kann ja sein, daß das nicht anders zu machen war, aber alle Events die normalerweise später in sAddArticle ausgelöst werden, sind damit hinfällig und alle Plugins, die sich darauf subscribed haben, werden nicht mehr aufgerufen. Abgesehen natürlich auch von der Code-Duplizierung bzgl. dem insert in s\_order\_basket und s\_order\_basket\_attributes.

Würde mich interessieren, wie das die Shopware-Core-Entwickler so sehen?

Normalerweise sollte man bei Plugins ja vermeiden Methoden von Core-Klassen zu überschreiben oder sehe ich das falsch?

Weiß ja nicht, wie das die anderen Entwickler sehen, aber wenn man dieses Plugin benutzt, kann man sich z.B. nicht mehr auf das folgende Event

 Shopware\_Modules\_Basket\_AddArticle\_Added 

registrieren, noch macht es Sinn, den folgenden Hook zu benutzen:

 'sBasket::sAddArticle::after'

da das Plugin hier false zurückgibt, normalerweise würde man die insert_id der s_order_basket zurückbekommen.

 

Wenn da ein Problem besteht, solltest du ein Ticket aufmachen, damit es geändert wird: issues.shopware.com