Module
Folgende Module sind relevant für die Integration von Scan & Order:- $wsViews - aktuelle URL, Zielseiten, View-URLs
Frontend-Integration
Abhängigkeiten
Der Scanner basiert auf der Open-Source-Bibliothek html5-qrcode. Die Dateihtml5-qrcode.min.js wird im Verzeichnis scripts/ abgelegt und erst beim Öffnen des Scanners per Lazy-Load eingebunden.
QR-Button im Suchfeld
Der Button wird direkt vor dem Suchfeld innerhalb der Komponentews-search-box platziert und öffnet den Scanner. Er erscheint, je nach Endgerät, an folgenden Stellen:
- in der Desktop-Suchleiste des Headers

- im mobilen Offcanvas-Navigationsmenü

Die Einbindung in den Header erfolgt über die Datei
components/layout/header.htm:
Der Button muss sowohl im Desktop-Header als auch im mobilen Offcanvas-Menü identisch platziert werden. Mithilfe des Attributs
aria-label=%QRCodeBtnTitle% werden die Shop-Textbausteine für die Barrierefreiheit benutzt.Modal-Fenster
Das Vollbild-Modal wird einmalig im Basis-Layout eingefügt. Der Bereich #wsQRScanner ist dafür zuständig, dass die Kameravorschau von HTML5-QR-Code angezeigt wird.
Die Einbindung erfolgt über die Datei layouts/default.htm :
JavaScript-Konstante
Der Pfad zur Bibliothek wird im{{ autoescape "js" }} -Block der Layout-Datei layouts/default.htm als JavaScript-Variable gesetzt.
Scanner-Logik
Der folgende Code-Block ist in die Dateiscripts/wsGlobal.js einzufügen. Der Ablauf ist wie folgt:
- Beim ersten Öffnen des Scanners wird
html5-qrcode.min.jsnachgeladen. - War die Bibliothek bereits geladen, wird der Scanner direkt über
wsInitQRScan()gestartet. html5-qrcodestartet die Kamera und zeigt die Vorschau im#wsQRScanner-Bereich an.- Nach erfolgreichem Scan leiten URL-Codes direkt zur gescannten URL weiter - Barcodes legen das Produkt mit der gescannten ID direkt in den Warenkorb.
- Beim Schließen des Fensters wird die Kamera gestoppt.
Weiterführende Links
- html5-qrcode auf GitHub - Dokumentation und Konfigurationsoptionen der Scanner-Bibliothek
