Skip to main content

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.

In diesem Abschnitt werden die verfügbaren Variablen und Methoden des $wsAccount Moduls beschrieben, mit denen Sie Account- und Adressdaten dynamisch im Frontend verwenden können. Kundendaten bilden die Grundlage für eine personalisierte Nutzererfahrung im Shop. Sie ermöglichen es, wichtige Informationen wie die Adressdaten und das Kundenprofil des eingeloggten Benutzers abzurufen und im Kundenkonto übersichtlich darzustellen. In diesem Abschnitt erfahren Sie, wie Sie auf die Daten eines Kundenkontos zugreifen und diese dynamisch im Frontend anzeigen können.

Modulübersicht

Beispiel / Ausschnitt über $wsAccount
{{= $wsAccount | json }}
JSON-Ausgabe
{
  "addressFields": [...],
  "addresses": [...],
  "autoLogInRestriction": "...",
  "backInStockList": [...],
  "customerData": { ... },
  "defaultBillAddress": { ... },
  "defaultDeliveryAddress": { ... },
  "displayName": "...",
  "email": "...",
  "id": "...",
  "isAccountVerified": true/false,
  "isAutoLogInRestricted": true/false,
  "isAutoLoggedIn": true/false,
  "isLoggedIn": true/false,
  "isPasswordResetRequired": true/false,
  "lastLogin": "...",
  "loadAddress": "ƒ()",
  "loginRequired": "ƒ()",
  "pseudoCreditCards": [...],
  "typeSeparation": { ... }
}
Anmerkung: “f()” kennzeichnet eine Funktion. Variablen und Methoden in der Übersicht
NameRückgabe-TypBeschreibung
addressFieldsarrayGibt eine Liste aller verfügbaren Adressfelder mit deren Konfiguration zurück.
emailstringGibt die E-Mail-Adresse des Kundenkontos zurück.
idstringGibt die Nutzer-ID des Kundenkontos zurück.
isAccountVerifiedboolGibt zurück, ob das Kundenkonto verifiziert wurde.
isLoggedInboolGibt zurück, ob der Nutzer eingeloggt ist.
isAutoLoggedInboolGibt zurück, ob der Nutzer automatisch eingeloggt wurde.
isAutoLoginRestrictedboolGibt zurück, ob beim automatischen Einloggen alle Shop-Funktionen verfügbar sind.
autoLoginRestrictionstringGibt den Status der Auto-Login-Einschränkung zurück.
backInStockListarrayGibt eine Liste der Produkte zurück, für die der Kunde eine Benachrichtigung bei Verfügbarkeit angefordert hat.
lastLoginstringGibt das Datum des letzten Logins zurück.
isPasswordResetRequiredboolGibt zurück, ob das Passwort zurückgesetzt werden muss.
customerDatamapGibt Informationen zu kundenspezifischen Feldern zurück (z.B. Label, Typ).
displayNamestringGibt den Anzeigenamen des Kunden zurück.
addressesmapGibt eine Liste der gespeicherten Adressen zurück.
mainAddressstringGibt die Hauptadresse / Rechnungsadresse zurück.
pseudoCreditCardsarrayGibt eine Liste der gespeicherten Kreditkarten (pseudonymisiert) zurück.
typeSeparationmapGibt Informationen zur Adresstyp-Trennung aus.
defaultBillAddressmapGibt die Haupt-Rechnungsadresse aus.
defaultDeliveryAddressmapGibt die Standard-Lieferadresse aus.
loadAddress()mapLädt entweder die gewählte Liefer-/Rechnungsadresse oder eine Adresse anhand einer ID.
loginRequired()boolGibt einen true / false Wert zurück, wenn der Nutzer für die angegebene Aktion angemeldet sein muss.

Templates

Grundsätzlich können die Daten eines Kunden, nachdem er eingeloggt ist, auf jedem Template geladen und angezeigt werden. Im Standard-Ausliefershop befinden sich die Templates für die Kundenkonto-Seiten im Verzeichnis: views/account. Diese Templates dienen als Grundlage zur Anzeige und Bearbeitung der Kundendaten. Die Daten können je nach Bedarf auch auf anderen Templates genutzt werden, sofern der Benutzer eingeloggt ist.

Variablen

$wsAccount.email

Gibt die E-Mail-Adresse des Kundenkontos zurück. Beispiel, das prüft, ob es sich um eine Gast-Mailadresse oder eine E-Mail-Adresse eines Kundenkontos handelt.
{{ if $wsCheckout.guestMail }}
  {{= $wsCheckout.guestMail }}  
{{ else }}
  {{= $wsAccount.email }}  
{{ /if }}

$wsAccount.id

Gibt die Nutzer-ID des Kundenkontos zurück.
Nutzer-ID: {{= $wsAccount.id }}

$wsAccount.displayName

Gibt den Anzeigenamen des Kunden zurück.
Anzeigename: {{= $wsAccount.displayName }}

$wsAccount.isLoggedIn

Gibt zurück, ob der Nutzer eingeloggt ist.
{{ if $wsAccount.isLoggedIn }}
  // Kunde ist eingeloggt.
{{ else }}
  // Kunde ist noch nicht eingeloggt.
{{ /if }}

$wsAccount.isAutoLoggedIn

Gibt zurück, ob der Nutzer automatisch eingeloggt wurde.
{{ if $wsAccount.isAutoLoggedIn }}
  //Nutzer wurde automatisch eingeloggt
{{ /if }}

$wsAccount.isAutoLogInRestricted

Gibt zurück, ob beim automatischen Einloggen alle Shop-Funktionen verfügbar sind. Mehr dazu in der Konfiguration.
{{ if $wsAccount.isAutoLogInRestricted }}
  // Es sind nicht alle Shop-Funktionen verfügbar
{{ /if  }}

$wsAccount.autoLogInRestriction

Gibt zurück, ob isAutoLogInRestricted aktiviert ist. Mehr dazu in der Konfiguration. Beispiel, das prüft, ob autoLogInRestriction aktiv ist.
{{ if $wsAccount.autoLogInRestriction }}
  AutoLogInRestricted ist aktiviert.
{{ /if }}

$wsAccount.lastLogin

Gibt das Datum des letzten Logins zurück. Beispiel, das prüft, ob ein letzter Login registriert ist.
{ if $wsAccount.lastLogin }}
  // Ein letzter Login ist registriert.
{ /if }

$wsAccount.isPasswordResetRequired

Gibt zurück, ob das Passwort zurückgesetzt werden muss. Mehr dazu in der Konfiguration. Beispiel, das prüft, ob das Passwort zurückgesetzt werden muss.
{{ if $wsAccount.isPasswordResetRequired }}
  Passwort muss zurückgesetzt werden.
{{ /if }}

$wsAccount.isAccountVerified

Gibt zurück, ob das Kundenkonto verifiziert wurde.
{{ if $wsAccount.isAccountVerified }}
    // Konto ist verifiziert
{{ /if }}

$wsAccount.customerData

Gibt Informationen zu kundenspezifischen Feldern zurück. Mehr dazu in der Konfiguration. Beispiel, dass den Inhalt aller verfügbaren Felder ausgibt.
{{ foreach $myFieldVariable in $wsAccount.customerData }}
  {{= $myFieldVariable.value }} 
{{ /foreach }}

$wsAccount.addressFields

Gibt eine Liste aller verfügbaren Adressfelder mit deren Konfiguration zurück.
Adressfelder: {{= $wsAccount.addressFields }}

$wsAccount.backInStockList

Gibt eine Liste der Produkte zurück, für die der Kunde eine Benachrichtigung bei Verfügbarkeit angefordert hat.
Produktliste: {{= $wsAccount.backInStockList }}

$wsAccount.pseudoCreditCards

Gibt eine Liste der gespeicherten Kreditkarten (pseudonymisiert) zurück.
Kreditkarten: {{= $wsAccount.pseudoCreditCards }}

$wsAccount.typeSeparation

Gibt Informationen zur Adresstyp-Trennung aus. Über diese Map lässt sich prüfen, ob Rechnungs- und Lieferadressen getrennt verwaltet werden und welche Einschränkungen dabei gelten.

Eigenschaften von $wsAccount.typeSeparation

EigenschaftRückgabe-TypBeschreibung
enabledboolGibt aus, ob die Adresstyp-Trennung aktiv ist.
canCreateBillAddressboolGibt aus, ob noch eine neue Rechnungsadresse angelegt werden kann.
maxBillAddressesintGibt die maximale Anzahl erlaubter Rechnungsadressen aus.
0 = unbegrenzt
-1 = Trennung deaktiviert
defaultBillAddressReadonlyboolGibt aus, ob die Haupt-Rechnungsadresse schreibgeschützt ist.
Beispiel das prüft, ob die Adresstyp-Trennung aktiv ist und ob eine neue Rechnungsadresse angelegt werden kann:
{{ if $wsAccount.typeSeparation.enabled }}
  {{ if $wsAccount.typeSeparation.canCreateBillAddress }}
    <!-- Neue Rechnungsadresse kann angelegt werden -->
  {{ else }}
    <!-- Maximale Anzahl an Rechnungsadressen erreicht -->
  {{ /if }}
{{ /if }}

$wsAccount.defaultBillAddress

Gibt die Haupt-Rechnungsadresse des Kunden als Adress-Map aus (einschließlich id), sofern eine vorhanden ist. Die verfügbaren Eigenschaften entsprechen denen von $wsAccount.addresses. Beispiel, das den Vor-und Nachnamen der Haupt-Rechnungsadresse ausgibt:
Vorname: {{= $wsAccount.defaultBillAddress.firstName }} 
Nachname: {{= $wsAccount.defaultBillAddress.lastName }}

$wsAccount.defaultDeliveryAddress

Gibt die Standard-Lieferadresse des Kunden als Adress-Map aus (einschließlich id), sofern eine vorhanden ist. Die verfügbaren Eigenschaften entsprechen denen von $wsAccount.addresses. Beispiel, das den Vor-und Nachnamen der Standard-Lieferadresse ausgibt:
Vorname: {{= $wsAccount.defaultDeliveryAddress.firstName }} 
Nachname: {{= $wsAccount.defaultDeliveryAddress.lastName }}

$wsAccount.addresses

Gibt eine Liste der gespeicherten Adressen zurück. Beispiel, das für jede gespeicherte Adresse den Vor- und Nachnamen ausgibt.
{{ foreach $address in $wsAccount.addresses }}
    {{= $address.firstName }} {{= $address.lastName }}
{{ /foreach }}
Mit Verwendung der Rückgabe von $wsAccount.addresses stehen verschiedene Eigenschaften zur Verfügung, die verwendet werden können. Nachfolgend eine Übersicht, welche Eigenschaften verfügbar sind.

Eigenschaften von $wsAccount.addresses

EigenschaftenRückgabe-TypBeschreibung
idstringAdress-ID
salutationCodestringAnredecode
titlelCodestringTitelcode (z.B.: Dr., Prof.)
firstNamestringVorname
lastNamestringNachname
companystringFirmenname
departmentstringAbteilung
streetstringStraße
streetNumberstringHausnummer
additionalInfostringZusätzliche Adressinformationen
zipstringPostleitzahl
citystringStadt
statestringBundesland / Region
countrystringLand
phonestringTelefonnummer
mobilephonestringMobiltelefonnummer
faxstringFaxnummer
businessPhonestringGeschäftliche Telefonnummer
businessFaxstringGeschäftliche Faxnummer
dateOfBirthstringGeburtsdatum
taxIdstringSteuernummer
addressTypestringTyp der Adresse
custommapBenutzerdefinierte Adressfelder
isBillAddressboolGibt aus, ob die Adresse als Rechnungsadresse verwendet werden kann.
isDeliveryAddressboolGibt aus, ob die Adresse als Lieferadresse verwendet werden kann.
isDefaultBillAddressboolGibt aus, ob es sich um die Haupt-Rechnungsadresse handelt.
isDefaultDeliveryAddressboolGibt aus, ob es sich um die Standard-Lieferadresse handelt.
isReadonlyboolGibt aus, ob die Adresse schreibgeschützt ist.
typestringGibt den Pool-Typ der Adresse aus (“bill” oder “delivery”).

Methoden von $wsAccount.addresses

Neben den gespeicherten Eigenschaften stehen für jede Adresse zwei zusätzliche Methoden zur Verfügung, mit denen sich Labels und Standardwerte von Adressfeldern dynamisch im Frontend abrufen lassen:

$address.customLabel()

Gibt das benutzerdefinierte Label für ein bestimmtes Adressfeld aus, abhängig vom angegebenen Adresstyp. Signatur
$address.customLabel(fieldName, addressType)
Rückgabe
string - Das konfigurierte Label für das Feld.
Parameter
NameTypPflichtBeschreibung
fieldNamestringjaName des Adressfeldes (z.B. “firstName”)
addressTypestringjaAdresstyp. Folgende Werte sind möglich: - “bill” - Rechnungsadresse - “delivery” - Lieferadresse - “both” - beide Adressen
Beispiel, dass das Label für das Feld “Vorname” im Kontext einer Rechnungsadresse ausgibt.
Vorname-Label: {{= $address.customLabel("firstName", "bill") }}

$address.defaultValue()

Gibt den konfigurierten Standardwert für ein bestimmtes Adressfeld aus, abhängig vom angegebenen Adresstyp. Signatur
$address.defaultValue(fieldName, addressType)
Rückgabe
string - Der konfigurierte Standardwert für das Feld.
Parameter
NameTypPflichtBeschreibung
fieldNamestringjaName des Adressfeldes (z.B. “company”)
addressTypestringjaAdresstyp. Folgende Werte sind möglich:
- “bill” - Rechnungsadresse
- “delivery” - Lieferadresse
- “both” - beide Adressen
Beispiel, dass den Standardwert für das Feld “Firma” im Kontext einer Lieferadresse ausgibt.
{{= $address.defaultValue("company", "delivery") }}
Hinweis: Die Methoden customLabel() und defaultValue() haben aktuell nur im Checkout eine Wirkung, sobald der Benutzer eine Adresse ausgewählt hat. In zukünftigen Versionen werden sie auch im Kundenkonto zwischen Liefer- und Rechnungsadresse unterscheiden können.

Methoden

$wsAccount.loginRequired()

Gibt einen true / false Wert zurück, wenn der Nutzer für die angegebene Aktion angemeldet sein muss. Mehr dazu in der Konfiguration. Signatur
$wsAccount.loginRequired(actionName)
Rückgabe bool - true wenn ein Login erforderlich ist, sonst false. Parameter
NameTypPflichtBeschreibung
actionNamestringjaName der Aktion, für die geprüft werden soll, ob ein Login erforderlich ist.
Beispiel Prüfung, ob das Ändern der E-Mail-Adresse einen Login erfordert (EmailUpdate).
{{ if $wsAccount.loginRequired('EmailUpdate') }}
    // Login erforderlich
{{ /if }}

$wsAccount.loadAddress()

Es wird entweder die gewählte Liefer-/Rechnungsadresse oder eine Adresse anhand einer ID geladen. Signatur
$wsAccount.loadAddress(addressId)
Rückgabe map - Map mit einer geladenen Adresse (z.B. Liefer- oder Rechnungsadresse). Parameter
NameTypPflichtBeschreibung
addressIdstringjaID der Adresse (z.B. ausgewählte Liefer-oder Rechnungsadresse).
Beispiel, das die ausgewählte Rechnungsadresse lädt:
{{ var $billAddress = $wsAccount.loadAddress($wsCheckout.selectedBillAddress) }}
{{= $billAddress.firstName }} {{= $billAddress.lastName }}

Aktionen

Aktionen zu diesem Modul, die Änderungen auslösen (z. B. erstellen, bearbeiten, löschen), sind separat im Kapitel „Aktionen“ dokumentiert: Account

Beispiele für die Anzeige von Kundendaten

Prüfen, ob ein Kunde eingeloggt ist

Im folgenden Beispiel wird überprüft, ob ein Kunde eingeloggt ist. Je nach Status können unterschiedliche Inhalte, wie z. B. ein Loginformular oder eine persönliche Begrüßung, angezeigt werden.
{{ if $wsAccount.isLoggedIn }}

    <!-- Kunde ist eingeloggt -->
	<!-- z.B. Erfolgsmeldung, Anrede und Verlinkungen zum Kundenkonto -->
	
{{ else }}

    <!-- Kunde ist nicht eingeloggt -->
	<!-- z.B. Eingabefelder für das Login anbieten -->
	
{{ /if }}

Persönliche Anrede eines eingeloggten Kunden

Ist ein Kunde eingeloggt, kann er mit seinen persönlichen Daten angesprochen werden. Hier wird der Vorname und Nachname des Kunden aus der Hauptadresse (mainAddress) ausgegeben.
{{ if $wsAccount.isLoggedIn }}
    {{ var $address = $wsAccount.addresses[0] }}
    {{ if $address }}
        Willkommen, {{= $address.firstName }} {{= $address.lastName }}!
    {{ /if }}
{{ /if }}
Dieses Beispiel zeigt, wie ein Link zur Übersichtsseite des Kundenkontos generiert wird. Der Link verweist auf das Template overview.htm, das sich im Verzeichnis account befindet.
{{ if $wsAccount.isLoggedIn }}

    <a href="{{= $wsViews.viewUrl('account/overview.htm')}}">
        Zu Ihrer Kundenkonto-Übersicht
    </a>

{{ /if }}

Adressdaten eines Kunden anzeigen

Hier werden die Adressdaten eines eingeloggten Kunden aus der Hauptadresse (mainAddress) ausgelesen und angezeigt.
{{ var $myaddress = $wsAccount.mainAddress }}

Ihre Rechnungsadresse
{{= $myaddress.firstName}} {{= $myaddress.lastName}}
{{= $myaddress.street}}
{{= $myaddress.zip}} {{= $myaddress.city}}
{{= $myCountries[$myaddress.country]}}

<a href="{{= $wsViews.viewUrl('account/address.htm', {type: 'change', addressId: $myaddress.id}) }}">Bearbeiten</a>

Schleife über alle Adressen im Adressbuch

In diesem Beispiel wird über alle gespeicherten Adressen eines Kunden iteriert. Es werden zu jeder Adresse Bearbeitungs- und Löschlinks angezeigt.
{{ foreach $myaddress in $wsAccount.addresses }}
      <p>Adresse ID: {{ $myaddress.id }}</p>

      <a href="{{= $wsViews.viewUrl('account/changeAddress.htm', {addressId: $address.id}) }}">Bearbeiten</a>
{{ /foreach }}

Adressdaten im Bestellablauf laden

Während des Bestellvorgangs werden die Adressdaten des Kunden für die Rechnungs- und Lieferadresse verwendet. Dieses Beispiel zeigt, wie die Adressen während des Bestellprozesses abgefragt werden können.
{{ var $myBillingAddress = $wsAccount.loadAddress($wsCheckout.selectedBillAddress) }}
Ihre Rechnungsadresse
...

{{ var $myShippingAddress = $wsAccount.loadAddress($wsCheckout.selectedShippingAddress) }}
Ihre Lieferadresse
...
Ein Kunde kann sich über diesen Link aus dem Kundenkonto ausloggen. Die URL wird über die Funktion logoutUrl bereitgestellt.
{{ if $wsAccount.isLoggedIn }}
    <a href="{{= $wsActions.url('Logout', $wsViews.viewUrl('account/overview.htm'))}}">
      Abmelden
    </a>
{{ /if }}
{{ if $wsAccount.isLoggedIn }}
    <a href="{{= $wsActions.url('Passwort ändern', $wsViews.viewUrl('account/changePassword.htm'))}}">
      Passwort ändern
    </a>
{{ /if }}
Weitere Beispiele zu Umsetzungen von Kundenkonto-Seiten und -Funktionen finden Sie hier: Praxisbeispiele Kundenkonto