Eigenen Javascript Code ausführen: OSS Frontend Events

Geändert am Fr, 13 Jun um 2:49 NACHMITTAGS


Seit der Version 1.10.3 kannst du nun mit eigenen Eventhandlern auf die Lieferlandauswahl deiner Shopbesucher reagieren.


Dadurch kannst du Inhalte dynamisch anpassen, spezielle Hinweise einblenden oder individuelle Prozesse anstoßen, um die Benutzererfahrung noch gezielter und flexibler zu gestalten


Anleitung


Um auf unsere definierten Events 

  • "ws5_oss_countryChanged"
  • "ws5_oss_userCountryInitial"
  • "ws5_oss_userCountry

zuzugreifen, kannst du an beliebigen Stellen deines Templates eigenen Javascript-Quellcode hinzufügen. 


Wie das genau geht kannst du auch hier nachlesen: https://jtl-devguide.readthedocs.io/projects/jtl-shop/de/latest/shop_templates/eigenes_template.html unter "Eigene Skripte nachladen" und "Änderungen an Template Dateien".


Nach Auswahl des Landes durch den Kunden: ws5_oss_countryChanged


Das Event wird immer dann geworfen, wenn der Shopbesucher ein Lieferland ausgewählt hat. Durch einen Event-Listener kannst du auf das Event hören und mittels "event.detail.country" kannst du auf den ISO-Code des von dem Benutzer ausgewählten Lieferlandes zugreifen. 


Im Event-Listener selber kannst du dann beliebigen Javascript-Code ausführen. Dieser wird jeweils dann ausgeführt, wenn der Benutzer ein Land ausgewählt hat (und akzeptiert hat, falls die Bestätigung durch den Button aktiviert ist).


Hier ist ein Beispiel dazu:

document.addEventListener(
  "ws5_oss_countryChanged",
  (event) => {
    console.log("Country changed to " + event.detail.country);
    
    // TODO: eigener Code (event.detail.country enhält das aktuelle Land)
    
    // Beispiel: Umleitung auf Website anhand des Landes
    if (event.detail.country === "DE") {
      window.location.replace("https://DEUSTCHE-SHOP-SEITE.de");
    }
  },
  false,
)

Hier ein erweitertes Beispiel mit Bestätigung bevor der Kunde weitergeleitet wird:

document.addEventListener(
  "ws5_oss_countryChanged",
  (event) => {
    console.log("Country changed to " + event.detail.country);
    
    // Umleitung auf deutschen Shop
    if (event.detail.country === "DE") {
      const userConfirmed = confirm(
        "Wollen Sie auf die deutsche Variante des Shops weitergeleitet werden?",
      );

      if (userConfirmed) {
        window.location.replace("https://DEUSTCHE-SHOP-SEITE.de");
      }
    }
    
  },
  false,
);


Beim ersten Seitenladen: ws5_oss_userCountryInitial


Das Event wird beim aller ersten Laden des Shops geworfen und danach dann nicht mehr. Mittels "event.detail.country" kannst du dann auf den ISO-Code des für den Benutzer vorausgewählten Lieferlandes (z.B. ermittelt durch den Geoservice) zugreifen. 

Im Event-Listener selber kannst du dann erneut beliebigen Javascript-Code ausführen. 


Hier ist ein Beispiel dazu:

document.addEventListener(
  "ws5_oss_userCountryInitial",
  (event) => {
    console.log("Preselected country " + event.detail.country);
    
    // TODO: eigener Code (event.detail.country enhält das aktuelle Land)
    
    // Beispiel: Umleitung auf Website anhand des Landes
    if (event.detail.country === "DE") {
      window.location.replace("https://DEUSTCHE-SHOP-SEITE.de");
    }
  },
  false,
)



Bei jedem anderen Seitenladen: ws5_oss_userCountry


Das Event wird bei allen anderen Seitenaufrufen geworfen (aber nicht beim aller ersten Seitenladen) und mittels "event.detail.country" kannst dann auf den ISO-Code des aktuellen Lieferlandes zugreifen.


Im Event-Listener selber kannst du dann, wie bei den vorherigen Events, beliebigen Javascript-Code ausführen.


Hier ist ein Beispiel dazu:

document.addEventListener(
  "ws5_oss_userCountry",
  (event) => {
    console.log("Current country " + event.detail.country);
    
    // TODO: eigener Code (event.detail.country enhält das aktuelle Land)
    
    // Beispiel: Umleitung auf Website anhand des Landes
    if (event.detail.country === "DE") {
      window.location.replace("https://DEUSTCHE-SHOP-SEITE.de");
    }
  },
  false,
)



Tags: