Scroll Top

Shopware Fehler „Unknown Tag s“ – Shopware 5.3.x

Seit unseren Updates auf die neuesten Showare Versionen 5.3.x (Insbesondere 5.3.3) tauchen immer wieder Probleme mit folgender Fehlermeldung auf:

SmartyCompilerException' with message 'Syntax Error in template "/var/www/vhosts/xxx/httpdocs/themes/Frontend/Bare/frontend/index/header.tpl"  on line 9 "<meta name="author" content="{s name='IndexMetaAuthor'}{/s}" />" unknown tag "s"' in /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657\nStack trace:\n#0 /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "s"', 9)\n#1 /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag('s', Array)\n#2 /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_t...\n',

Zusammengefasst wird von Shopware ein Fehler geworfen, wenn ein Textbaustein gerendert werden soll. In meinen Fällen immer der erste Textbaustein im Template.

Der Fehler „Unkwown Tag s“ taucht nur sporadisch auf

Im Shopware Forum wird schon eifrig diskutiert und Fehlersuche betrieben. Auch Shopware selbst hat sich schon in die Diskussion eingeklingt, allerdings stochert man auch hier noch im Dunkeln.

Es gibt aktuell mehrere Hinweise auf die Entstehung dieses Fehlers:

  • Paypal
  • Paypal Plus
  • Paymill
  • sowie weitere Plugins, die seit längerem kein Update mehr erhalten haben

Ich selbst konnte den Fehler in meinen Shops auf folgende Besonderheiten eingrenzen

  • Kunden, die NICHT zur Kundengruppe EK gehören.
  • Kunden, die NICHT Deutschland als Rechnungsadresse haben

Beides deutet für mich auf ein Problem mit den Zahlungsanbietern / deren Plugins hin. Allerdings ist in einem Shop kein Paypal Plus installiert – in einem anderen allerdings schon (was sich mit Meldungen im Forum deckt). In dem Shop, in dem kein Paypal Plus installiert ist, war Paymill (von Paymill direkt, nicht vom Fremdanbieter) installiert. Das hatte tatsächlich keine Unterstützung für Shopware > als 5.1.5 angegeben.

Das Plugin habe ich heute deinstalliert und konnte den Fehler seitdem nicht mehr reproduzieren.
Das tückische an dem Fehler ist allerdings auch, dass er tagelang nicht auftritt und dann den Shopware Shop wieder komplett unbrauchbar macht.

Aktuelle Lösungsmöglichkeiten

Leider gibt es noch kein Heilmittel für dieses Problem. Zwar gibt es schon ein vielbeachtetes Ticket im Bug-Tracker, allerdings gibt es dafür noch keine Lösung.

Ich selbst kann den Fehler entfernen, indem ich den Cache leere. Das berichten auch weitere User aus dem Shopware Forum.
Ein vielversprechender Lösungsansatz ist aktuell, den Cache per CronJob alle paar Stunden zu leeren. Das sichert zumindest, dass der Fehler, wenn er denn auftritt, automatisiert wieder zu entfernen. Das verhindert zumindest, dass der Fehler dauerhaft auftritt, wenn man es selbst nicht merkt.

Eine Möglichkeit, den Fehler zu umgehen, ist es, die …engine/Library/Smarty/sysplugins/smarty_security.php so umzubauen, dass der Fehler nicht geworfen wird.

Dazu muss in der funktion isTrustedResourceDir einfach ein „return true;“ direkt am Anfang der funktion gesetzt werden.
Die Datei überschreibt sich allerdings, bei einem Update!

Diesen Beitrag werde ich ständig aktualisieren, wenn sich im Shopware Forum neue Erkenntnisse dazu ergeben.

Update 08. November 2017

Mittlerweile hat sich in der Hinsicht ein wenig getan.

Still und Heimlich hat Shopware mittlerweile fast alle Plugins, die scheinbar die Übeltäter waren, im Shopware Store aktualisiert.
Vordergründig handelte es sich wohl um:

  • Paypal / Paypal Plus
  • Shopware Business Essentials
  • UstID Prüfung (SwagVatIdValidation)
  • Google Analytics

All diese Plugins sind jetzt auf aktuellem Stand und entsprechend umgebaut, sodass dieser Fehler nicht mehr auftreten sollte.

Hinterlasse einen Kommentar

Sie müssen eingeloggt sein , um einen Kommentar schreiben zu können.