Gibt es Shopware 5.2 Beispiele, mit denen ich die Tutorials nachvollziehen kann?

Hallo,

ich möchte gerne den Preis mit einem einene Script berechnen. Es geht hierbei um komplexe dynamische Formeln die ich so nicht in Shopware selbst eingeben kann. Dazu habe ich angefangen ein Plugin zu schreiben und komme nun nicht weiter da mich die Doku verwirrt. Auf der Doku-Seite von Shopware sind diverse Demo-Plugins gespeichert die ich mir angeschaut habe. Mein erstes Plugin habe ich nun unter /custom/plugins/name gespeichert und die Klasse sieht in etwa so aus:

 'addCustomPrice'
  }

  public function addCustomPrice(\Enlight_Controller_EventArgs $args) {
    die('Does it works?');
  }
}

Jetzt passt das nicht zu den Demo-Daten da dort alles noch mit ‚public function install()‘ und folgendem beschrieben wird:

$this->subscribeEvent(
  'Enlight_Bootstrap_InitResource_shopware_storefront.list_product_service',
  'replaceListProductService',
  200
);

Außerdem lauten die Klassen ‚class Shopware_Plugins_Frontend_SwagRedis_Bootstrap extends Shopware_Components_Plugin_Bootstrap‘.

Meine Frage ist jetzt, wie kann ich die - vermutlich alten - Daten auf meine Klasse übernehmen? Gibt es irgendwo eine Seite auf der Steht „So war es früher, so geht es jetzt?“. Ist es denn ratsam die neue Technik mit Namespaces zu verwenden oder sollte ich eher die eben genannte langen Klassennamen unter /custom/plugins packen?

Danke & Lg
Sascha

Hallo, 

ich würde dir das hier empfehlen: https://developers.shopware.com/developers-guide/plugin-system/

Und ich würde als Plugin Direcotory: engine/Shopware/Plugins/Local verwenden, je nachdem in welche Kategorie dein Plugin fällt, den entsprechenden Folder verwenden. 

Viele Grüße,
Brian

Danke, die Seiten habe ich schon durch. Da wird mir aber nicht ganz klar, wie ich jetzt ein Event finde und registriere für einen Artikel/Produkt und wann dieses Event ausgeführt werden muss. Die entsprechende Hilfe in der Doku hilft mir gerade nicht weiter.

 

Hey,

du kannst dir zum neuen Plugin-System hier ein größeres Beispiel anschauen:
GitHub - shopwareLabs/SwagBackendOrder: plugin which allows you to create orders via backend module

Grüße,
Simon

1 Like

Danke für das Plugin. Verstehe ich das richtig, dass es nur das Backend modifiziert?

Leider verstehe ich gar nicht wie das Plugin funktioniert da ich nicht weiß warum die Dateien in dem Plugin überhaupt bzw wann diese Aufgerufen werden. 

Ich bräuchte quasi ein Plugin dass im Frontend irgendetwas an den Produktinformationen ändert - vorzugsweise den Preis - damit ich nachvollziehen kann was wo passiert.

Frage: Kann ich irgendwie auf getCalculatedPrice zugreifen in StoreFrontBundle/Struct/Product/Price.php?

Danke & Lg
Sascha

@Sioweb schrieb:

Frage: Kann ich irgendwie auf getCalculatedPrice zugreifen in StoreFrontBundle/Struct/Product/Price.php?

Die Frage würde mich auch brennend interessieren.

Einfach der frühst-mögliche Punkt an dem Shopware sich die Preise zieht. 

Ich habe eben die selbe Methodik implementiert (Preisberechnung anhand einer Rabattierungstabelle). Dazu ist es nötig den Service über einen Decorator zu überschreiben. In den neuen Service kannst Du dann Deine Logik implementieren.

Verwende dazu den von [@Simon Bäumer](http://forum.shopware.com/profile/18288/Simon Bäumer „Simon Bäumer“)‍ geposteten Link. Weiters sollte das Plugin durchaus unter /custom/plugins liegen, da es sich hierbei um die neue Verzeichnisstruktur von 5.2 handelt.

Mein Beispiel kann ich leider nicht posten, da ich nicht am Rechner bin… Kann es aber vielleicht später auf Github als Demo veröffentlichen.

So, ich habe nun Zeit gefunde ein Beispiel-Plugin auf Github zu publizieren - viel Spass damit:
https://github.com/synonymous1984/SynonymousPriceCalculator

3 Likes

Danke dafür. Ich hab dein Plugin installiert um es zu testen.

Kann es sein das decorateService nie ausgeführt wird? Oder bekomme ich das nur nicht mit. Ich hab an der Stelle mal die(‚Test‘); in die Methode geschrieben, aber da passiert nichts.

Der Subscriber verwirrt mich auch noch ein wenig, ist der ein aktiver Teil des Plugins?

Danke und Lg
Sascha

Ja, ich habe das Beispiel “from Scratch” gebaut - bin gerade auf Urlaub und habe kein dev-system. Die service.xml in /resources felt noch, die den Service beschreibt. Ich werde das Plugin in Kürze überarbeiten…

So, jetzt ist der services.xml Fix von Michael aufgenommen - Beispiel siehe hier (aber keine Gewähr mangels Testsystem). Es sollte jedenfalls als Ansatz reichen um das Berechnen der Preise zu ermöglichen:

https://github.com/synonymous1984/SynonymousPriceCalculator

Viel Spass damit…