Verschönern Sie Ihren Kunden die Adventszeit mit täglichen Angeboten. 24 Türchen - 24 Möglichkeiten, tolle Angebote, Gewinnspiele, Rabattgutscheine oder Aktionen zu platzieren! Ihren Adventskalender können Sie beliebig befüllen.

In unserem Demoshop können Sie den WEBSALE Adventskalender in Aktion erleben.
Externer Link: WEBSALE Adventskalender

Inhalt

1 Funktionsweise

2 Integration

2.1 Adventskalender als eigene Kategorie

2.2 Adventskalender als statische Seite

 

1 Funktionsweise

Es handelt sich nicht um ein neues Feature oder Modul – es ist vielmehr ein Anwendungsbeispiel für die Darstellung von 24 Produkten in Form eines Adventskalenders.

Der Adventskalender kann entweder mit einer eigenen Kategorie oder mit einem statischen Template realisiert werden.

2 Integration

 

2.1 Adventskalender als eigene Kategorie

Schritt 1: Freischaltung/Aktivierung

Es ist keine Freischaltung/Aktivierung seitens WEBSALE nötig.

Schritt 2: Kategorie anlegen

Soll der Adventskalender über eine eigene Kategorie realisiert werden, muss diese in der Warenwirtschaft angelegt werden, z. B. "Adventskalender".

Der Kategorie muss nun ein spezielles Kategorie-Template zugewiesen werden. Alternativ kann die Anzeige über eine ST-CatIndex-Klammerung gesteuert werden.

Legen Sie ein neues Template an und speichern Sie es, z. B. unter dem Namen ws_category_adventskalender.htm, in Ihrem Template-Verzeichnis, z. B. benutzer/templates/translation.

Schritt 3: Zuweisen der 24 Produkte

Der Kategorie "Adventskalender" werden nun die gewünschten 24 Produkte zugewiesen. Jedes der Produkte ist dann ein Türchen im Kalender.

Schritt 4: Fallback für ausverkaufte Produkte (optional)

Für den Fall, dass ein Produkt im Adventskalender ausverkauft sein sollte, kann manuell ein Fallback eingebunden werden. Der Shop zeigt hinter dem betreffenden Türchen das hinterlegte Ersatzprodukt an, wenn das ursprüngliche Produkt ausverkauft ist.

Fügen Sie hierzu den folgenden Code auf dem Adventskalender-Template ein:

...
{@PR-Data}
 
   {PR-SoldOut}
      {PR-LoadData(alternative Produktnummer,1)}
      ...
      {/PR-LoadData(alternative Produktnummer,1)}
   {/PR-SoldOut}
 
{/@PR-Data}
...

Referenz: PR-SoldOut

Schritt 5: Sortierung der Produkte aufheben (optional)

Die Reihenfolge der Produkte aus der Warenwirtschaft oder aus der kommaseparierten Liste bestimmt, welches Produkt sich hinter welchem Türchen versteckt.

Damit die Reihenfolge aus der Warenwirtschaft korrekt übernommen wird, muss gegebenenfalls die Sortierung der Produkte im Shop zurückgesetzt werden. Dazu muss die Listbox statisch im Adventskalender-Template platziert werden und "Keine Sortierung" ausgewählt werden:

...
<select name="ws_catsort" id="cat_sortselect" class="form-control" style="display: none;">
   <option value="" selected>Keine Sortierung</option>
   ...
</select>
...

Wegweiser: Sortieren von Produktlisten

Schritt 6: Kalender zeitgesteuert aktivieren/deaktivieren

Soll beim Öffnen der Kalenderseite der Kalender vor dem 1. Dezember und/oder nach dem 24. Dezember nicht sichtbar sein, sondern nur ein allgemeiner Text, dann kann man dies mit Hilfe von WS-Event() steuern.

Fügen Sie hierzu den folgenden Code auf dem Adventskalender-Template ein:

...
{WS-Event(,2024-11-30-23:59)}
   <!--Timer oder Erklärungstext wann der Kalender startet und der Kunde wieder vorbeischauen soll -->
{/WS-Event(,2024-11-30-23:59,)}
...
{WS-Event(2024-12-01-00:01,2024-12-24-00:00)}
   <!-- Kalender und seine Türchen sichtbar -->
{/WS-Event(2024-12-01-00:01,2024-12-24-00:00)}
...
{WS-Event(2024-12-25-00:01,)}
   <!-- Kalender ist wieder deaktiviert - Weihnachten ist vorbei -->
{/WS-Event(2024-12-25-00:01,)}
...

Referenz: WS-Event()

Schritt 7: Design der Türchen

Das Design und die Positionierung der Türchen erfolgen über CSS.

IDs im Adventskalender-Template zuweisen

Mithilfe der Produktnummer und/oder eines Counters bekommt jedes Türchen eine ID zugewiesen.

Fügen Sie hierzu den folgenden Code auf dem Adventskalender-Template ein:

...
{@PR-Data}
 
   ~DC-Counter1_inc~
 
   <div class="tuerchen_~DC-Counter1~ id="tuerchen_~PR-Number~_~DC-Counter1~">
 
      Inhalt
 
   </div>
 
{/@PR-Data}
...

Referenz: DC-Counter1...3

CSS-Datei anpassen

Anhand der soeben zugewiesenen ID kann das Türchen mit einem weihnachtlichen Türchen-Bild versehen werden (direkt in der CSS-Datei).

Außerdem können die Türchen in einer beliebigen Reihenfolge auf der Seite platziert werden (z. B. durcheinander anstatt der Reihe nach von 1 bis 24).

Im aktuellen Design verwenden wir für das Drehen der Türchen einen CSS-Effekt namens Flipcard (https://www.w3schools.com/howto/howto_css_flip_card.asp). Es kann grundsätzlich aber jeder Effekt verwendet werden.

Schritt 8: Aktiv-/Inaktiv-Zustand der Türchen je nach Kalendertag

Die Reihenfolge der Produkte bestimmt das Türchen, d. h.

 

    Produkt 1  = Türchen 1

    Produkt 2  = Türchen 2

    Produkt 24 = Türchen 24

 

Die Zahl des Türchens entspricht dann auch dem Datum, d. h.

 

    Produkt 1  = Türchen 1  = 01.12.2024

    Produkt 2  = Türchen 2  = 02.12.2024

    Produkt 24 = Türchen 24 = 24.12.2024

 

Über einen Counter setzt man die Zahl des Türchens und diesen Counter kann man dann zum Vergleichen des aktuellen Tags verwenden, um einen Aktiv-/Inaktiv-Status bei den Türchen zu setzen.

Ergänzen Sie hierzu den folgenden, fett-markierten Code auf dem Adventskalender-Template:

...
{@PR-Data}
 
   ~DC-Counter1_inc~
 
   <div class="tuerchen_~DC-Counter1~ id="tuerchen_~PR-Number~_~DC-Counter1~">
 
      {DC-CompareStringInList($DC-DateTime_day$,$DC-Counter1$)}Aktuelles Türchen{/DC-CompareStringInList($DC-DateTime_day$,$DC-Counter1$)}"
 
      {DC-CompareDigitGT($DC-Counter2$,$DC-DateTime_day$)} Das Datum ist schon überschritten = vergangenes Türchen. {/DC-CompareDigitGT($DC-Counter2$,$DC-DateTime_day$)}
 
      {DC-CompareDigitLT($DC-Counter2$,$DC-DateTime_day$)} Das Datum ist noch nicht erreicht = zukünftiges Türchen. {/DC-CompareDigitLT($DC-Counter2$,$DC-DateTime_day$)}
 
   </div>
 
{/@PR-Data}
...

Referenz: DC-Counter1...3

Schritt 9: Öffnen der Türchen

Öffnet man ein Türchen, gelangt man zum Produkt.

Das Öffnen kann somit ein Direktlink zum Produkt sein (man verlässt das Adventskalender-Template) oder man öffnet das Produkt in einem Modal/Layer.

Referenz: PR-Link

Haben Sie alle Schritte durchgeführt, ist der Adventskalender vollständig integriert.

 

 

2.2 Adventskalender als statische Seite

Schritt 1: Freischaltung/Aktivierung

Es ist keine Freischaltung/Aktivierung seitens WEBSALE nötig.

Schritt 2: Statisches Template anlegen und Zuweisen der 24 Produkte

Soll die Darstellung über eine Informationsseite realisiert werden, muss hierzu ein Template angelegt werden, z. B. tpl_adventskalender.htm. Speichern Sie dieses Template in Ihrem Template-Verzeichnis, z. B. benutzer/templates/translation. Die Produktzuweisung erfolgt dann über eine kommaseparierte Liste von Produktnummern.

Beispiel:

In der Textpflege werden bei der Textvariable ProductsForAdventCalendar die gewünschten 24 Produkte kommasepariert eingetragen:

ProductsForAdventCalendar = 111111,111112,111113 … 111124

Auf dem Template, z. B. tpl_adventskalender.htm, wird dann für die Anzeige der Produkte folgender Code benötigt:

...
<!-- Übergabe der Produktliste an die Loop über die Textvariable  -->
~DC-DynamicLoop1_set(%%ProductsForAdventCalendar%%)~
 
<!-- Schleife über die gewünschten Produkte -->
{DC-DynamicLoop1}
  {@DC-DynamicLoop1}
     {PR-LoadData($DC-DynamicLoop1_data$,0)}
        ~PR-Name~<br>
        ~PR-Price~<br>
     {/PR-LoadData($DC-DynamicLoop1_data$,0)}
  {/@DC-DynamicLoop1}
{/DC-DynamicLoop1}
...

Referenz: DC-DynamicLoopX

Referenz: PR-LoadData()

Mithilfe der Produktnummern und den Tags DC-DynamicLoopX und PR-LoadData() werden die Produkte geladen.

Schritt 3: Kalender aktivieren/deaktivieren

Soll beim Öffnen der Kalenderseite der Kalender erst einmal nicht sichtbar sein, sondern nur ein allgemeiner Text, dann kann man dies mithilfe von WS-Event() steuern:

...
{WS-Event(,2024-11-30-23:59)}
   Timer oder Erklärungstext wann der Kalender startet und der Kunde wieder vorbeischauen soll
{/WS-Event(,2024-11-30-23:59,)}
...
{WS-Event(2024-12-01-00:01,2024-12-24-00:00)}
   Kalender und seine Türchen sichtbar
{/WS-Event(2024-12-01-00:01,2024-12-24-00:00)}
...
{WS-Event(2024-12-25-00:01,)}
   Kalender ist wieder deaktiviert - Weihnachten ist vorbei
{/WS-Event(2024-12-25-00:01,)}
...

Referenz: WS-Event()

Schritt 4: Design der Türchen

Das Design und die Positionierung der Türchen erfolgen über CSS. Mithilfe der Produktnummer und/oder eines Counters bekommt jedes Türchen eine ID zugewiesen, z. B.

...
{@DC-DynamicLoop1}
  
   {PR-LoadData($DC-DynamicLoop1_data$,0)}
   ~DC-Counter1_inc~
   ...
      <div class="tuerchen_~DC-Counter1~ id="tuerchen_~PR-Number~_~DC-Counter1~">
     
      Inhalt
 
      </div>
      ...
   {/PR-LoadData($DC-DynamicLoop1_data$,0)}
    
{/@DC-DynamicLoop1}
...

Referenz: DC-Counter1...3

Mithilfe dieser ID kann das Türchen mit einem weihnachtlichen Türchen-Bild versehen werden.

Außerdem kann es an einer beliebigen Stelle auf der Seite platziert werden, schließlich sollen die Türchen ja nicht in der Reihenfolge von 1 bis 24 dargestellt werden.

Schritt 5: Aktiv-/Inaktiv-Zustand der Türchen

Die Reihenfolge der Produkte bestimmt das Türchen, d. h.

 

    Produkt 1  = Türchen 1

    Produkt 2  = Türchen 2

    Produkt 24 = Türchen 24

 

Die Zahl des Türchens entspricht dann auch dem Datum, d. h.

 

    Produkt 1  = Türchen 1  = 01.12.2024

    Produkt 2  = Türchen 2  = 02.12.2024

    Produkt 24 = Türchen 24 = 24.12.2024

 

Über einen Counter setzt man die Zahl des Türchens und diesen Counter kann man dann zum Vergleichen des aktuellen Tags verwenden, um einen Aktiv-/Inaktiv-Status bei den Türchen zu setzen:

...
{@DC-DynamicLoop1}
 
   {PR-LoadData($DC-DynamicLoop1_data$,0)}
   ~DC-Counter1_inc~
 
      <div class="tuerchen_~DC-Counter1~ id="tuerchen_~PR-Number~_~DC-Counter1~">
    
         {DC-CompareStringInList($DC-DateTime_day$,$DC-Counter1$)}Aktuelles Türchen{/DC-CompareStringInList($DC-DateTime_day$,$DC-Counter1$)}"
    
         {DC-CompareDigitGT($DC-Counter2$,$DC-DateTime_day$)} Das Datum ist schon überschritten = vergangenes Türchen. {/DC-CompareDigitGT($DC-Counter2$,$DC-DateTime_day$)}
    
         {DC-CompareDigitLT($DC-Counter2$,$DC-DateTime_day$)} Das Datum ist noch nicht erreicht = zukünftiges Türchen. {/DC-CompareDigitLT($DC-Counter2$,$DC-DateTime_day$)}
    
      </div>
   
   {/PR-LoadData($DC-DynamicLoop1_data$,0)}
 
{/@DC-DynamicLoop1}
...

Darüber kann gesteuert werden, wie sich die Türchen verhalten sollen und wie sie aussehen sollen.

Schritt 6: Öffnen der Türchen

Öffnet man ein Türchen, gelangt man zum Produkt.

Das Öffnen kann somit ein Direktlink zum Produkt sein (man verlässt die Adventskalender-Seite) oder man öffnet das Produkt in einem Modal/Layer.

Referenz: PR-Link

Haben Sie alle Schritte durchgeführt, ist der Adventskalender vollständig integriert.