> ## 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.

# Modules - Overview

> Reference overview of global WEBSALE modules ($wsAccount, $wsProducts and more) that expose properties and methods for template output and shop data.

Modules are global modules provided by **WEBSALE** (e.g. `$wsAccount`). They expose variables (properties) and methods. In development, they are sometimes also referred to as `view modules`, since they are primarily used for output (the read side).

These modules make shop data available for template output, e.g. about products, categories, or customer data.

Custom modules cannot be created or extended.

***

## Notation & access

* **Notation:** `$ws<ModuleName>` (e.g. `$wsAccount`, `$wsBasket`, `$wsProduct`)
* Modules contain variables (properties) and methods
* Access is via the dot operator (`.`), e.g. on properties or methods of a module
* Data fields and functions are accessed uniformly via `.`

**Syntax example**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
$ws<ModuleName>.<Method> ???
```

For more information, see [data access](/en/frontend/datenzugriff-anzeige).

***

## Variables & methods

A module usually provides both:

* Variables (properties)
* Methods

### Variables (properties)

Through variables, the module directly returns the value, which can be read out directly.

**Example - Indicates whether the user is logged in**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ = $wsAccount.isLoggedIn }}
```

### Methods

Methods perform the call for the module (e.g. loading data) and return a result.

**Example - Loads the address with the specified id**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ = $wsAccount.loadAddress(addressId) }}
```

Many modules return structured data (e.g. "maps"/objects). The clearest way to access their fields is via user-defined variables that are assigned once in the template.

**Example - Loading the data of the product with ID 123456**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myVariable = $wsProducts.load(productId) }}
```

Using the user-defined variable `$myVariable`, individual properties are accessed via `$myVariable.<field>`:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ = $myVariable.name }}
{{ = $myVariable.descr }}
```

Variable and method calls cannot be chained arbitrarily. The following call is therefore not possible:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ $wsAccount.loadAddress(addressId).isLoggedIn }}
```

***

## Available modules

Here is an overview of all modules that are generally available in the WEBSALE shop:

* [\$wsAccount](/en/frontend/referenz/module/wsAccount)
* [\$wsActions](/en/frontend/referenz/module/wsactions)
* [\$wsAsse](/en/frontend/referenz/module/wsasse)
* [\$wsBasket](/en/frontend/referenz/module/wsbasket)
* [\$wsCategories](/en/frontend/referenz/module/wscategories)
* [\$wsCheckout](/en/frontend/referenz/module/wscheckout)
* [\$wsComputopHosted](/en/frontend/referenz/module/wscomputophosted)
* [\$wsConfig](/en/frontend/referenz/module/wsconfig)
* [\$wsConsent](/en/frontend/referenz/module/wsconsent)
* [\$wsCookies](/en/frontend/referenz/module/wscookies)
* [\$wsDirectOrder](/en/frontend/referenz/module/wsdirectorder)
* [\$wsEmails](/en/frontend/referenz/module/wsemails)
* [\$wsExternalData](/en/frontend/referenz/module/wsexternaldata)
* [\$wsForm](/en/frontend/referenz/module/wsform)
* [\$wsInventory](/en/frontend/referenz/module/wsinventory)
* [\$wsLastSeenProducts](/en/frontend/referenz/module/wslastseenproducts)
* [\$wsMaintenance](/en/frontend/referenz/module/wsmaintenance)
* [\$wsNavigation](/en/frontend/referenz/module/wsnavigation)
* [\$wsNewsletter](/en/frontend/referenz/module/wsnewsletter)
* [\$wsOptIn](/en/frontend/referenz/module/wsoptin)
* [\$wsOrderHistory](/en/frontend/referenz/module/wsorderhistory)
* [\$wsPayPalCheckout](/en/frontend/referenz/module/wspaypalcheckout)
* [\$wsPayPalPlus](/en/frontend/referenz/module/wspaypalplus)
* [\$wsProducts](/en/frontend/referenz/module/wsproducts)
* [\$wsProductRating](/en/frontend/referenz/module/wsproductrating)
* [\$wsSecurity](/en/frontend/referenz/module/wssecurity)
* [\$wsSession](/en/frontend/referenz/module/wssession)
* [\$wsShipTrack](/en/frontend/referenz/module/wsshiptrack)
* [\$wsStore](/en/frontend/referenz/module/wsstore)
* [\$wsStores](/en/frontend/referenz/module/wsstores)
* [\$wsStripe](/en/frontend/referenz/module/wsstripe)
* [\$wsSubshop](/en/frontend/referenz/module/wssubshop)
* [\$wsTestMode](/en/frontend/referenz/module/wstestmode)
* [\$wsViews](/en/frontend/referenz/module/wsviews)
* [\$wsVoucher](/en/frontend/referenz/module/wsvoucher)
* [\$wsWatchList](/en/frontend/referenz/module/wswatchlist)

***

## Actions `$wsActions`

In parallel to the modules, there are **actions** that begin with `$wsActions`.

While modules display/read out states and data, actions are the opposite direction: they are used to create, change, or delete data – typically triggered by a user interaction (e.g. link, button, form).

For more information, see [reference](/en/frontend/referenz) → [actions](/en/frontend/referenz/aktionen)

***

## Related links

* [Data access + display](/en/frontend/datenzugriff-anzeige)
* [Actions](/en/frontend/referenz/aktionen)
