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

# FMSG- (Free default texts)

> Store your own texts centrally in the shop configuration and insert them into any template with an FMSG tag, as output or as a switch.

With free default texts, you store your own texts in a single place and insert them into as many templates as you like. This is always worthwhile when the same text appears in several places and should remain centrally editable, for example a copyright line, a note on delivery time or a banner for a promotion. In multilingual shops, it is the way to keep texts out of the templates in the first place.

Unlike the other text sections of the shop configuration, free default texts are not tied to a function of the shop system. You determine the names and contents yourself.

Guide: Standard texts · Reference: FreeMessages-Txt section

## Creating and outputting a text

A free default text always consists of two parts: an entry in the `<FreeMessages-Txt>` section of the shop configuration `shop.config` and a tag in the template, which consists of the prefix `FMSG-` and the parameter name.

In the shop configuration:

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<FreeMessages-Txt>

   Copyright = © 2026 Muster GmbH
   Lieferhinweis = Versand innerhalb von 24 Stunden

</FreeMessages-Txt>
```

In the template:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<footer>
   <p>~FMSG-Copyright~</p>
</footer>
```

Output:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<footer>
   <p>© 2026 Muster GmbH</p>
</footer>
```

> [!NOTE]
>
> The shop system assigns the prefix `FMSG-` itself. The shop configuration only contains the name; in the template, the prefix comes before it.

> [!NOTE]
>
> Upper and lower case of the name do not matter. A text created as `Lieferhinweis` can also be reached via `~FMSG-lieferhinweis~`. Consistent spelling still helps, because the templates can then be searched.

## Using a text as a switch

`FMSG-` is not limited to output. The same tag also works as an area tag and as a negative area tag. What matters is whether a non-empty text is stored for the name.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{FMSG-Aktionsbanner}
   <div class="aktion">~FMSG-Aktionsbanner~</div>
{/FMSG-Aktionsbanner}

{!FMSG-Aktionsbanner}
   <div class="standard">Unser Sortiment</div>
{/!FMSG-Aktionsbanner}
```

This lets you switch areas of the template via the shop configuration without touching the template. As long as `Aktionsbanner` contains text, the banner appears. If the text is emptied, the entire block including its surroundings disappears, and the alternative block applies.

> [!WARNING]
>
> For this purpose, only delete the text, not the line. A name without a value is known to the shop system and cleanly switches off the area tag. A name that is not in the shop configuration at all, on the other hand, is not a valid tag for the parser, and the behaviour is different. A typo in the name is therefore not the same as an empty text.

> [!NOTE]
>
> `FMSG-` cannot be used as a loop tag. A free default text is exactly one value; there is nothing to iterate over.

## Texts may contain tags

The parser processes the stored text a second time as a template. This means: HTML in the text remains HTML, and WEBSALE tags in the text are resolved.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<FreeMessages-Txt>

   Grussformel = Guten Tag ~ADR-FirstName~ ~ADR-Name~,

</FreeMessages-Txt>
```

This lets you build text modules that adapt themselves to the context instead of maintaining a separate entry for each variant.

> [!WARNING]
>
> For the same reason, you cannot simply include a tilde or a curly brace as a character in a free default text. The parser tries to read the relevant spot as a tag. In HTML output, you therefore write such characters as an entity, `&#126;` for the tilde and `&#123;` for the curly brace.

## Limits

> [!WARNING]
>
> The `<FreeMessages-Txt>` section holds 100 entries. The shop system no longer reads in anything from the 101st entry onwards, without any message about it. The tags of these entries remain unresolved in the template. If you hit the limit, first check whether related texts can be combined via reloaded tags.

Otherwise, the order of the entries in the section is irrelevant. You can therefore group the texts by topic so that the section remains readable.

## The tag at a glance

| Tag | Single tag | Area tag | Negative area tag | Loop tag |
| - | - | - | - | - |
| `FMSG-<Name>` | yes | yes | yes | – |

`<Name>` is the parameter name from the `<FreeMessages-Txt>` section of the shop configuration `shop.config`. The tag is permitted in all templates.

## Related topics

* Guide: Standard texts
* Reference: FreeMessages-Txt section
* Reference: NotifyMessages-Txt section
* Reference: MSG- (messages)


## Related topics

- [Texts and messages](https://dokumentation.websale.de/en/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/texte-und-meldungen.md)
- [Default texts](https://dokumentation.websale.de/en/v8s/einstellungen/standardtexte.md)
- [Rating configuration prodrating.config](https://dokumentation.websale.de/en/v8s/referenz/konfigurationen/bewertungskonfiguration-prodrating-config.md)
- [$wsCheckout - Checkout](https://dokumentation.websale.de/en/frontend/referenz/module/wscheckout.md)
- [Configuration osb.config](https://dokumentation.websale.de/en/v8s/referenz/konfigurationen/konfiguration-osb-config.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.