Tipps & Tricks
Tipps & Tricks für JTL, Onlineshops, Templates & Datenbanken
Hier finden Sie kurze, praxisnahe Lösungen für typische Herausforderungen aus dem Alltag – unter anderem zu JTL-Shop, SEO/GEO, Performance sowie zum Umgang mit MS-SQL (JTL-Wawi) und Shop-Datenbanken (MySQL/MariaDB). Ergänzt wird dies durch weitere technische und prozessbezogene Tipps aus dem Online-Business.
Wichtiger Hinweis
Die Anwendung der gezeigten Tipps & Tricks erfolgt auf eigene Gefahr. Bitte immer eine Sicherung der Shop-Dateien/Datenbank durchführen.
Kategorie: Allgemein
JTL Issue Tracker richtig nutzen
Schwierigkeitsgrad:
Der JTL-IssueTracker ist die zentrale Anlaufstelle, um Fehler, Probleme oder Funktionswünsche rund um JTL-Wawi, JTL-Shop und weitere JTL-Produkte transparent nachzuvollziehen.
Hier können Sie bestehende Tickets einsehen, deren Status verfolgen und prüfen, ob ein bekanntes Problem bereits gemeldet oder sogar schon behoben wurde.
Besonders hilfreich ist der JTL-IssueTracker vor Support-Anfragen oder Updates, da er schnell zeigt, ob es sich um ein bekanntes Verhalten oder einen neuen Fehler handelt.
Im JTL-IssueTracker sind alle Meldungen öffentlich einsehbar und mit zusätzlichen Informationen wie Version, Priorität und Bearbeitungsstatus versehen. So erkennen Sie auf einen Blick, ob ein Problem bereits in Arbeit ist oder in einer kommenden Version behoben wird.
Eigene Tickets können nur mit einem JTL-Kundenkonto erstellt werden. Vor dem Anlegen eines neuen Issues empfiehlt es sich jedoch immer, die bestehende Ticketliste sorgfältig zu durchsuchen, um doppelte Meldungen zu vermeiden.
Der regelmäßige Blick in den JTL-IssueTracker hilft dabei, Fehlersuche, Update-Planung und Support-Kommunikation deutlich effizienter zu gestalten – insbesondere bei komplexeren JTL-Wawi- oder JTL-Shop-Installationen.
Kategorie: JTL-Shop
Kategorieattribute abfragen
Schwierigkeitsgrad:
Wenn Sie in Ihrem Onlineshop bestimmte Inhalte abhängig von der aktuellen Kategorie ausgeben möchten, sind Kategorieattribute eine sehr saubere Lösung. Sie können damit z. B. zusätzliche Hinweise, kurze Texte oder Steuerwerte direkt an der Kategorie pflegen – und im Template gezielt auslesen.
Der Vorteil: Die Logik bleibt im Template schlank und Sie vermeiden harte Texte im Code. So lassen sich Inhalte zentral pflegen und kontrolliert ausgeben, ohne dass Sie an mehreren Stellen im Template Änderungen nachziehen müssen.
/*** Kategorieattribute abfragen ***/
{if $oNavigationsinfo->getCategory() !== null && $oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('Attribut_Name') != ""}
{$oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('Attribut_Name')}
{/if}
In der Abfrage werden zwei Dinge sauber abgesichert: Erstens wird geprüft, ob überhaupt eine Kategorie vorhanden ist. Zweitens wird der Attributwert nur dann ausgegeben, wenn er nicht leer ist. Dadurch verhindern Sie leere Platzhalter im Frontend und halten die Ausgabe im Onlineshop konsistent.
Achten Sie darauf, den Platzhalter Attribut_Name exakt durch den technischen Namen Ihres Kategorieattributes zu ersetzen. So können Sie pro Kategorie gezielt Inhalte steuern – beispielsweise Zusatztexte im Kopfbereich, Hinweise für Filter-/Landingpages oder interne Steuerwerte für Template-Logik.
Kategorieattribute abfragen
Schwierigkeitsgrad:
Wenn Sie in Ihrem Onlineshop bestimmte Inhalte abhängig von der aktuellen Kategorie ausgeben möchten, sind Kategorieattribute eine sehr saubere Lösung. Sie können damit z. B. zusätzliche Hinweise, kurze Texte oder Steuerwerte direkt an der Kategorie pflegen – und im Template gezielt auslesen.
Der Vorteil: Die Logik bleibt im Template schlank und Sie vermeiden harte Texte im Code. So lassen sich Inhalte zentral pflegen und kontrolliert ausgeben, ohne dass Sie an mehreren Stellen im Template Änderungen nachziehen müssen.
/*** Kategorieattribute abfragen ***/
{if $oNavigationsinfo->getCategory() !== null && $oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('Attribut_Name') != ""}
{$oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('Attribut_Name')}
{/if}
In der Abfrage werden zwei Dinge sauber abgesichert: Erstens wird geprüft, ob überhaupt eine Kategorie vorhanden ist. Zweitens wird der Attributwert nur dann ausgegeben, wenn er nicht leer ist. Dadurch verhindern Sie leere Platzhalter im Frontend und halten die Ausgabe im Onlineshop konsistent.
Achten Sie darauf, den Platzhalter Attribut_Name exakt durch den technischen Namen Ihres Kategorieattributes zu ersetzen. So können Sie pro Kategorie gezielt Inhalte steuern – beispielsweise Zusatztexte im Kopfbereich, Hinweise für Filter-/Landingpages oder interne Steuerwerte für Template-Logik.
Merkmale abfragen
Schwierigkeitsgrad:
Wenn Sie Merkmale bzw. Eigenschaften eines Artikels im Onlineshop sauber ausgeben möchten, können Sie diese direkt über das Attribut-Array des Artikels im Template durchlaufen. Das ist besonders hilfreich, wenn Sie zusätzliche Informationen (z. B. technische Daten oder Varianten-Infos) strukturiert in einer Tabelle darstellen wollen.
Der gezeigte Block greift die vorhandenen Attribute ab und rendert diese als Tabellenzeilen. So bleibt die Ausgabe dynamisch: Sobald Sie in der Artikelpflege Merkmale ergänzen oder ändern, aktualisiert sich die Darstellung automatisch – ohne dass Sie das Template jedes Mal anfassen müssen.
/*** Merkmale abfragen ***/
{block name='productdetails-attributes-shop-attributes'}
{foreach $Artikel->Attribute as $Attribut}
<tr class="attr-custom">
<td class="h6">{$Attribut->cName}: </td>
<td class="attr-value">{$Attribut->cWert}</td>
</tr>
{/foreach}
{/block}
Wichtig ist, dass Sie die Ausgabe dort platzieren, wo sie in Ihrem Onlineshop sinnvoll ist – typischerweise im Bereich der Artikel-Details. Durch den Block-Wrapper können Sie die Ausgabe außerdem gezielt überschreiben oder erweitern, ohne die Template-Struktur unnötig zu verbiegen.
Achten Sie darauf, dass wirklich nur die Merkmale ausgegeben werden, die Sie im Frontend zeigen möchten. Falls Sie intern genutzte Attribute haben, empfiehlt sich eine zusätzliche Filterung (z. B. nach Namen oder Präfix), damit im Onlineshop keine unerwünschten Werte erscheinen.
Kategorie: JTL-Wawi
Suchen/Ersetzen in der Datenbank
Schwierigkeitsgrad: Produktive Datenbank
In der Datenbank eazybusiness eines JTL-Wawi Mandanten lässt sich sehr einfach eine Suchen/Ersetzen-Anweisung realisieren.
Auf diese Weise können Text-Ersetzungen und Text-Entfernungen sehr schnell auf eine große Anzahl an Datensätzen angewendet werden.
/*** UPDATE Query: Ersetzen/Entfernen von Teilen in der Artikelbeschreibung ***/
DECLARE @OldValue AS NVARCHAR(300);
DECLARE @NewValue AS NVARCHAR(300);
SET @OldValue = 'alter-wert';
SET @NewValue = 'neuer-wert';
UPDATE [eazybusiness].[dbo].[tArtikelBeschreibung]
SET cBeschreibung = REPLACE(
CAST(cBeschreibung AS NVARCHAR(MAX)),
@OldValue,
@NewValue
)
WHERE cBeschreibung LIKE '%' + @OldValue + '%';
Die gezeigte SQL-Abfrage ist nicht auf eine einzelne Tabelle beschränkt, sondern lässt sich flexibel auf weitere Tabellen und Spalten übertragen. Damit eignet sie sich ideal für eine gezielte SQL Suchen-und-Ersetzen-Logik innerhalb der JTL-Datenbank. Such- und Ersetzvorgänge können so auch in anderen Textfeldern umgesetzt werden, etwa in Kurzbeschreibungen, Zusatzfeldern oder plattformspezifischen Inhalten, ohne bestehende Datenstrukturen zu gefährden.
Zusätzlich kann die Abfrage über eine erweiterte WHERE-Bedingung präzise eingeschränkt werden. Dadurch lassen sich Änderungen gezielt auf bestimmte Verkaufsplattformen, Sprachen oder Mandanten begrenzen. Diese kontrollierte Vorgehensweise ist besonders wichtig für eine saubere Datenbankpflege in JTL-Wawi, da sie unerwünschte Massenänderungen vermeidet und die Datenintegrität wahrt. Gleichzeitig trägt die gezielte Filterung zu einer besseren Performance-Optimierung der Datenbank bei, da nur relevante Datensätze verarbeitet werden.