Möchte man eine Template (.tpl) Datei in einem eigenen Plugin überschreiben, muss die Variable $injectBeforePlugins in der Theme.php auf true gestellt sein.
protected $injectBeforePlugins = true; bedeutet, dass zuerst alle Plugins nach dem Dokumententemplate durchsucht werden. Sobald die Suche erfolgreich war, wird sie abgebrochen und das gefundene Template gerendert.
Möchte man von einem Plugin die Template (.tpl) Datei in seinem Theme überschreiben, muss die Variable $injectBeforePlugins in der Theme.php auf false gestellt sein.
protected $injectBeforePlugins = false; bedeutet, dass zunächst das Dokumenten-Theme nach dem Template durchsucht wird. Anschließend werden alle Plugins durchsucht und bei erfolgreicher Suche wird das zuerst gefundene Template verwendet.
Möchte man beides tun, funktioniert das, indem man, von seinem eigenen Theme (mit protected $injectBeforePlugins = true), ein ChildTheme (mit protected $injectBeforePlugins = false) erstellt. In dem eigenen Theme können die Tpl dateien mit Plugins überschrieben werden. Will man Plugins Tpl's überschreiben, stellt man diese in das Child Theme.
Z.B.
Plugin Tpl:
engine/Shopware/Plugins/Default/Core/PaymentMethods/Views/frontend/plugins/sepa/email.tpl
Override in der Child Theme Tpl:
themes/Frontend/MyTheme_Child/frontend/plugins/sepa/email.tpl