JTL Source
Bindet die Produkte Ihres JTL-Shops als dynamische Inhaltsquelle in den YOOtheme-Pro-Seitenersteller ein · Version 1.12.0 · Stand 14.08.2026
- JTL Source im Überblick
- Voraussetzungen und Installation
- Download-Schlüssel und Updates
- Die Shop-Verbindung einrichten
- Die Quellen im Builder verwenden
- Felder und Eigenschaften
- Häufige Fragen und Fehlerbehebung
- Änderungsprotokoll
JTL Source im Überblick
Was die Erweiterung macht
JTL Source macht die Produkte Ihres JTL-Shops im YOOtheme-Pro-Builder als dynamischen Inhalt verfügbar. Sie bauen Produktlisten und Produktseiten mit den Bordmitteln des Builders — Raster, Karten, Slider — und verbinden die Felder mit den Daten aus dem Shop.
Der Shop bleibt dabei unangetastet. Die Erweiterung liest aus seiner Datenbank; sie schreibt nichts und verändert nichts.
Was aus dem Shop kommt
Zwei Einstiege stehen im Builder zur Auswahl:
- JTL Produkte: mehrere Produkte, gefiltert nach Kategorien, Herstellern, Merkmalen oder einem Suchbegriff, mit Sortierung, Startpunkt und Anzahl.
- JTL Produkt: genau ein Produkt, ausgewählt aus einer Liste.
Je Produkt stehen unter anderem zur Verfügung: Name, Artikelnummer, Beschreibung und Kurzbeschreibung, Lagerbestand, Anlage- und Änderungsdatum, die Adresse im Shop, Preise, Bilder, Attribute, Variationen und Merkmale. Die Einzelheiten stehen unter Felder und Eigenschaften.
Was Sie dafür brauchen
- Einen JTL-Shop mit MySQL-Datenbank
- Netzwerkzugang von Ihrem Joomla-Server zu dieser Datenbank
- Zugangsdaten für einen Datenbankbenutzer — am besten einen eigenen, der nur lesen darf
- Joomla 6 und PHP 8.2
- YOOtheme Pro als aktives Template
Liegen Shop und Website auf verschiedenen Servern, muss der Datenbankserver des Shops Verbindungen von außen annehmen. Das ist eine bewusste Entscheidung mit Sicherheitsauswirkungen — lesen Sie dazu Die Shop-Verbindung einrichten.
Wie die Daten auf die Seite kommen
- Sie hinterlegen die Zugangsdaten einmalig in den Plugin-Einstellungen.
- Im Builder wählen Sie am Element unter der Gruppe Graup-IT eine der beiden Quellen und setzen die Filter.
- Beim Aufbau der Seite holt die Erweiterung genau die Produkte, die zu diesen Filtern passen — begrenzt auf die eingestellte Anzahl.
- Der Builder setzt die Felder in Ihr Layout ein.
Die Auswahllisten im Builder (Kategorien, Hersteller, Merkmale, Produkte) werden nur dort aufgebaut. Beim normalen Seitenaufruf entfallen sie — das spart bei jedem Aufruf mehrere Abfragen gegen den Shop.
Gilt für Version 1.12.0.
Voraussetzungen und Installation
Voraussetzungen
- Joomla: 6.0 oder neuer
- PHP: 8.2 oder neuer, mit der Erweiterung
mysqli - YOOtheme Pro: installiert und als Site-Template aktiv
- JTL-Shop mit erreichbarer MySQL-Datenbank
Die Erweiterung kommt ohne das Kompatibilitäts-Plugin von Joomla aus. Wenn Sie es aus anderen Gründen aktiviert haben, stört das nicht — nötig ist es hier nicht.
Installation
- Laden Sie das Installationspaket
plg_system_jtlshop-x.y.z.zipaus Ihrem Kundenkonto auf graup-it.de herunter. - Öffnen Sie im Joomla-Backend System → Installieren → Erweiterungen.
- Ziehen Sie die ZIP-Datei in das Upload-Feld oder wählen Sie sie über Durchsuchen aus.
Das Plugin wird bei der Erstinstallation automatisch aktiviert. Sie finden es anschließend unter System → Plugins als System - JTL Source.
Nach der Installation erscheint ein Übersichtsfenster mit der installierten Version und den Einstiegen zu Erste Schritte, Download-Schlüssel und Handbuch. Nach einem Update steht an der Stelle von „Erste Schritte" das Änderungsprotokoll.
Passt die Umgebung nicht — zu altes Joomla, zu altes PHP —, bricht die Installation mit einer klaren Meldung ab, statt eine Erweiterung zu hinterlassen, die später stillschweigend nicht funktioniert.
Nach der Installation
- Richten Sie die Verbindung zum Shop ein und prüfen Sie sie mit der eingebauten Schaltfläche — siehe Die Shop-Verbindung einrichten. Ohne Verbindung bleiben die Quellen im Builder leer.
- Leeren Sie den YOOtheme-Zwischenspeicher: YOOtheme → Settings → Advanced → Clear Cache.
- Öffnen Sie eine Seite im Builder — in den dynamischen Inhalten erscheint jetzt die Gruppe Graup-IT mit den beiden Quellen.
- Hinterlegen Sie Ihren Download-Schlüssel für automatische Updates — siehe Download-Schlüssel und Updates.
Deinstallation
Deinstallieren Sie das Plugin über System → Erweiterungen verwalten. Die Erweiterung legt in Joomla keine eigenen Tabellen an, und am JTL-Shop ändert sie ohnehin nichts. Es bleiben nur die Plugin-Einstellungen zurück, die mit der Deinstallation entfernt werden.
Denken Sie daran, den für die Anbindung angelegten Datenbankbenutzer im Shop ebenfalls zu entfernen, wenn Sie ihn nicht mehr brauchen.
Gilt für Version 1.12.0.
Download-Schlüssel und Updates
JTL Source erhält Updates über den offiziellen Joomla-Update-Mechanismus. Damit Ihre Website die Aktualisierungen abrufen darf, tragen Sie einmalig Ihren persönlichen Download-Schlüssel ein.
Den Download-Schlüssel eintragen
- Erzeugen Sie Ihren Download-Schlüssel in Ihrem Kundenkonto auf graup-it.de (Menüpunkt Download-IDs). Ein Schlüssel gilt pro Website und deckt alle darüber bezogenen Erweiterungen ab.
- Öffnen Sie im Backend System → Aktualisieren → Update-Quellen.
- Öffnen Sie den Eintrag JTL Source Updates und tragen Sie den Schlüssel in das Feld Download-Schlüssel ein.
- Speichern.
Achten Sie darauf, den Schlüssel ohne führende oder abschließende Leerzeichen einzufügen. Ein mitkopiertes Leerzeichen führt beim Update zu einer Fehlermeldung („URL rejected" bzw. „Paketdownload fehlgeschlagen").
Updates einspielen
- Öffnen Sie System → Aktualisieren → Erweiterungen aktualisieren.
- Ist eine neue Version verfügbar, erscheint JTL Source in der Liste. Wählen Sie es aus und klicken Sie auf Aktualisieren.
- Joomla lädt das Paket über Ihren Download-Schlüssel, prüft die Prüfsumme und spielt die neue Version ein. Ihre Einstellungen und Ihre Builder-Layouts bleiben dabei erhalten.
Findet Joomla kein Update, obwohl eine neue Version vorliegt, klicken Sie zunächst auf Auf Updates prüfen, um den Zwischenspeicher zu aktualisieren.
Manueller Weg
Sie können jede Version auch manuell installieren: das ZIP herunterladen und wie bei der Erstinstallation über System → Installieren → Erweiterungen einspielen. Ein Update über das Paket überschreibt die vorhandene Installation und erhält Ihre Einstellungen.
Gilt für Version 1.12.0.
Die Shop-Verbindung einrichten
Die Verbindung richten Sie einmalig unter System → Plugins im Eintrag System - JTL Source ein. Die Einstellungen liegen in zwei Reitern: JTL Shop Datenbank und Plugin-Optionen.
Zuerst: einen eigenen Datenbankbenutzer anlegen
Verwenden Sie nicht den Datenbankbenutzer des Shops. Legen Sie im Shop-Datenbankserver einen eigenen Benutzer an, der ausschließlich lesen darf. Die Erweiterung schreibt nie — ein Benutzer mit Schreibrechten wäre also ein Risiko ohne Gegenwert.
Ein Beispiel für MySQL. Ersetzen Sie Schemanamen, Benutzernamen, Passwort und die Adresse, von der aus zugegriffen wird:
CREATE USER 'joomla_lesen'@'203.0.113.10' IDENTIFIED BY 'ein-langes-passwort';
GRANT SELECT ON jtlshop.tartikel TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tartikelmerkmal TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tartikelpict TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tartikelsichtbarkeit TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tattribut TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tattributsprache TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaft TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftsichtbarkeit TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftsprache TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftwert TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftwertaufpreis TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftwertpict TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftwertsichtbarkeit TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.teigenschaftwertsprache TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.thersteller TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tkategorie TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tkategorieartikel TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tmerkmal TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tmerkmalwert TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tmerkmalwertsprache TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tpreis TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tpreisdetail TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tsprache TO 'joomla_lesen'@'203.0.113.10';
FLUSH PRIVILEGES;
Ab Version 1.12.0 stehen hier andere Tabellen als vorher. Die Liste nannte
bis 1.11.0 zwei Namen, die es im JTL Shop nicht gibt — die Erweiterung fragte sie ab, und die
Felder Attribute und Varianten blieben deshalb immer leer. Wer die Rechte
einzeln vergeben hat, vergibt die neuen bitte nach. Wer GRANT SELECT ON jtlshop.*
benutzt hat, muss nichts tun.
Das t am Anfang der Tabellennamen ist das übliche JTL-Präfix. Weicht Ihres ab,
passen Sie die Namen an — und tragen Sie es unten im Feld Tabellen-Präfix ein.
Wer es einfacher haben will, vergibt GRANT SELECT ON jtlshop.* . Das ist
großzügiger als nötig, aber immer noch deutlich besser als ein Benutzer mit Schreibrechten.
Reiter „JTL Shop Datenbank"
| Datenbank-Host | Adresse des Datenbankservers. Liegt der Shop auf demselben Server, meist localhost. |
| Datenbankname | Name des Schemas, etwa jtlshop. |
| Datenbank-Benutzer | Der eben angelegte Lesebenutzer. |
| Datenbank-Passwort | Wird im Formular verdeckt angezeigt. Zur Speicherung siehe unten. |
| Tabellen-Präfix | Vorgabe t. |
| Datenbank-Port | Vorgabe 3306. |
Die Verbindung prüfen
Über dem ersten Feld liegt die Schaltfläche Datenbankverbindung testen. Sie prüft, ohne zu speichern:
- ob die Verbindung mit diesen Daten zustande kommt,
- welche MySQL-Version antwortet,
- wie viele Tabellen mit Ihrem Präfix vorhanden sind,
- und ob eine der acht Tabellen fehlt, ohne die eine Anbindung sinnlos wäre.
Werden fehlende Tabellen gemeldet, stimmt in aller Regel das Präfix nicht.
Die Prüfung ist nur für angemeldete Benutzer mit dem Recht, Erweiterungen zu verwalten, erreichbar. Bis Version 1.9.8 war sie ohne Anmeldung aufrufbar — ein weiterer Grund, auf 1.10.0 zu aktualisieren.
Reiter „Plugin-Optionen"
| Shop Basis-URL | Adresse des Shops, etwa https://shop.example.de. Daraus werden die Bild- und Artikeladressen zusammengesetzt. Bleibt das Feld leer, wird die Adresse der Joomla-Website verwendet — und die Bilder gehen ins Leere. |
| Standard-Währung | Währungskürzel für die Preisausgabe, Vorgabe EUR. |
| Standardsprache | ISO-Kürzel der Sprache, in der die Artikeldaten geführt werden, Vorgabe ger. Steuert, welche übersetzten Attributnamen gelesen werden. Bei einem englischsprachigen Shop etwa eng. |
| Kundengruppe | Aus Sicht dieser Kundengruppe liest die Website den Shop, Vorgabe 1. Sie bestimmt zweierlei: welcher Preis ausgegeben wird und welche Produkte als sichtbar gelten. In den meisten Shops ist 1 die Standardgruppe — welche es bei Ihnen ist, sehen Sie im Shop-Backend unter Kunden → Kundengruppen. |
Wo das Passwort landet
Joomla speichert Plugin-Einstellungen unverschlüsselt in der eigenen Datenbank. Das gilt auch für dieses Passwort — Joomla bietet für Plugin-Parameter nichts anderes an, und keine Erweiterung kann daran etwas ändern.
Daraus folgt die Empfehlung oben: ein eigener Benutzer, der ausschließlich lesen darf. Dann ist der Schaden begrenzt, falls jemand an die Joomla-Datenbank kommt.
Verbindung von außen
Liegen Shop und Website auf verschiedenen Servern, muss der MySQL-Server des Shops Verbindungen von außen annehmen. Grenzen Sie das so weit wie möglich ein:
- Den Benutzer an die IP-Adresse Ihres Joomla-Servers binden — genau das bewirkt der Teil
@'203.0.113.10'oben. - Port 3306 in der Firewall nur für diese eine Adresse öffnen.
- Wenn möglich, die Verbindung über ein VPN oder einen SSH-Tunnel führen statt über das offene Netz.
Gilt für Version 1.12.0.
Die Quellen im Builder verwenden
Eine Quelle zuweisen
- Öffnen Sie die Seite im YOOtheme-Builder.
- Wählen Sie das Element, das die Produkte zeigen soll — etwa ein Raster oder eine Kartenliste.
- Wechseln Sie im Element auf den Reiter Erweitert. Dort steht das Auswahlfeld Dynamischer Inhalt.
- Klappen Sie es auf und gehen Sie zur Gruppe Graup-IT. Wählen Sie JTL Produkte für eine Liste oder JTL Produkt für genau ein Produkt.
Sobald die Quelle gewählt ist, erscheinen darunter ihre Einstellungen:
Danach ordnen Sie den Feldern des Elements die Felder der Quelle zu — Titel auf name, Bild auf main_image und so weiter. Welche Felder es gibt, steht unter Felder und Eigenschaften.
JTL Produkte
Diese Quelle liefert mehrere Produkte. Alle Filter lassen sich kombinieren; leere Filter schränken nicht ein.
| Kategorien | Mehrfachauswahl aus den Kategorien des Shops. Ausgegeben werden nur Produkte, die einer der gewählten Kategorien angehören. |
| Hersteller | Mehrfachauswahl aus den Herstellern. |
| Merkmale | Mehrfachauswahl aus den Merkmalswerten. Angezeigt wird jeweils Merkmal: Wert (Anzahl Produkte); Merkmalswerte ohne Produkte erscheinen erst gar nicht. |
| Start | Wie viele Produkte übersprungen werden. Vorgabe 0. |
| Anzahl | Wie viele Produkte höchstens geliefert werden. Vorgabe 10. |
| Sortierung | Produktname, Artikelnummer, Preis oder Hinzugefügt am. |
| Richtung | Aufsteigend oder absteigend. |
| Nur sichtbare Produkte | Blendet Produkte aus, die im Shop für die eingestellte Kundengruppe gesperrt sind. Für öffentliche Seiten empfohlen. Vorgabe: an. |
Was „sichtbar" hier bedeutet. JTL kennt kein Aktiv-Kennzeichen am Artikel. Wer einen Artikel in der Warenwirtschaft für diesen Shop abwählt, dessen Datensatz löscht der nächste Abgleich aus der Shop-Datenbank — solche Produkte kann die Erweiterung also gar nicht mehr finden. Was der Shop dagegen führt, ist eine Sperre je Kundengruppe: Das Produkt bleibt in der Datenbank, wird aber einzelnen Kundengruppen nicht gezeigt. Genau darauf filtert dieser Schalter, und zwar gegen die Kundengruppe aus den Plugin-Optionen.
Ihr Lesebenutzer braucht dafür SELECT auf tartikelsichtbarkeit.
Fehlt die Tabelle oder das Recht, liefert die Erweiterung die Produkte weiterhin aus — dann
aber ungefiltert, mit einem Hinweis im Joomla-Backend und im Protokoll.
Produkte mit einem in der Zukunft liegenden Erscheinungsdatum bleiben sichtbar. Das entspricht dem Shop, der solche Artikel ebenfalls zeigt und als demnächst erscheinend kennzeichnet.
Setzen Sie die Anzahl bewusst. Jedes Produkt zieht beim Aufbau der Seite weitere Abfragen für Preise, Bilder, Attribute und Varianten nach sich — und die laufen gegen eine entfernte Datenbank. Eine Liste mit 200 Produkten ist spürbar langsamer als eine mit 12.
Suche
Die Quelle kennt zusätzlich einen Suchbegriff, der Produktname, Beschreibung und Artikelnummer durchsucht. In der Maske gibt es dafür kein Eingabefeld — der Wert wird über die dynamischen Parameter von YOOtheme gesetzt, etwa aus einem URL-Parameter. Für eine fest eingestellte Liste brauchen Sie ihn nicht.
JTL Produkt
Diese Quelle liefert genau ein Produkt. Sie wählen es im Feld Produkt aus einer Liste, die Artikelnummer – Produktname zeigt und nach Artikelnummer sortiert ist.
Die Liste ist auf 500 Produkte begrenzt. Hat Ihr Shop mehr, ist das gesuchte Produkt unter Umständen nicht dabei — bauen Sie die Seite dann über JTL Produkte mit einem Filter auf.
Sortierung und Reihenfolge
Die Sortierung nach Preis greift auf den Nettopreis des Shops zu. Produkte ohne hinterlegten Preis können dabei je nach Datenlage vorn oder hinten einsortiert werden — wenn die Reihenfolge wichtig ist, prüfen Sie das Ergebnis mit echten Daten.
Die Auswahllisten bleiben leer
Kategorien, Hersteller, Merkmale und die Produktliste werden nur in der Builder-Oberfläche aufgebaut, nicht beim normalen Seitenaufruf — das spart bei jedem Aufruf mehrere Abfragen gegen den Shop. Sind sie leer, steht in aller Regel die Datenbankverbindung nicht: Prüfen Sie sie in den Plugin-Einstellungen mit Datenbankverbindung testen.
Änderungen im Shop erscheinen nicht sofort
YOOtheme speichert erzeugte Seiten zwischen. Nach Änderungen im Shop leeren Sie den Zwischenspeicher unter YOOtheme → Settings → Advanced → Clear Cache. Dasselbe gilt, wenn Sie im Shop neue Kategorien oder Hersteller angelegt haben und sie in den Auswahllisten des Builders noch fehlen.
Gilt für Version 1.12.0.
Felder und Eigenschaften
Diese Seite listet die Felder, die beide Quellen liefern. Im Builder ordnen Sie sie den Bestandteilen Ihres Elements zu.
Produkt
id | Interne Kennung des Produkts im Shop. Eindeutig, aber nicht für Besucher gedacht. |
name | Produktname. |
article_no | Artikelnummer, wie im Shop gepflegt. |
description | Ausführliche Beschreibung, enthält HTML aus dem Shop. |
short_description | Kurzbeschreibung. |
stock | Lagerbestand als Zahl. |
in_stock | Ja/Nein — für Bedingungen im Builder bequemer als der Zahlenwert. |
seo_url | Sprechende Adresse des Produkts, relativ zum Shop. |
shop_url | Vollständige Adresse des Produkts im Shop — aus der Shop-Basis-URL zusammengesetzt. Das Feld für „Zum Produkt"-Verweise. |
created_at | Anlagedatum. |
updated_at | Datum der letzten Änderung. |
main_image | Das erste Bild des Produkts — für Karten und Raster der Normalfall. |
price | Preisangaben, siehe unten. |
images | Alle Bilder als Liste, mit Angabe einer Höchstzahl. |
attributes | Attribute als Liste. |
variations | Varianten als Liste. |
merkmale | Merkmale als Liste. |
description enthält die Auszeichnung aus dem Shop. Wenn Ihr Element den Text
maskiert ausgibt, sehen Besucher die HTML-Marken. Verwenden Sie in dem Fall ein Element, das
HTML zulässt, oder short_description.
Preis
price_net | Nettopreis als Zahl. |
price_gross | Bruttopreis als Zahl. |
formatted_net | Nettopreis als fertige Zeichenkette mit Währung. |
formatted_gross | Bruttopreis als fertige Zeichenkette mit Währung. |
rrp | Unverbindliche Preisempfehlung, sofern im Shop gepflegt. |
has_discount | Ja/Nein — ob der Preis unter der Preisempfehlung liegt. |
currency | Währungskürzel aus den Plugin-Einstellungen. |
Zur Preisanzeige: Welcher Preis im Shop tatsächlich gilt, hängt von Kundengruppe, Staffeln und Aktionen ab. Diese Erweiterung liest den hinterlegten Standardpreis. Wenn Ihr Shop mit kundengruppenabhängigen Preisen arbeitet, prüfen Sie, ob die Anzeige auf der Website dazu passt — und weisen Sie gegebenenfalls darauf hin, dass der Preis im Shop maßgeblich ist.
Bild
id | Kennung des Bildes. |
sort_order | Reihenfolge, wie im Shop gepflegt. |
url_small, url_medium, url_large | Die drei Größen, die JTL erzeugt — jeweils als vollständige Adresse. |
Alle drei Adressen werden aus der Shop-Basis-URL zusammengesetzt. Ist sie nicht gesetzt, zeigen die Bilder ins Leere.
Attribut
id | Kennung des Attributs. |
name | Bezeichnung — in der Sprache aus den Plugin-Einstellungen, sofern übersetzt. |
value | Wert. |
formatted | Bezeichnung und Wert als fertige Zeichenkette. |
Variante
id | Kennung der Variante. |
article_no | Artikelnummer der Variante. |
stock | Lagerbestand der Variante. |
in_stock | Ja/Nein. |
Merkmal
merkmal_id, merkmal_name | Kennung und Bezeichnung des Merkmals, etwa „Farbe". |
wert_id, wert_name | Kennung und Bezeichnung des Wertes, etwa „Blau". |
sort_order | Reihenfolge aus dem Shop. |
Merkmale sind in JTL optional. Nutzt Ihr Shop sie nicht, bleiben die Felder leer und die Auswahlliste im Builder ist leer — das ist kein Fehler.
Gilt für Version 1.12.0.
Häufige Fragen und Fehlerbehebung
Die Quellen erscheinen nicht im Builder
- Ist das Plugin unter System → Plugins aktiviert?
- Ist YOOtheme Pro als Site-Template aktiv? Ohne YOOtheme bleibt das Plugin wirkungslos — das ist beabsichtigt.
- Leeren Sie den YOOtheme-Zwischenspeicher: YOOtheme → Settings → Advanced → Clear Cache.
- Suchen Sie unter Dynamic Content nach der Gruppe Graup-IT.
Der Builder lässt sich gar nicht mehr öffnen
Zeigt der Builder statt der Seite eine Fehlermeldung mit mysqli object is not fully initialized, dann laufen Sie in einen Fehler der Versionen bis 1.10.4: Eine nicht erreichbare Shop-Datenbank riss dort den gesamten Builder mit — auch auf Seiten ohne Shop-Inhalte.
Ab Version 1.10.5 bleiben in diesem Fall nur die Auswahllisten leer, der Builder arbeitet weiter. Aktualisieren Sie auf 1.10.5 oder neuer. Kommen Sie an die Plugin-Einstellungen nicht mehr heran, deaktivieren Sie das Plugin vorübergehend unter System → Plugins; danach lässt sich der Builder wieder öffnen.
Die Quellen sind da, aber die Auswahllisten sind leer
Das ist fast immer die Datenbankverbindung. Öffnen Sie die Plugin-Einstellungen und benutzen Sie Datenbankverbindung testen. Die Prüfung sagt Ihnen genau, woran es liegt.
- Verbindung schlägt fehl: Host, Benutzer, Passwort oder Port prüfen. Bei einem anderen Server: Nimmt der MySQL-Server Verbindungen von außen an, und ist der Benutzer für die IP-Adresse Ihres Joomla-Servers freigegeben?
- Verbindung steht, aber Tabellen werden vermisst: Das
Tabellen-Präfix stimmt nicht. Vorgabe ist
t. - Alles grün, Listen trotzdem leer: Leeren Sie den YOOtheme-Zwischenspeicher — die Listen werden mit dem Builder-Schema zwischengespeichert.
„Die Shopdaten sind derzeit nicht verfügbar"
Diese Meldung erscheint im Frontend, wenn der Zugriff auf den Shop scheitert. Der genaue Wortlaut steht bewusst nicht dort, sondern im Joomla-Protokoll: Die Meldung der Datenbank nennt Serveradresse, Benutzernamen und Schemanamen, und das geht Besucher nichts an.
Im Backend sehen Sie den vollständigen Wortlaut. Alternativ finden Sie ihn im Protokoll unter
plg_system_jtlshop.
Die Bilder werden nicht angezeigt
Prüfen Sie die Shop-Basis-URL in den Plugin-Einstellungen. Ist sie leer, setzt die Erweiterung die Bildadressen aus der Adresse Ihrer Joomla-Website zusammen — dort liegen die Bilder aber nicht. Tragen Sie die Adresse des Shops ein, ohne abschließenden Schrägstrich.
Attributnamen erscheinen nicht übersetzt
Die übersetzten Bezeichnungen werden für die Sprache gelesen, die unter
Standardsprache eingetragen ist — Vorgabe ger. Bei einem
englischsprachigen Shop tragen Sie dort eng ein.
Die Seite baut sich langsam auf
Jedes Produkt zieht weitere Abfragen für Preise, Bilder, Attribute und Varianten nach sich, und diese laufen gegen eine entfernte Datenbank — jede Abfrage kostet Netzwerkzeit.
- Setzen Sie die Anzahl so niedrig wie möglich.
- Ordnen Sie nur die Felder zu, die Sie wirklich anzeigen. Listen wie
images,attributesodervariationswerden nur geholt, wenn sie im Layout vorkommen. - Nutzen Sie den YOOtheme-Zwischenspeicher, statt ihn abzuschalten.
- Liegen Shop und Website weit auseinander, ist die Netzwerklaufzeit die Untergrenze. Ein Server näher am Shop hilft mehr als jede Einstellung.
Verändert die Erweiterung etwas im Shop?
Nein. Sie liest ausschließlich. Legen Sie trotzdem einen Datenbankbenutzer an, der nur lesen darf — siehe Die Shop-Verbindung einrichten. Dann ist es nicht nur so gemeint, sondern auch erzwungen.
Ist das Passwort sicher gespeichert?
Nein — Joomla speichert Plugin-Einstellungen unverschlüsselt. Das Feld ist im Formular verdeckt, in der Datenbank steht es im Klartext. Deshalb die Empfehlung, einen eigenen Lesebenutzer zu verwenden: Dann ist das, was dort steht, nur für Lesezugriffe brauchbar.
Brauche ich das Joomla-Kompatibilitäts-Plugin?
Nein. Die Erweiterung verwendet ausschließlich Schnittstellen, die Joomla 6 ohne dieses Plugin bereitstellt.
Funktioniert die Erweiterung mit Joomla 5?
Nein. Ab Version 1.10.0 werden Joomla 6 und PHP 8.2 vorausgesetzt. Auf älteren Installationen bricht die Installation mit einem Hinweis ab.
Ich nutze noch 1.9.8 — muss ich aktualisieren?
Ja. In 1.9.8 war die Verbindungsprüfung ohne Anmeldung erreichbar. Ein Besucher konnte die Website darüber als Netzwerksonde benutzen und prüfen, ob auf einem beliebigen Rechner ein Datenbankdienst läuft. Version 1.10.0 verlangt ein gültiges Sitzungstoken und das Recht, Erweiterungen zu verwalten.
Gilt für Version 1.12.0.
Änderungsprotokoll
Dieses Änderungsprotokoll listet alle veröffentlichten Versionen von JTL Source, die neueste zuerst.
Diese Seite wird beim Release automatisch aus der Änderungsdatei des Produkts erzeugt. Änderungen von Hand gehen beim nächsten Abgleich verloren.
Version 1.12.0 – 14.08.2026
Hinzugefügt
- Varianten liefern jetzt auch den Namen der Variante, die Bezeichnung der Variantengruppe, den Aufpreis und das Variantenbild.
- Varianten, die der Shop für die eingestellte Kundengruppe verbirgt, bleiben auch auf der Website verborgen.
Geändert
- Die Einstellung „Standardsprache" wirkt jetzt tatsächlich. Bisher erschienen übersetzte Merkmale immer in der ersten Sprache des Shops, gleich was dort eingetragen war.
- Der Aufpreis einer Variante richtet sich nach der eingestellten Kundengruppe, sofern der Shop dafür einen eigenen Wert führt.
Behoben
- Das Feld „Attribute" blieb bei jedem Produkt leer. Es fragte eine Tabelle ab, die es im JTL Shop nicht gibt, und lieferte deshalb nie ein Ergebnis.
- Das Feld „Varianten" blieb aus demselben Grund leer. Größen, Farben und andere Varianten erscheinen jetzt.
- Beide Felder schwiegen dabei: keine Fehlermeldung, nur nie ein Inhalt. Wer sie in einer Vorlage benutzt, sollte die betroffenen Seiten noch einmal ansehen.
Hinweise
- Der Lesebenutzer der Shop-Datenbank braucht Leserecht auf die Tabellen für Attribute, Varianten und Sprachen. Das Handbuch führt sie im Beispiel für die Rechtevergabe auf.
- Fehlt ein Recht, bleibt das betroffene Feld leer und der Grund steht im Protokoll.
Version 1.11.0 – 14.08.2026
Hinzugefügt
- Neue Einstellung „Kundengruppe" in den Plugin-Optionen. Sie bestimmt, welcher Preis ausgegeben wird und welche Produkte als sichtbar gelten. Vorgabe 1, wie bisher fest eingebaut.
Geändert
- Der Schalter heißt jetzt „Nur sichtbare Produkte" und bleibt wie bisher standardmäßig eingeschaltet.
- Das Handbuch versprach, der Schalter blende im Shop deaktivierte Produkte aus. Es beschreibt jetzt, was er wirklich leistet.
- Deaktivierte Produkte entfernt JTL beim Abgleich ohnehin aus der Shop-Datenbank. Die Erweiterung kann sie also gar nicht anzeigen.
Behoben
- Der Schalter „Nur aktive Produkte" war ohne Wirkung: Produkte, die im Shop für eine Kundengruppe gesperrt sind, standen trotzdem auf der Website.
- Bitte prüfen Sie Ihre öffentlichen Seiten mit Produktlisten daraufhin, ob dort gesperrte Produkte zu sehen waren.
- Betroffen sind nur Shops, die die Sichtbarkeit je Kundengruppe einschränken. Wer sie nie genutzt hat, sah nichts Falsches.
Hinweise
- Der Lesebenutzer der Shop-Datenbank braucht zusätzlich Leserecht auf die Tabelle für die Sichtbarkeit. Das Handbuch führt sie im Beispiel für die Rechtevergabe auf.
- Fehlt dieses Recht, werden die Produkte weiterhin ausgegeben, dann aber ungefiltert und mit einem Hinweis im Backend.
Version 1.10.5 – 14.08.2026
Geändert
- Ein nicht erreichbarer Shop wird nur noch einmal je Seitenaufruf gemeldet statt einmal für jede Auswahlliste.
Behoben
- War die Shop-Datenbank nicht erreichbar, ließ sich der YOOtheme-Builder gar nicht mehr öffnen — auch nicht für Seiten ohne Shop-Inhalte.
- Betroffen war jeder mit falschen Zugangsdaten, mit ausgefallenem Shop-Server oder mit einem aktivierten, aber noch nicht eingerichteten Plugin.
- Ist der Shop nicht erreichbar, bleiben die Auswahllisten für Kategorien, Hersteller, Merkmale und Artikel jetzt einfach leer.
Version 1.10.4 – 12.08.2026
Geändert
- Eine mitgelieferte Datei nannte noch die Lizenzversion 2. Überall steht jetzt einheitlich die GNU General Public License Version 3 oder später.
Version 1.10.3 – 01.08.2026
Behoben
- Der Link „Handbuch öffnen" im Übersichtsfenster zeigte auf eine Adresse, die es nach der Umbenennung nicht mehr gibt.
Version 1.10.2 – 01.08.2026
Geändert
- Die Erweiterung heißt im Erweiterungs-Manager jetzt „System - JTL Source". An Funktion und Einstellungen ändert sich nichts.
Version 1.10.1 – 01.08.2026
Behoben
- Neue Versionen erschienen nicht im Erweiterungs-Manager: Die Anmeldung beim Update-Server fehlte im Paket. Version 1.10.0 ist dafür einmalig von Hand zu aktualisieren.
Version 1.10.0 – 31.07.2026
Sicherheit
- Die Verbindungsprüfung in den Einstellungen war ohne Anmeldung erreichbar.
- Ein Besucher konnte die Website darüber als Netzwerksonde benutzen und prüfen, ob auf einem beliebigen Rechner ein Datenbankdienst läuft.
- Die Prüfung verlangt jetzt ein gültiges Sitzungstoken und das Recht, Erweiterungen zu verwalten.
- Die Sortierrichtung einer Artikelliste wurde ungeprüft übernommen. Sie stammt jetzt aus einer festen Liste.
- Meldungen der Shopdatenbank erschienen auf der Website und nannten dabei Serveradresse, Benutzername und Datenbanknamen. Besucher sehen jetzt einen neutralen Hinweis, der Wortlaut steht im Protokoll.
Hinzugefügt
- Die Sprache der Artikeldaten lässt sich jetzt einstellen. Bisher war sie fest auf Deutsch, sodass übersetzte Attributnamen in anderssprachigen Shops nicht gefunden wurden.
- Nach Installation und Update erscheint ein Übersichtsfenster mit Version, Status und Einstiegen zu Erste Schritte, Download-Schlüssel und Handbuch.
- Das Plugin wird bei der Erstinstallation automatisch aktiviert.
- Die Erweiterung meldet sich beim Update-Server: Neue Versionen erscheinen künftig direkt im Erweiterungs-Manager.
- Der Erweiterungs-Manager zeigt hinter der Versionsnummer die Liste der Änderungen.
- Der vollständige Lizenztext liegt jetzt bei; bisher wurde keiner ausgeliefert, obwohl darauf verwiesen wurde.
Geändert
- Beim Aufbau einer Seite liefen bisher bis zu vier Abfragen gegen den Shop, deren Ergebnis nur die Baukasten-Oberfläche braucht. Sie entfallen im Seitenbetrieb.
- Die Erweiterung steht unter der GNU General Public License Version 3 oder später.
- Innerer Umbau auf das aktuelle Joomla-Erweiterungsmuster. Für die Bedienung ändert sich nichts.
- Die Erweiterung setzt Joomla 6 und PHP 8.2 voraus und läuft ohne das Kompatibilitäts-Plugin. Ältere Installationen bricht das Installationsskript mit einer klaren Meldung ab.
Behoben
- Eine Artikelsuche nach Begriffen mit Sonderzeichen blieb ohne Treffer.
- 35 Beschriftungen erschienen für nicht-deutsche Kunden als roher Textbaustein, etwa „PLG_SYSTEM_JTLSHOP_STOCK" statt „Stock level". Sie liegen jetzt auf Englisch vor.
- Vier Optionsbeschriftungen fehlten umgekehrt auf Deutsch.
- Eine Beschriftung war doppelt hinterlegt; die zweite überschrieb stillschweigend die erste.
Version 1.9.8 – 06.06.2026
Hinweise
- Stand vor der Aufnahme in die gemeinsame Werkstatt. Das frühere Änderungsprotokoll reichte nur bis 1.5.3 und ist unverändert aufbewahrt.