$wsAccount-Modul lesen Sie die Account- und Adressdaten des aktuell eingeloggten Kunden und zeigen sie im Template an.
Auf dieser Seite geht es ausschließlich um das Lesen und Anzeigen vorhandener Account- und Adressdaten. Alles, was Daten verändert (Adresse anlegen, bearbeiten, löschen, Passwort ändern), ist unter Aktionen → Account beschrieben, weil dort die auslösenden Aktionen und ihre Parameter dokumentiert sind.
Die meisten Werte von
$wsAccount sind nur gefüllt, wenn der Kunde eingeloggt ist. Prüfen Sie deshalb vor dem Zugriff mit $wsAccount.isLoggedIn, ob ein Kunde angemeldet ist, sonst lesen Sie leere Werte aus und zeigen unbeabsichtigt leere Felder an.Grundkonzept
Die Arbeit mit$wsAccount folgt immer demselben Ablauf: Login-Zustand prüfen → Kundendaten lesen → reagieren. Bevor Sie Kundendaten lesen, müssen Sie wissen, ob überhaupt ein Kunde eingeloggt ist. Erst der eingeloggte Zustand füllt die Variablen mit Werten. Anschließend lesen Sie die gewünschten Daten (z. B. den Anzeigenamen oder eine Adresse) und reagieren darauf, etwa mit einer persönlichen Begrüßung oder der Anzeige des Adressbuchs. Wann die Daten verfügbar sind
Wenn kein Kunde eingeloggt ist, geben die Account-Abfragen leere Werte zurück. Deshalb beginnt nahezu jedes Beispiel auf dieser Seite mit einer
isLoggedIn-Prüfung.
Modulübersicht
Beispiel / Ausschnitt über$wsAccount
"ƒ()" kennzeichnet eine Funktion (Methode).
Variablen in der Übersicht
| Name | Rückgabe-Typ | Beschreibung |
|---|---|---|
addressFields | array | Liste aller verfügbaren Adressfelder mit deren Konfiguration. |
addresses | array | Liste aller gespeicherten Adressen des Kunden. |
autoLogInRestriction | string | Status der Auto-Login-Einschränkung. |
backInStockList | array | Produkte, für die der Kunde eine Verfügbarkeits-Benachrichtigung angefordert hat. |
customerData | map | Kundenspezifische Felder (z. B. Label, Typ, Wert). |
defaultBillAddress | map | Haupt-Rechnungsadresse als Adress-Map. |
defaultDeliveryAddress | map | Standard-Lieferadresse als Adress-Map. |
displayName | string | Anzeigename des Kunden. |
email | string | E-Mail-Adresse des Kundenkontos. |
id | string | Nutzer-ID des Kundenkontos. |
isAccountVerified | bool | Prüft, ob das Kundenkonto verifiziert wurde. |
isAutoLoggedIn | bool | Prüft, ob der Nutzer automatisch eingeloggt wurde. |
isAutoLogInRestricted | bool | Prüft, ob beim automatischen Login nicht alle Shop-Funktionen verfügbar sind. |
isLoggedIn | bool | Prüft, ob der Nutzer eingeloggt ist. |
isPasswordResetRequired | bool | Prüft, ob das Passwort zurückgesetzt werden muss. |
lastLogin | string | Datum des letzten Logins. |
pseudoCreditCards | array | Gespeicherte Kreditkarten (pseudonymisiert). |
typeSeparation | map | Informationen zur Adresstyp-Trennung. |
| Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
loadAddress() | map | Lädt eine Adresse anhand ihrer ID. |
loginRequired() | bool | Gibt zurück, ob eine bestimmte Aktion einen Login erfordert. |
Templates
Die Daten eines eingeloggten Kunden können auf jedem Template geladen und angezeigt werden. Im Standard-Ausliefershop befinden sich die Templates für die Seiten des Kundenkontos im Verzeichnisviews/account. Sie dienen als Grundlage zur Anzeige und Bearbeitung der Kundendaten. Sie können diese Daten aber auch in anderen Templates nutzen. Voraussetzung ist, dass der Kunde eingeloggt ist (siehe Grundkonzept).
Variablen
$wsAccount.isLoggedIn
Gibt zurück, ob der Nutzer eingeloggt ist. Diese Prüfung steht am Anfang fast jeder Account-Auswertung, weil alle übrigen Variablen erst im eingeloggten Zustand sinnvolle Werte liefern.$wsAccount.email
Gibt die E-Mail-Adresse des Kundenkontos zurück. Im Checkout kann ein Kunde auch als Gast bestellen. Dann liegt keine Konto-E-Mail vor, sondern eine Gast-Mailadresse aus dem Checkout. Das folgende Beispiel deckt deshalb beide Fälle ab, damit immer die passende Adresse angezeigt wird:
$wsCheckout.guestMail stammt aus dem Modul $wsCheckout und ist nur während des Bestellvorgangs gefüllt.
$wsAccount.id
Gibt die Nutzer-ID des Kundenkontos zurück. Verwenden Sie sie, um einen Kunden eindeutig zu identifizieren, etwa für das Tracking.$wsAccount.isAccountVerified
Gibt zurück, ob das Kundenkonto verifiziert wurde. Werten Sie das aus, wenn bestimmte Funktionen erst nach Verifizierung freigeschaltet werden sollen.$wsAccount.isAutoLoggedIn
Gibt zurück, ob der Nutzer automatisch eingeloggt wurde (über „Angemeldet bleiben”). Das ist relevant, weil ein automatischer Login eingeschränkt sein kann (sieheisAutoLogInRestricted).
$wsAccount.isAutoLogInRestricted
Gibt zurück, ob beim automatischen Login nicht alle Shop-Funktionen verfügbar sind. Werten Sie das aus, bevor Sie einem automatisch eingeloggten Kunden sicherheitsrelevante Aktionen (z. B. Adressänderung) anbieten, denn diese können eine erneute Anmeldung erfordern.Mehr dazu in der Konfiguration.
$wsAccount.autoLogInRestriction
Gibt den Status der Auto-Login-Einschränkung als Zeichenkette zurück. Mehr dazu in der Konfiguration.$wsAccount.lastLogin
Gibt das Datum des letzten Logins als Zeichenkette zurück.$wsAccount.isPasswordResetRequired
Gibt zurück, ob das Passwort zurückgesetzt werden muss. Werten Sie das aus, um den Kunden gezielt zur Passwortänderung zu führen.Mehr dazu in der Konfiguration.
$wsAccount.customerData
Gibt kundenspezifische Felder alsmap zurück (z. B. Label, Typ und Wert). Verwenden Sie diese Variable, um zusätzlich konfigurierte Kundenfelder anzuzeigen, ohne jedes Feld einzeln zu kennen.Mehr dazu in der Konfiguration.
$wsAccount.addressFields
Gibt eine Liste aller verfügbaren Adressfelder mit deren Konfiguration zurück. Jedes Element ist ein Objekt mit den Eigenschaftenname (Feldname, z.B. firstName ), label (konfigurierte Beschriftung, kann leer sein) und dataId . Diese Liste kann benutzt werden, um Adressformulare dynamisch aus der Konfiguration aufzubauen.
$wsAccount.backInStockList
Gibt die Produkte zurück, für die der Kunde eine Benachrichtigung bei Verfügbarkeit angefordert hat. Zeigen Sie die Liste beispielsweise im Kundenkonto an, damit der Kunde seine vorgemerkten Produkte sieht und verwalten kann.$wsAccount.pseudoCreditCards
Gibt die gespeicherten Kreditkarten in pseudonymisierter Form zurück. Die Pseudonymisierung ist gewollt, denn Vollständige Kartendaten dürfen aus Sicherheits- und Datenschutzgründen nicht im Frontend angezeigt werden.$wsAccount.typeSeparation
Gibt Informationen zur Adresstyp-Trennung zurück. Über diese Map können Sie prüfen, ob Rechnungs- und Lieferadressen getrennt verwaltet werden und welche Einschränkungen gelten.Eigenschaften von $wsAccount.typeSeparation
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|---|---|
enabled | bool | Prüft, ob die Adresstyp-Trennung aktiv ist. |
canCreateBillAddress | bool | Prüft, ob noch eine neue Rechnungsadresse angelegt werden kann. |
maxBillAddresses | int | Maximale Anzahl erlaubter Rechnungsadressen. 0 = unbegrenzt-1 = Trennung deaktiviert. |
defaultBillAddressReadonly | bool | Prüft, ob die Haupt-Rechnungsadresse schreibgeschützt ist. |
$wsAccount.defaultBillAddress
Gibt die Haupt-Rechnungsadresse des Kunden als Adress-Map zurück (einschließlichid), sofern eine als Standard markiert ist. Verwenden Sie sie, wenn gezielt die Haupt-Rechnungsadresse gebraucht wird. Die verfügbaren Eigenschaften entsprechen denen von $wsAccount.addresses.
$wsAccount.defaultDeliveryAddress
Gibt die Standard-Lieferadresse des Kunden als Adress-Map zurück (einschließlichid), sofern eine als Standard markiert ist. Verwenden Sie sie, wenn gezielt die Standard-Lieferadresse gebraucht wird. Die verfügbaren Eigenschaften entsprechen denen von $wsAccount.addresses.
$wsAccount.addresses
Gibt die Liste aller gespeicherten Adressen des Kunden zurück. Verwenden Sie sie für ein Adressbuch oder wenn Sie über alle Adressen iterieren möchten.Jede Adresse aus
$wsAccount.addresses (und ebenso aus defaultBillAddress, defaultDeliveryAddress und loadAddress()) stellt die folgenden Eigenschaften zur Verfügung.Eigenschaften von $wsAccount.addresses
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|---|---|
id | string | Adress-ID |
salutationCode | string | Anredecode |
titleCode | string | Titelcode (z. B. Dr., Prof.) |
firstName | string | Vorname |
lastName | string | Nachname |
company | string | Firmenname |
department | string | Abteilung |
street | string | Straße |
streetNumber | string | Hausnummer |
additionalInfo | string | Zusätzliche Adressinformationen |
zip | string | Postleitzahl |
city | string | Stadt |
state | string | Bundesland / Region |
country | string | Land |
phone | string | Telefonnummer |
mobilePhone | string | Mobiltelefonnummer |
fax | string | Faxnummer |
businessPhone | string | Geschäftliche Telefonnummer |
businessFax | string | Geschäftliche Faxnummer |
dateOfBirth | string | Geburtsdatum |
taxId | string | Steuernummer |
addressType | string | Typ der Adresse |
addressOwnerMemberId | string | ID des Kunden, dem die Adresse gehört |
custom | map | Benutzerdefinierte Adressfelder |
isBillAddress | bool | Prüft, ob die Adresse als Rechnungsadresse verwendet werden kann. |
isDeliveryAddress | bool | Prüft, ob die Adresse als Lieferadresse verwendet werden kann. |
isDefaultBillAddress | bool | Prüft, ob es sich um die Haupt-Rechnungsadresse handelt. |
isDefaultDeliveryAddress | bool | Prüft, ob es sich um die Standard-Lieferadresse handelt. |
isReadonly | bool | Prüft, ob die Adresse schreibgeschützt ist. |
type | string | Typ der Adresse ("bill" oder "delivery"). |
$address.customLabel()
Gibt das benutzerdefinierte Label für ein bestimmtes Adressfeld zurück, abhängig vom Adresstyp. Nutzen Sie die Methode, um Formularbeschriftungen aus der Konfiguration zu übernehmen, statt sie fest im Template zu hinterlegen. Signatur$address.customLabel(fieldName, addressType)
Rückgabe string – das konfigurierte Label für das Feld.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
fieldName | string | ja | Name des Adressfeldes (z. B. "firstName"). |
addressType | string | ja | Adresstyp: "bill" (Rechnung), "delivery" (Lieferung) oder "both" (beide). |
$address.defaultValue()
Gibt den konfigurierten Standardwert für ein bestimmtes Adressfeld zurück, abhängig vom Adresstyp. Nutzen Sie die Methode, um Felder mit sinnvollen Vorgaben vorzubelegen. Signatur$address.defaultValue(fieldName, addressType)
Rückgabe string – der konfigurierte Standardwert für das Feld.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
fieldName | string | ja | Name des Adressfeldes (z. B. "company"). |
addressType | string | ja | Adresstyp: "bill" (Rechnung), "delivery" (Lieferung) oder "both" (beide). |
Hinweis: Die Methoden
customLabel() und defaultValue() haben aktuell nur im Checkout eine Wirkung, sobald der Kunde eine Adresse ausgewählt hat. Im Kundenkonto unterscheiden sie noch nicht zwischen Liefer- und Rechnungsadresse. Das ist für eine künftige Version vorgesehen.Methoden
$wsAccount.loginRequired()
Gibt zurück, ob der Nutzer für eine bestimmte Aktion angemeldet sein muss. Werten Sie das aus, bevor Sie eine Aktion anbieten, damit Sie einen nicht angemeldeten Kunden vorab zum Login führen, statt ihn in eine abgelehnte Aktion laufen zu lassen. Mehr dazu in der Konfiguration. Signatur$wsAccount.loginRequired(actionName)
Rückgabe bool – true, wenn ein Login erforderlich ist, sonst false.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
actionName | string | ja | Name der Aktion, für die geprüft wird, ob ein Login erforderlich ist (z. B. "EmailUpdate"). |
$wsAccount.loadAddress()
Lädt eine einzelne Adresse anhand ihrer ID und gibt sie als Adress-Map zurück. Verwenden Sie die Methode im Checkout, um die vom Kunden gewählte Rechnungs- oder Lieferadresse auszugeben. Signatur$wsAccount.loadAddress(addressId)
Rückgabe map – die geladene Adresse mit den Eigenschaften aus$wsAccount.addresses.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
addressId | string | ja | ID der zu ladenden Adresse (z. B. die im Checkout gewählte Rechnungsadresse). |
$wsCheckout.selectedBillAddress stammt aus dem Modul $wsCheckout und liefert die ID der im Bestellvorgang gewählten Rechnungsadresse.
Aktionen
$wsAccount selbst liest nur Daten. Aktionen, die Daten verändern (Adresse anlegen, bearbeiten, löschen, Passwort oder E-Mail ändern), sind separat dokumentiert: Aktionen → Account.
Beispiele
Die folgenden Beispiele sind nach Anwendungsfall geordnet: von der einfachen Zustandsprüfung über die persönliche Anrede bis zur Adressauflösung im Checkout. Alle Beispiele setzen einen eingeloggten Kunden voraus und prüfen das jeweils zu Beginn.Login-Zustand prüfen und Inhalt unterscheiden
Auslöser ist der Login-Zustand. Je nachdem, ob ein Kunde eingeloggt ist, zeigen Sie unterschiedliche Inhalte an.Eingeloggte Kunden sehen den persönlichen Bereich, nicht angemeldete Besucher das Login-Angebot.
Persönliche Anrede eines eingeloggten Kunden
Auslöser ist der Login-Zustand. Ist ein Kunde eingeloggt, sprechen Sie ihn mit Vor- und Nachnamen aus seiner Rechnungsadresse an. Dieif-Prüfung auf die Adresse verhindert leere Begrüßungen, falls noch keine Adresse hinterlegt ist.
Eingeloggte Kunden mit hinterlegter Rechnungsadresse werden namentlich begrüßt.
Link zur Kundenkonto-Übersicht
Auslöser ist der Login-Zustand. Für eingeloggte Kunden erzeugen Sie einen Link zur Übersichtsseite. Die URL wird über$wsViews.viewUrl() gebildet, damit der Pfad zum Template korrekt aufgelöst wird.
Eingeloggte Kunden erhalten einen Link, der zuverlässig auf die Übersichtsseite zeigt.
Rechnungsadresse anzeigen
Auslöser ist der Login-Zustand. Sie lesen die Haupt-Rechnungsadresse aus und zeigen sie mit einem Bearbeiten-Link an. Der Link übergibt die Adress-id, damit die Aktion die richtige Adresse bearbeitet.
Die Rechnungsadresse wird angezeigt und der Bearbeiten-Link führt zur richtigen Adresse.
Adressbuch: über alle Adressen iterieren
Auslöser ist der Login-Zustand. Sie iterieren über alle gespeicherten Adressen und zeigen je Adresse einen Bearbeiten-Link. Die Schleifenvariable ($address) wird durchgängig verwendet, damit der Link genau die Adresse der aktuellen Iteration trifft.
Jede gespeicherte Adresse wird mit einem Bearbeiten-Link aufgelistet, der auf die Übersichtsseite der Adressen weiterleitet.
Weiterführende Links
- Aktionen → Account - Adressen und Konto verändern (anlegen, bearbeiten, löschen), weil
$wsAccountselbst nur liest. - $wsCheckout - liefert die im Bestellvorgang gewählten Adress-IDs (
selectedBillAddress,selectedShippingAddress) und die Gast-Mailadresse, die in den Beispielen verwendet werden. - Konfiguration: Accounts / Benutzerkonten - steuert Auto-Login, Verifizierung und Adressfelder, auf die mehrere Variablen verweisen.
