> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Template-Migration

> Hilfe für den Umstieg von V8-Templates auf die neue Template Engine: typische Funktionen, Module und Muster gegenübergestellt für eine sichere Migration.

Die Template Engine dieser Version unterscheidet sich grundlegend von der bisherigen Implementierung in WEBSALE V8s. Diese Seite soll Agenturen, Template Managern und Entwicklern beim Umstieg unterstützen, indem typische Funktionen und Muster aus V8 den entsprechenden Konzepten dieser Version gegenübergestellt werden.

Ziel ist es, sich in der neuen Struktur schneller zurechtzufinden und bestehende Implementierungen gezielt zu migrieren, statt jede Stelle „neu zu erfinden“.

***

## Address

* Kundenkonto-Informationen werden über das Modul [\$wsAccount](/frontend/referenz/module/wsAccount) geladen
* Adressinformationen innerhalb des Bestellablaufes werden zudem über das Modul [\$wsCheckout](/frontend/referenz/module/wscheckout) geladen, z.B. gewählte Lieferadresse, gewählte Rechnungsadresse etc.

## Basics

* Vergleich Einzeltag, Schleife, Bereichstag, negativer Bereichstag im Vergleich zu V8:
  * `~Einzeltag~` → (VX-Pendant ergänzen)
  * `{@Tag}` → `foreach`
  * `{Positiver Bereich} … {/Positiver Bereich}`
  * `{!Negativer Bereich} … {/!Negativer Bereich}`

## Basket

* Der Warenkorb wird über das Modul [\$wsBasket](/frontend/referenz/module/wsbasket) geladen

## Breadcrumb

* Der Breadcrumb wird über das Modul [\$wsNavigation](/frontend/referenz/module/wsnavigation) geladen

## Category

* Kategorien und somit auch die Navigation wird über das Modul [\$wsCategories](/frontend/referenz/module/wscategories) geladen

## DesignControl-Tags

* Die Funktionen der DesignControl-Tags stehen über die [Funktionen](/frontend/referenz/funktionen) und [Modifiers](/frontend/referenz/modifiers) zur Verfügung

## Encoding

* Zeichensatz geändert von `iso 8859-1` auf `utf-8`.
* `iso XXXX-X` wird nicht mehr unterstützt / wurde komplett entfernt.

## Forms

* Shop-Aktionen, wie Rechnungsadresse speichern, Login etc. werden weiterhin über Formen `<form>` realsiert. Dafür stellt die neue Version [Aktionen](/frontend/referenz/aktionen) zur Verfügung.
* Statt Form-Tags, die der `<form>` im Element `action=""` mitgegen wurden, wird jetzt das gewünschte Template mittels `{{= $wsViews.current.url() }}` oder `{{= $wsViews.viewUrl('login.htm')}}` mitgegeben, z.B.
  * `<form action="~FORM-Basket~" method="post">`
    * jetzt
  * `<form action="{{= $wsViews.current.url() }}" method="post">`
    * oder
  * `<form action="{{= $wsViews.viewUrl('basekt.htm')}}" method="post">`

## HTML-Comment

* Anstelle von `WS-TplComment` wird jetzt verwendet: `{{ # Dein Kommentar # }}`

## Inventory

* Bestandsinformationen werden über das Modul [\$wsInventory](/frontend/referenz/module/wsinventory) geladen
* Bevor Bestandsinformationen angezeigt werden, müssen sie geladen werden mit, z.B. mit\
  `{{ var $myVariableForInventoryInfo = $wsInventory.load($product.id) }}`
* `PR-Inventory` wird jetzt aufgebaut mit `{{ if $myVariableForInventoryInfo.active }}`
* `PR-InventoryState()` wird jetzt abgebildet über:
  * `{{= $myVariableForInventoryInfo.state }}` und
  * `{{ switch $myVariableForInventoryInfo.state }}` mit den jeweiligen `{{ case "xxx"}}`-Blöcken

## Links

* Sämtliche Seiten-Verlinkungen werden über das Modul [\$wsViews](/frontend/referenz/module/wsviews) realisiert, z.B.
  * `URL-Homepage` -> `{{= $wsViews.host }}`
  * `WS-LoadTpl(your-template.htm)` ->`{{= $wsViews.viewUrl('your-template.htm')}}`
  * `WS-SSLLoadTpl()` → `{{= $wsViews.viewUrl('your-template.htm')}}`
* Das schließt auch Verlinkungen wie zur Warenkorbseite, Merkliste, Login etc. sein, für die es in der V8s eigene Link-Tags gab, z.B.
  * `WS-BasketLink` → `{{= $wsViews.viewUrl('basket.htm')}}`
  * `WS-MemoListLink` → `{{= $wsViews.viewUrl('memolist.htm')}}`
  * `WS-LoginLink` → `{{= $wsViews.viewUrl('login.htm')}}`
  * `WS-LogoutLink` → `{{= $wsViews.viewUrl('logout.htm')}}`
  * `WS-UserAccountLink` -> `{{= $wsViews.viewUrl('account.htm')}}`

## Login

* Kundenkonto-Informationen werden über das Modul [\$wsAccount](/frontend/referenz/module/wsAccount) geladen
* `WS-LoginLink` wird jetzt umgesetzt mit `{{= $wsViews.viewUrl('your-file.htm')}}`
* `ST-LoggedIn` wird jetzt geprüft mit `{{ if $wsAccount.isLoggedIn }}`

## Logout

* Kundenkonto-Informationen werden über das Modul [\$wsAccount](/frontend/referenz/module/wsAccount) geladen
* `WS-LogoutLink` wird jetzt umgesetzt mit `{{= $wsActions.url('Logout', $wsViews.viewUrl('logout.htm'), {})}}`

## Memolist

* Die Merkliste wird über das Modul [\$wsWatchList](/frontend/referenz/module/wswatchlist) geladen
* `ST-MemoList_OK` wird jetzt geprüft mit `{{ if $wsWatchList.items }} ... {{ /if }}`
* `WS-MemoListEntries` wird jetzt dargestellt mit `{{= $wsWatchList.items | len }}`

## Meta-Tags

* `<base href="...">` wird nicht mehr benötigt
* Die Funktion `{{=static('')}}` enthält die Basis-Verzeichnisinformation.
* `WS-RobotCanonical` wird jetzt aufgebaut mit `{{= $wsViews.host }}` und `{{= $wsViews.current.url() }}`

## Payments

* Übersicht aller konfigurierten Zahlarten
  * statt `TAC-P-Data` jetzt `{{ foreach $myVariableForAllPayments in $wsConfig.payments }}`
* Zahlungsarten innerhalb des Bestellablaufes werden zudem über das Modul [\$wsCheckout](/frontend/referenz/module/wscheckout) geladen, z.B. gewählte Zahlungsart

## Products

* Produkt-Informationen werden über das Modul [\$wsProducts](/frontend/referenz/module/wsproducts) geladen

## Search

* Umsetzung aller Such- und Filterfunktionen erfolgt über das Suchmodul [WEBSALE Search](https://websale.atlassian.net/wiki/spaces/Doku/pages/2913992717/WEBSALE+search)

## ShippingMethod

* Statt “deliverer” und “delivery” verwenden wir jetzt “shipping” und “shippingMethods”
* Übersicht aller konfigurierten Lieferarten
  * statt `TAC-D-Data` jetzt `{{ foreach $yVariableForAllShippings in $wsConfig.shippingMethods }}`
* Versandinformationen innerhalb des Bestellablaufes werden zudem über das Modul [\$wsCheckout](/frontend/referenz/module/wscheckout) geladen, z.B. gewählte Versandart

## Useraccount

* Kundenkonto-Informationen werden über das Modul [\$wsAccount](/frontend/referenz/module/wsAccount) geladen
* `WS-UserAccountLink` -> `{{= $wsViews.viewUrl('account.htm')}}`
