Register a custom rule via plugin

Ich möchte eine neue Regel für das Feld “Customer Tag” per Plugin für Admin definieren.

Ich habe mir alles nach den How-To https://docs.shopware.com/en/shopware-platform-dev-en/how-to/custom-rule  gemacht => das Plugin wurde installiert, aber es gibt im Admin unter “Rule Builder => Bedingungen durchsuchen” keine meine Bedingung.

Dann habe ich das Beispielplugin https://github.com/shopware/swag-docs-custom-rule installiert => und es funktioniert alles wunderbar. ABER das Plugin beinhaltet den File https://github.com/shopware/swag-docs-custom-rule/blob/master/src/Resources/public/administration/js/custom-rule.js, was aus meiner Sicht generisch ist. Es gibt keine Anleitung, wie man ihn erzeugt. Dieser File beinhaltet alles: Logic, Template, Scripts. Wenn ich den File umbenenne, dann funktioniert das Beispiel von Swag auch nicht mehr.

Bitte um jede Hilfe.

du musst in der Console ./psh.phar adminstration:build ausführen, danach wird die js im public Verzeichnis neu erzeugt.

Du kannst im Rule Builder die Lunar Eclipse Rule ausführen und auch Ja / Nein als Bedingung auswählen? Spannend.  Ich habe die custom rule installiert und bekomme mit der 6.1 sowie 6.2 einen JS Fehler.

 

1 „Gefällt mir“

@oerkel schrieb:

… Ich habe die custom rule installiert und bekomme mit der 6.1 sowie 6.2 einen JS Fehler.

Ich bekomme auch den JS-Fehler. Da ich aber die Rule für Customer Tag haben möchte, habe ich die bestehende Rule für LineItemTag angeschaut und QuellCode zum testen übernommen - und es funktioniert alles einwandrei in Admin

Falls jemand anderes auch gerade das Problem hat, aktuell ist da ein Fehler in dem How-To:

Der Inhalt der main.js muss sein:

import './decorator/rule-condition-service-decoration';

nicht

import './src/decorator/rule-condition-service-decoration';

PS: Sorry fürs das Wiederaufleben von diesem toten Thread :/ 

WARNING in /var/www/html/custom/plugins/SwagRule/src/Resources/app/administration/src/decorator/rule-condition-service-decoration.js 1:88-99
    "export 'Application' was not found in 'src/core/shopware'
    
    WARNING in /var/www/html/custom/plugins/SwagRule/src/Resources/app/administration/src/core/component/swag-lunar-eclipse/index.js 1:1072-1081
    "export 'Component' was not found in 'src/core/shopware'
    
    ERROR in 
    /var/www/html/custom/plugins/SwagRule/src/Resources/app/administration/src/core/component/swag-lunar-eclipse/index.js
      1:27  error  You can't use imports directly from the Shopware Core via "src/core/shopware". Use the global Shopware object directly instead (https://developer.shopware.com/docs/guides/plugins/plugins/administration/the-shopware-object)  plugin-rules/no-src-imports
    
    /var/www/html/custom/plugins/SwagRule/src/Resources/app/administration/src/decorator/rule-condition-service-decoration.js
      1:29  error  You can't use imports directly from the Shopware Core via "src/core/shopware". Use the global Shopware object directly instead (https://developer.shopware.com/docs/guides/plugins/plugins/administration/the-shopware-object)  plugin-rules/no-src-imports
    
    ✖ 2 problems (2 errors, 0 warnings)

Momentan scheint das Plugin aber so auch wieder nicht mehr zu funktionieren …

Die Fehlermeldung als auch die Lösung steht in dem von dir kopierten Code.

Ja, wäre nur gut wenn das in der Dokumentation geändert werden würde. Wir wollen doch alle nachhaltig arbeiten und nicht jeden erneut debuggen lassen?

const { Component } = Shopware;
const Application = Shopware.Application;

statt

import { Component } from ‚src/core/shopware‘;
import Application from ‚src/core/shopware‘;

:wink:

PS: in github dauert es ja ab und an etwas länger bis Änderungen zugelassen werden, deshalb doku hier im Thread der bei google als Treffer fürs Problem gelistet ist.