Skip to main content

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.tartikelattribut      TO 'joomla_lesen'@'203.0.113.10';
GRANT SELECT ON jtlshop.tartikelattributsprache 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.tartikelvariante      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';
FLUSH PRIVILEGES;

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-HostAdresse des Datenbankservers. Liegt der Shop auf demselben Server, meist localhost.
DatenbanknameName des Schemas, etwa jtlshop.
Datenbank-BenutzerDer eben angelegte Lesebenutzer.
Datenbank-PasswortWird im Formular verdeckt angezeigt. Zur Speicherung siehe unten.
Tabellen-PräfixVorgabe t.
Datenbank-PortVorgabe 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.

Der Reiter JTL Shop Datenbank mit der Schaltfläche Datenbankverbindung testen und der Rückmeldung: Verbindung erfolgreich, Datenbank jtlshop_demo (MySQL 8.4.3), 8 Tabellen gefunden

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-URLAdresse 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ährungWährungskürzel für die Preisausgabe, Vorgabe EUR.
StandardspracheISO-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.

Der Reiter Plugin-Optionen mit den Feldern Shop Basis-URL, Standard-Währung und Standardsprache

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.10.4.