Ordnerstruktur
Im Verzeichnis Ihres Onlineshops finden Sie den Ordnertemplates, der neben allen verfügbaren Templates zwei Ordner für JavaScript enthält:
js_upload laden Sie Ihre eigenen JavaScript-Dateien per SFTP hoch. Dort bearbeiten und löschen Sie sie auch. Der Ordner js_min wird dagegen ausschließlich vom PageSpeed-Tool befüllt. Alle darin liegenden Dateien sind minimiert und mit einem URL-Fingerprinting versehen. Sie bearbeiten diese Dateien nicht selbst, da sie bei der nächsten Publizierung überschrieben werden.
Sollte diese Ordnerstruktur in Ihrem Shop noch nicht vorhanden sein, legen Sie sie bitte entsprechend an. Ohne beide Ordner kann das PageSpeed-Tool nicht arbeiten.

JavaScript-Dateien anlegen und bearbeiten
Der Mustershop enthält unterbenutzer/templates/js_upload bereits JavaScript-Dateien, die Sie als Vorlage verwenden können. Mit einem SFTP-Client laden Sie vorhandene Dateien herunter, ergänzen sie und legen sie wieder ab. Ebenso fügen Sie dem Ordner eigene Dateien hinzu.
Für den Zuschnitt der Gruppierungen hat sich eine Zweiteilung bewährt:
- eine Gruppierung mit allen global eingesetzten Bibliotheken und Skripten, die auf jeder Seite geladen wird
- weitere Gruppierungen je Einsatzzweck oder Seitentyp, die nur dort geladen werden, wo die enthaltenen Funktionen gebraucht werden
Einbinden mit dem PageSpeed-Tool (empfohlen)
Nachdem Sie Ihre Dateien per SFTP im Ordnerjs_upload bereitgestellt haben, weisen Sie sie den gewünschten Templates zu. Wir empfehlen den Weg über das PageSpeed-Tool, weil Ihr Shop dadurch die minimierten Dateien mit URL-Fingerprinting verwendet und nicht die unbearbeiteten Originale.
Der Weg besteht aus drei Schritten: Tool aktivieren, Dateien gruppieren, Gruppierung im Template einbinden.
Lassen Sie nur nicht-minimierte Dateiversionen vom PageSpeed-Tool verarbeiten. Das nochmalige Minimieren einer bereits minimierten Datei kann zu Fehlern führen.
PageSpeed-Tool aktivieren
Im OSB-Dienst “Konfiguration” ist das PageSpeed-Tool standardmäßig sichtbar und damit aktiv. Ist der Reiter bei Ihnen nicht vorhanden, wenden Sie sich an Ihren Ansprechpartner bei WEBSALE. Damit der Shop auch tatsächlich auf die erzeugten Dateien zugreift, ist zusätzlich ein Eintrag in der Shopkonfigurationshop.config nötig. Der Parameter gilt gemeinsam für CSS und JavaScript. Eine Freischaltung durch WEBSALE ist dafür nicht erforderlich, die oben beschriebene Ordnerstruktur muss allerdings vorliegen.
JavaScript-Dateien gruppieren
Eine JavaScript-Datei lässt sich über das PageSpeed-Tool nur einbinden, wenn sie einer Gruppierung zugewiesen ist. Die Gruppierung ist damit die kleinste Einheit, die der Shop später referenziert. Gruppierungen legen Sie im Online-Servicebereich (OSB) im Dienst “Konfiguration” an. Wählen Sie dort den Reiter “PageSpeed-Tool” und anschließend den Reiter “JS”. In der linken Spalte unter der Überschrift “Gruppierungen” legen Sie beliebig viele seiten- oder themenspezifische Gruppierungen an. Jede Gruppierung erhält beim Anlegen eine frei wählbare Gruppierungs-ID. In den Beispielen auf dieser Seite lautet diese IDstart.
Die rechte Spalte ist zweigeteilt:
- Unter “Ihre JavaScript-Bibliotheken” stehen alle Dateien, die Sie per SFTP im Ordner
js_uploadbereitgestellt haben. Fehlt eine gerade hochgeladene Datei, klicken Sie auf das Aktualisieren-Symbol. - Unter “WEBSALE JavaScript Bibliothek” stehen alle von WEBSALE V8s bereitgestellten Skripte. Diese laden Sie nicht selbst hoch, sie sind bereits auf dem Server vorhanden.
js_min. Jeder weitere Klick auf das Weltkugel-Icon erzeugt eine neue Version, sofern Sie inhaltliche Änderungen vorgenommen haben.
Gruppierung als ausgelagerte JavaScript-Datei einbinden
Eine ausgelagerte JavaScript-Datei hat einen entscheidenden Vorteil: Sie wird von mehreren Templates verwendet, muss vom Browser aber nur einmal geladen werden. Für jede Gruppierungs-ID erzeugt das PageSpeed-Tool bereits eine solche Datei. Sie binden sie mit dem HTML-Elementscript an einer beliebigen Stelle Ihres Templates ein. Den Pfad liefert das Tag WS-JSURL(), in dessen Klammern Sie die Gruppierungs-ID angeben.
Beispiel: Die Gruppierung start soll im <head> des Templates eingebunden werden.
753e2835a4 ist das URL-Fingerprinting. Er ändert sich mit jeder neuen Version der Gruppierung.
Referenz: WS-JSURL()
Gruppierung inline einbinden
JavaScript-Funktionen müssen nicht zwingend über eine externe Datei eingebunden werden. Sie lassen sich auch direkt in die HTML-Seite schreiben. Das ist der richtige Weg, wenn Ihr Skript WEBSALE-Tags oder Textvariablen enthält. Der Nachteil der klassischen Inline-Einbindung entfällt dabei. Sie pflegen die Funktion weiterhin zentral in einer Datei im Ordnerjs_upload und nicht auf jeder einzelnen Seite. Das PageSpeed-Tool setzt den Inhalt beim Seitenaufbau ein.
Den Inhalt aller Dateien einer Gruppierung liefert das Tag WS-JSInline(), in dessen Klammern Sie die Gruppierungs-ID angeben.
Beispiel: Die Skripte der Gruppierung start sollen inline innerhalb des <body> eingebunden werden.
Direktzugriff während der Designphase
Beim Einbinden über das PageSpeed-Tool werden Änderungen an JavaScript-Dateien erst nach einem Klick auf das Weltkugel-Icon sichtbar. Beim Aufbau eines neuen Shops ist dieser Zwischenschritt aufwendig, weil er sich bei jeder Korrektur wiederholt. Für diesen Fall gibt es den Direktzugriff. Der Shop greift dabei nicht auf die generierten Dateien im Ordnerjs_min zu, sondern auf die originalen Dateien im Ordner js_upload, die der Gruppierung zugewiesen sind. Änderungen sind damit sofort nach dem Hochladen und einem Neuladen im Browser sichtbar.
Der Direktzugriff besteht aus zwei Teilen. Erstens einer Einstellung in der Shopkonfiguration shop.config, die festlegt, wann der Modus greift. Zweitens einer Klammerung im Template, die beide Fälle abdeckt. Die Einstellung gilt gemeinsam für CSS und JavaScript.
Permanenter Direktzugriff
Mit der folgenden Einstellung greift der Shop dauerhaft auf die Originaldateien zu. Diese Einstellung empfiehlt sich, solange Sie einen Shop aufbauen und häufig Änderungen vornehmen.Direktzugriff nur auf Abruf
Mit dem Wertno ist der permanente Direktzugriff deaktiviert. Der Shop greift dann nur auf die Originaldateien zu, wenn Sie ihn mit dem Parameter &jscssdirect-test=on aufrufen. Mit &jscssdirect-test=off kehrt er zu den Dateien im Ordner js_min zurück.
Beispiel: ausgelagerte JavaScript-Datei im Direktzugriff
Im Direktzugriff liefert der Shop jede Datei der Gruppierung einzeln aus, nicht eine zusammengefasste Datei. Das Template muss deshalb über alle Dateien der Gruppierung laufen. Dafür gibt es die KlammerungWS-DirectJS() mit der Gruppierungs-ID und darin die Schleife @WS-DirectJS, die pro Durchlauf über WS-DirectJSURL den Pfad einer Datei liefert.
Damit das Template in beiden Zuständen funktioniert, umschließt die Klammerung ST-DirectJSCSSTest den Direktzugriff-Fall und !ST-DirectJSCSSTest den Normalfall.
Beispiel: Der Gruppierung start sind die beiden Dateien ws-module-bootstrap-ajaxmodal.js und ws-module-bootstrap-fillstars.js zugewiesen.
Beispiel: Inline-Einbindung im Direktzugriff
Auch inline eingebundene Skripte lassen sich im Direktzugriff verwenden. Statt des Pfads liefertWS-DirectJSInline hier den Inhalt der jeweiligen Datei.
Beispiel: Der Gruppierung start sind dieselben beiden Dateien zugewiesen.
Neue Gruppierungen im Design-Testmodus erproben
Eine neue Gruppierung muss nicht sofort im Livemodus eingebaut werden. Für alle beschriebenen Integrationsvarianten steht Ihnen die KlammerungST-DesignTest zur Verfügung. Damit sehen nur Sie im Design-Testmodus die neue Zuweisung, während Besucher weiterhin die bisherige Fassung erhalten.
Debug-Modus für die Fehlersuche im Browser
Greifen die JavaScript-Anweisungen nicht wie gewünscht, ist die Fehlersuche in einer minimierten Datei mühsam. Deshalb können Sie die Einbindung der minimierten Datei per Aufruf unterdrücken und stattdessen die nicht-minimierte Fassung im Browser verwenden. Das PageSpeed-Tool legt diese Fassung zeitgleich mit der minimierten Datei im Ordnerjs_min ab.
Binden Sie Ihre Dateien per Direktzugriff ein, brauchen Sie diesen Modus nicht. Der Browser erhält dort ohnehin die nicht-minimierten Originale.
Hängen Sie zum Aktivieren an einen beliebigen Shop-Aufruf den Parameter &jscssminified-test=off an. Der Shop muss sich dafür im Testmodus befinden.
.min im Dateinamen:
&jscssminified-test=on kehren Sie zu den minimierten Dateien zurück:
Migration auf das PageSpeed-Tool
Betreiben Sie bereits einen Shop, der seine JavaScript-Dateien ohne PageSpeed-Tool einbindet, führt Sie ein eigener Leitfaden durch die Umstellung. Materialien: Leitfaden Umstellung auf PageSpeed-ToolEinbinden ohne PageSpeed-Tool
Die Nutzung des PageSpeed-Tools ist in WEBSALE V8s nicht zwingend. Sie können JavaScript-Dateien auch über einen relativen Pfad in jedes Template einbinden oder Skripte direkt im Template notieren. Dieser Weg ist einfacher, verzichtet aber auf Minimierung und URL-Fingerprinting. Bei der Einbindung über einen relativen Pfad ist dasbase-Element zu beachten. Es legt die Basis für alle relativen Verweise fest und zeigt in der Regel auf das Subshop-Templateverzeichnis, beispielsweise benutzer/templates/Deutsch.
WEBSALE JavaScript-Bibliothek
Mit der WEBSALE JavaScript-Bibliothek stellt Ihnen WEBSALE V8s alle JavaScript-Plugins zur Verfügung, die für die Standard-Shop-Funktionen benötigt werden. Sie müssen diese Funktionen also nicht selbst nachbauen. Es gibt drei Ausbaustufen, die sich im Umfang unterscheiden. Welche für Sie passt, hängt davon ab, wie viel Sie selbst mitbringen wollen:Das Grundmuster: Modul-Komponente und Design-Komponente
Alle drei Ausbaustufen folgen demselben Muster aus zwei Teilen. Wenn Sie dieses Muster einmal verstanden haben, gilt es für jede Bibliothek und jedes Modul gleichermaßen. Die Modul-Komponente ist eine zentrale, shopübergreifende Datei auf dem WEBSALE-Server. Sie enthält die eigentliche Funktion. WEBSALE wartet und aktualisiert sie laufend, deshalb laden Sie sie nicht herunter und legen sie auch nicht in Ihrem Shopverzeichnis ab. Im PageSpeed-Tool steht sie unter “WEBSALE JavaScript Bibliothek” bereit. Ohne PageSpeed-Tool binden Sie sie direkt über ihren festen Pfad ein:js_upload ab. Anschließend steht sie im PageSpeed-Tool unter “Ihre JavaScript-Bibliotheken” bereit.
ws-. Verwenden Sie dieses Präfix nicht für eigene Funktionen und Variablen, solange Sie die WEBSALE JavaScript-Bibliothek einsetzen.
Systembibliothek und Design-Komponente
Die WEBSALE Systembibliothek ist das große Komplett-Paket. Sie enthält das JavaScript-Framework jQuery, das jQuery-Plugin Colorbox sowie alle WEBSALE-eigenen Funktionen für Features, die JavaScript oder AJAX verwenden. Sie ist bereits komprimiert, was das Transfervolumen senkt und die Ladezeit verkürzt. Da alle Module in einer Datei liegen, brauchen Sie nicht für jede Funktion eine eigene Datei. Beides kann sich positiv auf Ihr Ranking auswirken. Die passende Design-Komponente wird bei der Bereitstellung eines Shops auf Wunsch automatisch mitgeliefert. Sprechen Sie dazu Ihren WEBSALE Ansprechpartner an. Mit PageSpeed-Tool (empfohlen): Die Systembibliothek steht im OSB unter “WEBSALE JavaScript Bibliothek” bereit und wird per Drag-and-drop einer Gruppierung zugewiesen. Über einen Klick auf den Dateinamen sehen Sie den Inhalt der Datei ein. Die Design-Komponente laden Sie herunter, passen sie an und legen sie injs_upload ab, danach weisen Sie auch sie einer Gruppierung zu. Die Einbindung im Template erfolgt anschließend wie im Abschnitt “Einbinden mit dem PageSpeed-Tool” beschrieben.
js_upload.
Core-Bibliothek und Design-Komponente
Die WEBSALE Core-Bibliothek ist das kleine Komplett-Paket. Im Unterschied zur Systembibliothek enthält sie weder jQuery noch Colorbox, sondern ausschließlich die WEBSALE-spezifischen Funktionen. Der Vorteil: Sie können Ihre eigene jQuery-Version einsetzen und sind nicht an die von WEBSALE ausgelieferte gebunden. Welche jQuery-Bibliotheken und Plugins zwingend nötig sind, steht als Kommentar in der Core-Bibliothek. Die Core-Bibliothek steht ab Version 1.8.2 zur Verfügung. Wie die Systembibliothek ist sie eine zentrale Systemkomponente, die WEBSALE laufend wartet. Sie muss deshalb nicht heruntergeladen und nicht im Shopverzeichnis gespeichert werden. Auch sie benötigt eine Design-Komponente. Weil jQuery fehlt, kommt ein Schritt hinzu: Laden Sie zuerst Ihre gewünschte jQuery-Bibliothek herunter und legen Sie sie im Ordnerjs_upload ab. Ohne geladenes jQuery funktionieren die WEBSALE-Funktionen nicht.
Quelle (externer Link): jQuery
Mit PageSpeed-Tool (empfohlen): Weisen Sie zuerst die jQuery-Bibliothek, dann die Core-Bibliothek aus “WEBSALE JavaScript Bibliothek” und zuletzt Ihre angepasste Design-Komponente aus “Ihre JavaScript-Bibliotheken” einer Gruppierung zu. Die Einbindung im Template erfolgt anschließend wie im Abschnitt “Einbinden mit dem PageSpeed-Tool” beschrieben.
Ohne PageSpeed-Tool: Binden Sie die drei Bestandteile in dieser Reihenfolge in das Template ein.
WS-Module
Die WEBSALE WS-Module sind einzelne Funktionen, die aus der Systembibliothek herausgelöst wurden und als eigenständige Dateien zur Verfügung stehen. Erkennbar sind sie am Präfixws-module-. Weder die Systembibliothek noch die Core-Bibliothek werden dafür benötigt.
Der Sinn dieser Aufteilung ist die Datenmenge. Wenn Ihr Shop nur zwei der Funktionen braucht, laden Besucher auch nur diese beiden Dateien statt der kompletten Bibliothek.
Verfügbar sind derzeit folgende Module:
- Basic-Komponente (Voraussetzung)
- Abhängige Varianten per AJAX nachladen
- Econda Cross Sell
- Eingabeabhängige Adressdatensteuerung
- Nachladen von Templates per AJAX
- Produkte per AJAX auf die Merkliste setzen
- Produkte per AJAX in den Warenkorb legen
- Produktempfehlungsfunktion per AJAX
- Produktvergleich
- SEO-Content für Produkte
- Web-to-Print
- Link-Shortener
- Passwortchecker (“Passwortampel”)
Tracking-Datei (ws_analyse.js)
Die Tracking-Dateiws_analyse.js ist Bestandteil der WEBSALE V8s Tracking-Schnittstelle. Klassisch fasst sie die Tracking-Skripte aller Anbieter an einer Stelle zusammen.
In Verbindung mit dem PageSpeed-Tool entfällt diese Datei. Stattdessen legen Sie jedes Tracking-Skript als eigene Datei im Ordner js_upload ab und weisen alle einer gemeinsamen Gruppierung zu. Diese Gruppierung binden Sie dann an der gewünschten Stelle auf allen Seiten ein. Der Vorteil gegenüber der Sammeldatei ist derselbe wie bei allen Gruppierungen: Die Skripte werden minimiert und mit URL-Fingerprinting ausgeliefert.
Wegweiser: Tracking-Schnittstelle
Hinweise zu jQuery-Bibliotheken
Die im Mustershop bereitgestellte jQuery-Bibliothek istjquery-2.2.2.min.js. Von einer Änderung dieser Datei ist abzuraten, weil Sie damit die Update- und Kompatibilitätsfähigkeit von jQuery verlieren.
Grundsätzlich ist jQuery abwärtskompatibel. In der Regel profitieren Sie von einem Update der jQuery-Datei also von Erweiterungen und Bugfixes, ohne Ihre eigenen Skripte anpassen zu müssen. Prüfen Sie vor einem Update dennoch die Versionshinweise des Herstellers, um auf Änderungen reagieren zu können, die Ihren Code betreffen.
Quelle (externer Link): jQuery
