Fehlermeldung beim Checkout - Syntax Error in template

Hallo shopware-gemeinde, Wenn ich auf Bestellung Absenden gehe … erscheint die Fehlermeldung Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Syntax Error in template „string:“ on line 48 " {if additional.payment.name == \"debit\"} " - Unexpected "\", expected one of: "{" , "" , „identifier“ , LDELIF , LDELFOR , LDELFOREACH , „closing tag“ , INTEGER , „+“ , „-“ , „(“ , „(!,not)“ , TYPECAST , HEX , „.“ , SINGLEQUOTESTRING , „#“ , „[“ , „“" in Vendor/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 404 Stack trace: [code]#0 Vendor/Smarty/libs/sysplugins/smarty_internal_templateparser.php(2699): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 Vendor/Smarty/libs/sysplugins/smarty_internal_templateparser.php(2764): Smarty_Internal_Templateparser->yy_syntax_error(10, ‚‘) #2 Vendor/Smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php(51): Smarty_Internal_Templateparser->doParse(10, ‚‘) #3 Vendor/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php(83): Smarty_Internal_SmartyTemplateCompiler->doCompile(’

compileTemplate(Object(Enlight_Template_Template)) #5 Vendor/Smarty/libs/sysplugins/smarty_internal_template.php(426): Smarty_Internal_Template->compileTemplateSource() #6 Enlight/Template/Template.php(46): Smarty_Internal_Template->renderTemplate() #7 Vendor/Smarty/libs/sysplugins/smarty_internal_template.php(568): Enlight_Template_Template->renderTemplate() #8 Vendor/Smarty/libs/Smarty.class.php(328): Smarty_Internal_Template->getRenderedTemplate() #9 engine/core/class/sOrder.php(915): Smarty->fetch('string:
sendMail(Array) #11 Shopware/Controllers/Frontend/Checkout.php(400): sOrder->sSaveOrder() #12 Shopware/Controllers/Frontend/Checkout.php(126): Shopware_Controllers_Frontend_Checkout->saveOrder() #13 Enlight/Controller/Action.php(55): Shopware_Controllers_Frontend_Checkout->finishAction() #14 Enlight/Controller/Dispatcher/DispatcherDefault.php(329): Enlight_Controller_Action->dispatch(‚finishAction‘) #15 Enlight/Controller/Front.php(88): Enlight_Controller_Dispatcher_DispatcherDefault->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #16 Shopware/Bootstrap.php(21): Enlight_Controller_Front->dispatch() #17 Enlight/Application.php(69): Shopware_Bootstrap->run() #18 shopware.php(6): Enlight_Application->run() #19 {main} [/code] Kann mir bitte jemand sagen was genau das Problem ist - bzw wie es zu beheben ist ? Besten Dank !

[quote=“emotion4fun”]Kann mir bitte jemand sagen was genau das Problem ist - bzw wie es zu beheben ist ?[/quote] In der gespeicherten Mailvorlage für “sOrder” ist ein Fehler (der ‘’ vor dem "). Jetzt kann man sich streiten, wer der “Schuldige” an dem Problem ist: Der Smarty-Compiler, der diesen üblichen “Escape”-Backslash als Fehler interpretiert (eigentlich mein Favorit)… Oder die Shopsoftware, die bei diesem aus der Datenbank gelesenen Text kein “stripslashes()” anwendet… (Oder evtl. auch ein PHP-Konfigurationsproblem (“magic_quotes” auf “on”)???) [color=#FF0000]@Shopware AG[/color] Bei dieser Fehlermeldung fehlt eine ganz wichtige Information: welcher Textbaustein den Fehler verursacht… Der Text wird ja mit $this-\>sSYSTEM-\>sCONFIG['sTemplates']["sORDER"] aus der DB gelesen, und mit $mail-\>Body = $this-\>sSYSTEM-\>sSMARTY-\>fetch("string:".$template["contentHTML"]); an Smarty zum Rendern übergeben… Irgendwie müsste in der Fehlermeldung doch mitgeteilt werden, dass der Fehler im Order-Mail-Template auftritt… Ich kann mir zwar aus dem Stack-Trace die Ursache ermitteln, aber der normale Shopbetreiber ist damit sicher überfordert. :wtf:

1 „Gefällt mir“

Hallo nochmal … generell ist das richtig . So steht es bei ersten mal da : {if $additional.payment.name == “debit”} dann ändere ich das auf {if $additional.payment.name == “\debit”} Nach dem speichern und erneuten aufruf der Vorlage steht dann da aber “\debit\”} grummel … Wo liegt nun wieder der Fehler ?

[quote=“emotion4fun”]Hallo nochmal … generell ist das richtig . So steht es bei ersten mal da : {if $additional.payment.name == “debit”} dann ändere ich das auf {if $additional.payment.name == “\debit”} Nach dem speichern und erneuten aufruf der Vorlage steht dann da aber “\debit\”} grummel … Wo liegt nun wieder der Fehler ?[/quote] Oder evtl. auch ein PHP-Konfigurationsproblem (“magic_quotes” auf “on”)

Hallo, hatten fast das gleiche Problem. Bei uns lag es daran das die magic quotes auf „on“ standen. LINK

Hallo erstmal , ja es waren die magic_quotes Einstellungen. Einstellung geändert - geht alles ! Danke für die Hilfe !

Hallo, klink mich hier mal mit ein, da dieses Problem auch bei mir plötzlich auftaucht. Das Komische ist, ich hatte zuvor unzählige Testbestellungen erfolgreich ausgelöst und da trat kein Fehler auf. Als ich aber merkte, das keine Bestell-E-Mails rein kamen, habe ich lediglich die E-Mail-Adresse geändert. Im System selber und in den E-Mail-Vorlagen. Seitdem tritt dieses Fehlermeldung auch bei mir auf. Sonst habe ich nix verändert. Aufgefallen ist mir das jetzt 4 Backslashes plötzlich in der Fehlermeldung stehen. Syntax Error in template "string:" on line 48 " {if $additional.payment.name == \\\\\\\"debit\\\\\\\"} " - Vielleicht hat jemand eine Idee wie das Problem zu lösne ist? Danke. Gruß Frank

Die Lösung steht doch oben, magic_quotes auf off stellen.