Sofortüberweisung Plugin - Smarty Fehler im Warenkorb

Hallo! Wir haben zur Zeit ein kleines Problem mit der Integration von Sofortüberweisung. Nachdem wir das Plugin (Version 2.0.4, nicht das mitgelieferte) installiert und aktiviert haben, funktionierte auf einmal der Warenkorb nicht mehr. Folgende Fehlermeldung wird und nun präsentiert: Unkown resource type 'frontend\checkout\cart.tpl|D' in Smarty\sysplugins\smarty\_resource.php on line 448 Stack trace: #0 Smarty\sysplugins\smarty\_resource.php(518): Smarty\_Resource::load(Object(Enlight\_Template\_Manager), 'frontend\checko...') #1 Smarty\sysplugins\smarty\_internal\_template.php(636): Smarty\_Resource::source(Object(Enlight\_Template\_Default)) #2 Smarty\sysplugins\smarty\_internal\_templatebase.php(117): Smarty\_Internal\_Template-\>\_\_get('source') #3 Enlight\View\Default.php(272): Smarty\_Internal\_TemplateBase-\>fetch() #4 Enlight\Controller\Plugins\ViewRenderer\Bootstrap.php(212): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default)) #5 Enlight\Controller\Plugins\ViewRenderer\Bootstrap.php(238): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default)) #6 Enlight\Controller\Plugins\ViewRenderer\Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #7 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Event\_EventArgs)) #8 Enlight\Event\Handler\Default.php(91): call\_user\_func(Array, Object(Enlight\_Event\_EventArgs)) #9 Enlight\Event\EventManager.php(156): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Event\_EventArgs)) #10 Enlight\Controller\Action.php(147): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Array) #11 Enlight\Controller\Dispatcher\Default.php(521): Enlight\_Controller\_Action-\>dispatch('cartAction') #12 Enlight\Controller\Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #13 Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #14 Enlight\Application.php(192): Shopware\_Bootstrap-\>run() #15 shopware.php(74): Enlight\_Application-\>run() #16 {main} Nach Deaktivierung des Plugins läuft der Shop wieder normal, jedoch würden wir sehr gerne Sofortüberweisung integrieren. Wir arbeiten zur Zeit mit der Version 4.0.4. Ein Update ist geplant, es wäre aber schön, wenn wir Sofortüberweisung schon vorher integriert bekämen :slight_smile: Vielen Dank im Voraus! MfG

[quote=“soforteinloesen”] Wir arbeiten zur Zeit mit der Version 4.0.4. Ein Update ist geplant, es wäre aber schön, wenn wir Sofortüberweisung schon vorher integriert bekämen :slight_smile: Vielen Dank im Voraus! MfG[/quote] Aktuelle Version: 4.2.3 - der Fehler besteht immernoch :confused: Hat denn niemand eine Idee, was hier schiefläuft?

Hi, das hängt so auch nicht mit der Shopware Version zusammen. Hast du das Plugin deinstalliert und einmal gelöscht? Dann mal eine saubere Neuinstallation des Plugins durchgeführt? Sebastian

Hi, danke für die Antwort. Ich habe gerade mal das Plugin komplett über den Pluginmanager entfernt und neu installiert. Ergebnis: gleicher Fehler :frowning:

Hallo, ich hatte in den letzten Tagen bei einem Supportfall ein ähnliches Problem. Hier fehlte beim Kunden im Pluginordner eine Templatedatei die jedoch im Installationspaket enthalten war. Prüfe am besten mal ob bei dir unter /engine/shopware/plugins/~/Frontend/SofagPayment/views/frontend/register eine Datei payment_fieldset.tpl vorhanden ist. Sollte die nicht vorhanden sein, lade das Plugin von Sofort einmal manuell über den Store herunter und schau in das Archiv ob sie dort vorhanden ist und kopiere sie ggf. über FTP in den Zielordner. Und vergleiche auch mal generell den Inhalt des Ornders. Eventuell hilft dir das :wink: Grüße Moritz

Also ich glaube ich habe die Stelle gefunden, an welcher der Fehler entsteht. Beim laden der Templates wird in der Datei smarty_ressource.php die Funktion parseResourceName aufgerufen. protected static function parseResourceName($resource\_name, $default\_resource, &$name, &$type) { $parts = explode(':', $resource\_name, 2); if (!isset($parts[1]) || !isset($parts[0][1])) { // no resource given, use default // or single character before the colon is not a resource type, but part of the filepath $type = $default\_resource; $name = $resource\_name; } else { $type = $parts[0]; $name = $parts[1]; } } Diese teilt eine gegebene Ressource anhand eines Doppelpunktes. Anscheinend werden aber Ressourcen Pipegetrennt übergeben und dabei scheint eine der Ressourcen eine absolute Pfadangabe zu haben, das würde zumindest das einzelne “D” am Ende von frontend\checkout\cart.tpl|frontend/plugins/compare/index.tpl|frontend/plugins/seo/index.tpl|frontend/plugins/google/index.tpl|frontend/plugins/swag\_background\_image/index.tpl|D erklären. Ich habe mal zum Test im Smartycode an der Stelle, welche ich oben genannt habe eine Exception beim Laden des Warenkorbs platziert und siehe da: frontend\checkout\cart.tpl|frontend/plugins/compare/index.tpl|frontend/plugins/seo/index.tpl|frontend/plugins/google/index.tpl|frontend/plugins/swag\_background\_image/index.tpl|D:\~\engine\Shopware\Plugins\Community\Frontend\SofagPayment\Views/frontend/register/payment\_fieldset.tpl wird als Parameter “$resource_name” an die Funktion “parseResourceName” übergeben. Dadurch teilt die Funktion am Ende die Ressource falsch und hier entsteht der Fehler. Hilft das irgendwie weiter? :slight_smile: UPDATE: Ich habe jetzt Übergangsweise eine kleine Änderung am Smartycode vorgenommen: protected static function parseResourceName($resource\_name, $default\_resource, &$name, &$type) { $parts = explode(':', $resource\_name, 2); if (!isset($parts[1]) || !isset($parts[0][1])) { // no resource given, use default // or single character before the colon is not a resource type, but part of the filepath $type = $default\_resource; $name = $resource\_name; } else { $type = $parts[0]; $name = $parts[1]; } if (strpos($resource\_name, 'D:\\~\\Shopware')) { $type = $default\_resource; $name = $resource\_name; } } und das scheint erstmal den Shop wieder zum laufen zu bringen. Inwiefern das Auswirkungen auf den restlichen Shop hat, muss ich erstmal noch testen und das ist natürlich eine extreme “Quick and dirty” Lösung, aber wenn das am Ende Sofortüberweisung zum Laufen bringt, bin ich erstmal glücklich. Ist eben nur die Frage, ob es jetzt am Plugin, Smarty oder an Shopware liegt :smiley: