Breaking Changes¶
JTL-Shop 4.x ⇒ JTL-Shop 5.x¶
Systemvoraussetzung auf PHP 7.3 angehoben
Für den Betrieb von JTL-Shop 5.x ist PHP 7.3 Voraussetzung.
jQuery Version auf 3.0 angehoben
Mit JTL-Shop 5.x erfolgte für das Javascript-Framework jQuery ein Update von Version 1.12 auf Version 3.0.
Weitere Informationen hierzu finden Sie im Abschnitt „Update auf jQuery 3.x (ab JTL-Shop 5.0)“.Bootstrap-Version auf 4.1 angehoben
Das CSS-Framework Bootstrap hat mit JTL-Shop 5.x ebenfalls ein Update erhalten und ist nun in Version 4.1.3 im Onlineshop enthalten.
Die veralteten Bibliotheken „xajax“ und „PclZip“ wurden entfernt
Die ungenutzten Seitentypen „Newsarchiv“ und „RMA“ wurden entfernt
Die Versionierung wurde geändert
„Semantic Versioning“ : für JTL-Shop,
„API-Versioning“ : intern für den Abgleich mit JTL-Wawi**Mit JTL-Shop 5.x wird die Versionsnummerierung des Onlineshops auf das allgemein gültige Verfahren SemVer umgestellt.
Für die Verbindung zur JTL-Wawi wird intern weiterhin die bisherige Versionierung als interne API-Version geführt.Die Upgrade-Möglichkeit von JTL-Shop *kleiner* Version 4.02 auf Version 5.x wurde entfernt
Nutzer vorheriger Versionen (zum Beispiel Version und kleiner 3.0x) müssen auf JTL-Shop Version 4.06 aktualisieren, um von dort auf JTL-Shop Version 5.x upgraden zu können.
Das von JTL-Shop 4 bekannte Template „Evo“ wird ab JTL-Shop 5.x als separates Projekt geführt und ist nicht mehr im Lieferumfang von JTL-Shop enhalten
Sie finden das Template „Evo“ im JTL-Repository auf gitlab unter Evo <https://gitlab.com/jtl-software/jtl-shop/templates> und auf dem JTL Builds-Server unter build.jtl-shop.de <https://build.jtl-shop.de/get/template_evo-5-0-0-rc-3.zip/template>
UTF8-Migration für gesamten Onlineshop
Zur String-Manipulation werden die PHP Multibyte String Funktionen (
mb_
) empfohlen.Die Funktion
utf8_encode()
sollte in Plugins nicht mehr eingesetzt werden.Die Datenbank von JTL-Shop 5.x wurde hinsichtlich ihrer Kollationen und der jeweiligen Tabellen-Engines überarbeitet und auf UTF8 umgestellt.
default collation utf8_unicode_ci
default engine InnoDB
Darstellung und Erzeugung der Menüstruktur im Backend wurde geändert
Die dynamische Erzeugung der Menüstruktur des Backends wurde überarbeitet. Sie basiert ab JTL-Shop 5.0 nicht mehr auf Datenbanktabellen, sondern auf der Struktur in der Datei
admin/includes/admin_menu.php
.
Die Anordnung sämtlicher Menüeinträge wurde im Zuge dieser Änderung ebenfalls stark modernisiert.Mehrsprachigkeit des Backends wurde auf „gettext“ umgestellt
Die Mehrsprachigkeit aller Menüs im Backend von JTL-Shop wird ab Version 5.0 mittels gettext/gettext geregelt.
Plugins werden nicht mehr im Installationspaket ausgeliefert
Plugins werden zukünftig über den JTL-Extension Store installierbar sein.
Aus diesem Grund sind im Installationspaket des Onlineshops keine Plugins mehr enthalten.Folgende Plugins fallen ersatzlos weg:
- JTL Backend User Extension
- JTL Themebar
Werkzeuge zum Kompilieren von Themes überarbeitet
Zum Kompilieren eines eigenen Themes dient in JTL-Shop 4.x der Evo Editor
In JTL-Shop 5.x werden Themes mit dem JTL Theme Editor übersetztWeitere Informationen zur Verwendung dieser Plugins finden Sie im Abschnitt „Eigenes Theme mit dem Theme-Editor kompilieren“.
Von inländischer auf europaweite USt-ID-Prüfung umgestellt
Die bisherige Lösung zur Prüfung der Umsatzsteuer-ID (gültig nur für Deutschland) wurde ersetzt durch die EU-weite Prüfung durch das Mehrwertsteuer-Informationsaustauschsystem MIAS der Europäischen Union.
Weitere Informationen zu diesem System finden Sie unter: MIAS der EU
Tabelle `tpreise`, inkl. deren Befüllung durch dbeS, entfernt
In JTL-Shop 4.x werden aus Kompatibilitätsgründen zu JTL-Wawi 0.9 Preise redundant in mehreren Tabellen der Datenbank gehalten (
tpreise
undtpreis
/tpreisdetail
).
Diese doppelte Datenhaltung wurde in JTL-Shop 5.x entfernt. Alle Daten zu Preisen befinden sich nun ausschließlich in den Tabellentpreis
undtpreisdetail
.Einstellung „Finanzierungsvorschlag zeigen“ (1324) entfernt
Diese Einstellung wurde mit JTL-Shop 3.x im Rahmen des Finanzierungsmoduls „Dresdner Cetelem“ / „Commerz Finanz“ angelegt. Sie ist in JTL-Shop 4.x und JTL-Shop 5.x nicht mehr enthalten.
Datentyp für Mediendateien Tabs geändert
Die Artikeleigenschaft
$cMedienTyp_arr
ist in JTL-Shop 5.x nun ein Array von Arrays und nicht mehr wie bisher ein assoziatives Array.Mehrere Zahlungsart-Integrationen wurden entfernt
Die folgenden Zahlungsmodule werden von JTL im Auslieferungszustand von JTL-Shop nicht mehr angeboten und wurden aus dem Core von JTL-Shop 5.x entfernt:
- EOS
- Wirecard
- UT
- ipayment
- PaymentPartner
- PostFinance
- SafetyPay
- WorldPay
- Sofort
- Billpay
- Moneybookers
- UOS
Die alte Core-Zahlungsart „PayPal“ wurde entfernt. Das Plugin JTL PayPal wird weiterhin angeboten.
Hooks erweitert/ergänzt/entfernt
Im Zuge der hier genannten Anpassungen und Änderungen haben sich auch verschiedene Hooks des Plugin-Systems geändert, wurden ergänzt oder sind ganz weggefallen.
Eine komplette Liste aller aktuell verfügbaren Hooks und ihrer Parameter finden Sie hier in der Entwicklerdokumentation unter „Hook-Liste“.Die „Imanee Image Manipulation Lib“ wurde entfernt
Das Imanee-Projekt zur Bildbearbeitung wird vom Betreiber seit mehreren Jahren nicht mehr gewartet und wurde nun aus dem Core von JTL-Shop 5.x entfernt.
Das Feature „Produkt-Tags“ wurde entfernt
Das Produkttagging durch Kunden wird wenig genutzt und ist nicht mehr zeitgemäß.
Dieses Feature wurde mit JTL-Shop 5.x aus dem Core von JTL-Shop entfernt.Die URL-Generierung wurde überarbeitet
SEO-URLs werden nicht mehr mit der alten Funktion
iso2ascii()
behandelt, sondern erhalten zentralisiert im SEO-Helper ein eigenes Prüf- und Kodierverfahren.Die Einstellungen (1142) und (1130) für die Anzahl der Vorschaubilder bei Varkombis wurde entfernen
Aufgrund der performanteren Darstellung der Artikeldetails im NOVA-Template sind diese beiden Einstellungen überholt und wurden mit JTL-Shop 5.x aus dem Core von JTL-Shop entfernt.
Das Duplizieren von Bildern in Multilanguage-Onlineshops wurde deaktiviert
In multilingualen Onlineshops wurden bisher alle Artikelbilder pro Sprache erzeugt und geladen. Dieser Overhead an Rechenzeit und Datentransfer wird in JTL-Shop 5.x relativiert, indem nur noch ein Bildersatz in der Standardsprache vorgehalten wird.
Die fremdsprachigen Bildnamen-Attribute aus JTL-Wawi werden nicht länger berücksichtigt, da diese Attribute nur verbalen Charakter besitzen. JTL-Wawi speichert ebenfalls nur einen Bildersatz für die Standardsprache.Veraltete Module wurden entfernt
Folgende veraltete Module wurden aus dem Core von JTL-Shop entfernt:
- Preisradar
- Preisgrafik
- Umfrage
Das Widget „Do You Know“ („DUK“) wurde entfernt
Diese Features wurden bisher sehr wenig genutzt und sind nicht mehr zeitgemäß.
Sie wurden mit JTL-Shop 5.x aus dem Core von JTL-Shop entfernt.Die dynamische Preisberechnung erlaubt nun gleichbleibende Preise bei Auslandslieferungen
Die dynamische Berechnung der Nettopreise wurde in JTL-Shop 5.x in die default-Einstellungen übernommen.
Ab JTL-Shop 4.06 kann diese Berechnung mittels Konfigurationseinstellung in der
includes/config.JTL-Shop.ini.php
aktiviert werden:define('CONSISTENT_GROSS_PRICES', true);
Das Yatego-Exportformat wurde entfernt
Das veraltete und fehlerhafte Exportformat „Yatego“ wurde aus dem Core von JTL-Shop entfernt.
Zukünftig wird dieses Exportformat ggf. von Yatego selbst als Plugin zur Verfügung gestellt.
Exportformate von Drittanbietern wurden entfernt:
Folgende Exportformat von Drittanbietern wurden aus dem Core von JTL-Shop entfernt:
- Hardwareschotte
- Kelkoo
- Become Europe (become.eu)
- Europe
- Billiger
- Geizhals
- Preisauskunft
- Preistrend
- Shopboy
- Idealo
- Preisroboter
- Milando
- Channelpilot
- Preissuchmaschine
- Elm@r Produktdatei
- Yatego Neu
- LeGuide.com
- Twenga
Alte Shop3-Backend-Templates wurden entfernt
Die Unterstützung für ein separates MobileTemplate wurde entfernt
Folgende veraltete Core-Funktionalitäten wurden entfernt:
- Bilderfunktion „Hochskalieren“
- Funktion und Box „Globale Merkmale“
- VCard Upload
- Google Analytics
- News-Widget
- Kunden werben Kunden
- Alte JTL-Shop 3.0 Bilderschnittstelle
- Internes Wort-Verlinkssystem
Im meta-Tag „robots“ von Spezialseiten ist der „content“ nun auf „nofollow, noindex“ gesetzt
Aus SEO-Sicht bringt die Indexierung dieser Seitentypen keinen Mehrwert.
Liegen hier zudem Fehler in den Rechtstexten vor, kann eine Indexierung dazu führen, dass diese Seiten von Abmahn-Anwälten per Google-Suche leicht gefunden werden.Die Spezialseiten wurden daher in JTL-Shop 5.x im meta-Tag-Parameter „content“ auf „nofollow, noindex“ gesetzt.
Schnellere Versandarten werden priorisiert
Ab JTL-Shop 5.x werden Versandarten nicht nur nach ihrem Preis sortiert angezeigt.
Beispielsweise wird nun bei zwei Versandarten mit gleichem Preis die Versandart mit der niedrigeren Sortiernummer (entspricht höherer Priorität) vor der Versandart mit höherer Sortiernummer angezeigt.
Somit können Versandarten mit schnellerem Versand in der Versandartenliste höher eingeordnet werden.Konsistenzprüfung im Warenkorb
Ab JTL-Shop 4.05 wird mit Hilfe einer Checksumme eine Konsistenzprüfung im Warenkorb durchgeführt.
Weitere Informationen hierzu finden im Abschnitt „Checksumme für den Warenkorb“.Die favicon-Uploadfunktionalität wurde überarbeitet
Mit JTL-Shop 5.x wurde die Uploadfunktionalität für das Onlineshop-favicon überarbeitet.
Die folgenden Pfade zeigen die Verzeichnisse, in denen nach dem favicon gesucht wird:
(in der Reihenfolge von oben nach unten)- Frontend:
[Shop-root]/[Templates-Pfad]/themes/base/images/favicon.ico [Shop-root]/[Templates-Pfad]/favicon.ico [Shop-root]/favicon.ico [Shop-root]/favicon-default.ico
- Backend:
[Shop-root]/[admin-Pfad]/favicon.ico [Shop-root]/[admin-Pfad]/favicon-default.ico
Sobald in einem der Pfade ein favicon gefunden wird, wird die Suche beendet und das gefundene favicon verwendet.
Google Analytics Tracking wurde aus dem Core von JTL-Shop entfernt
Aufgrund umfangreicher Änderungen in „Google Analytics“ wurde die bisher im Onlineshop verwendete Implementierung (
ga.js
) aus JTL-Shop 5.x entfernt.Zukünftig kann das Tracking über gesonderte Plugins geregelt werden, die auch den jeweils aktuellen Anforderungen der DSGVO entsprechen.
Google-Recaptcha und Gravatar wurden aus dem Core von JTL-Shop entfernt
Gemäß den Anforderungen der DSGVO müssen für die Datenweitergabe an Drittanbieter jeweils gesonderte Einverständnisse von allen Endkunden eingeholt werden. Deshalb wurden diese Drittanbietermodule aus JTL-Shop 5.x entfernt.
JTL-Shop wird standardmäßig so ausgeliefert, dass keine Datenweitergabe an Drittanbieter stattfindet.
DSGVO-Konformität hergestellt
Mit Inkrafttreten der DSGVO wurden im Onlineshop mehrere Anpassungen vorgenommen.
Das Einholen der Einverständniserklärung von Endkunden für marketingrelevante E-Mails wird nun durch ein neues Double-OptIn-Interface (siehe
includes/src/Optin/
) abgedeckt.
Weiterhin wurde in JTL-Shop 5.x eine Bereinigung bzw. Verschlüsselung von personenbezogenen Daten von Endkunden implementiert (sieheincludes/src/GeneralDataProtection/
), die regelmäßig über Chronjobs getriggert wird.Kryptografische Funktionen überarbeitet
Kryptografische Funktionen wie auch Funktionen zur Generierung von IDs sind stark auf die Erzeugung von Zufallszahlen angewiesen, welche nicht immer wirklich zufällig sind, sobald sie maschinell erzeugt werden.
Die PHP-Standardfunktionen zur Erzeugung von Zufallszahlen sind hier keine Ausnahme.Um diesem Problem wirkungsvoll zu begegnen, wurden entsprechend verbesserte Bibliotheken zur Erzeugung von Zufallszahlen in JTL-Shop 5.x integriert.
Diese Überarbeitung der kryptografischen Funktionen des Onlineshops bedingte ebenso einen Austausch der Hashing-Funktionen, die vor dem Speichern von Passworten aufgerufen werden.