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

# Preisformatierungen

> Wie Sie Preise länderabhängig formatieren, Vor- und Nachkommateil separat gestalten, Ersatzzeichen für Null definieren und die Formatierung punktuell aufheben.

WEBSALE V8s unterstützt länderabhängige Preisformatierungen, beispielsweise die länderabhängige Darstellung der Preise mit Komma oder Punkt als Dezimaltrennzeichen. Darüber hinaus haben Sie die Möglichkeit, die Anzeige der Preise individuell festzulegen.

Beispiele:

| Land | Mögliche Darstellungen |
| - | - |
| Deutschland | 1.234,23 EUR oder € 1.234,23 |
| USA | |
| Schweden | SEK 1.234:00, mit Doppelpunkt als Dezimaltrennzeichen |

![Preis Formatierung](https://mintcdn.com/websaleag-44ee7ea6/skgEiyBpkjLxNR4u/images/preis_formatierung.jpg?fit=max\&auto=format\&n=skgEiyBpkjLxNR4u\&q=85\&s=618b3792b21a7054898ab3929087db39)

## Länderabhängige Preisformatierungen

Die Einstellungen sind in der Shopkonfiguration `shop.config` im Abschnitt `<PriceFormat>` festgelegt und können dort geändert werden.

Hierbei ist es wichtig zu berücksichtigen, dass es sich ausschließlich um die Anzeige der Preise handelt. Die interne Berechnung von Zahlen erfolgt mit einer höheren Genauigkeit, und für die Übergabe von Zahlen wird das internationale technische Format beibehalten. Dort wird also nur ein Dezimaltrennzeichen verwendet, und zwar der Punkt.

Beispiel: Wir haben einen schwedischen Shop und die Anzeige des Preises soll wie folgt sein: 1.234:99

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PriceFormat>
   ...
   DecimalPlaces         = 2
   DecimalSeparator      = :
   ThousandsSeparator    = .
   ...
</PriceFormat>
```

Referenz: [Abschnitt PriceFormat](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/preise-steuern-und-waehrung.md#priceformat)

## Vor- und Nachkommastellen formatieren

Optional können Sie die Vor- und Nachkommastellen von Preisangaben in Form, Größe und Farbe unterschiedlich formatieren. Zu diesem Zweck können Sie Vor- und Nachkommateil separat positionieren.

Beispiel: Sie möchten die Nachkommastelle des Produktpreises hochstellen. Um dies über Styles zu realisieren, müssen Sie die Vor- und Nachkommastelle separat mit Tags auf dem Template positionieren.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~PR-IPart(Price)~
<span style="vertical-align: super">~PR-FPart(Price)~ ~WS-CurrencySymbol~</span>
```

Referenz: PR-FPart()

Referenz: PR-IPart()

Referenz: [BD-FPart()](https://dokumentation.websale.de/v8s/referenz/tags/bd-staffelpreise.md#die-tags)

Referenz: [BD-IPart()](https://dokumentation.websale.de/v8s/referenz/tags/bd-staffelpreise.md#die-tags)

## Ersatzzeichen für Null

Optional können Sie auch ein Ersatzzeichen definieren, das angezeigt wird, wenn der Vor- oder Nachkommateil 0 ist.

Beispiele:

* Anstatt 3.00 EUR können Sie 3.-- EUR oder 3 EUR anzeigen.
* Anstatt 0,50 EUR können Sie ,50 EUR anzeigen.

### Schritt 1: Definieren der Ersatzzeichen in der Shopkonfiguration

Die Ersatzzeichen definieren Sie in Ihrer Shopkonfiguration `shop.config` im Abschnitt `<PriceFormat>` über die Parameter `ZeroIntegralPart` und `ZeroFractionalPart`.

Beispiel: Statt 3,00 soll 3,-- angezeigt werden. Deshalb tragen wir hinter dem Parameter `ZeroFractionalPart` den Wert `--` ein. Statt 0,50 soll -,50 angezeigt werden. Deshalb tragen wir hinter dem Parameter `ZeroIntegralPart` den Wert `-` ein.

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

### Schritt 2: Anpassen der Preis-Tags auf den Templates

Die Anzeige eines Ersatzzeichens funktioniert nur, wenn für die Darstellung und Anzeige der Preise die Tags `PR-FPart()`, `BD-FPart()`, `PR-IPart()` oder `BD-IPart()` verwendet werden.

Möchten Sie also den Produktpreis `PR-Price` im Falle einer Null mit einem Ersatzzeichen anzeigen lassen, ersetzen Sie bitte das Tag `PR-Price` auf allen Templates wie folgt:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
...
~PR-IPart(Price)~ ~PR-FPart(Price)~ ~WS-CurrencySymbol~
...
```

Wenn Sie Preise ohne Formatierung auf einem Template verwenden möchten, beispielsweise als Tag-Parameter oder zur Übergabe an technische Systeme, können Sie die Formatierung vorübergehend aufheben. Wie das geht, beschreibt der Abschnitt [Preisformatierung an bestimmten Stellen aufheben](#preisformatierung-an-bestimmten-stellen-aufheben).

## Übergabe von Preisen an technische Schnittstellen

Alle technischen Schnittstellen zu Warenwirtschaftssystemen, Clearing-Systemen, Tracking-Systemen und Affiliate-Systemen, die nicht manuell integriert wurden, sind von der Formatierung nicht betroffen. Diesen Systemen wird ein international gültiges technisches Format der Preise übergeben.

Nicht betroffen sind ebenfalls Gewicht und Volumen des Produkts, Gewicht und Volumen der Bestellung, MwSt.- und Rabatt-Sätze, Bestellmengen sowie sonstige Zahlen, die im Shop angezeigt werden.

Wegweiser: Übergabe von Preisen an externe Systeme

## Preisformatierung an bestimmten Stellen aufheben

Wenn Sie sich für eine Formatierung der Preise entschieden haben, wird diese Formatierung im gesamten Shop für die Anzeige der Preise verwendet.

An manchen Stellen ist es jedoch notwendig, Preise ohne Formatierung anzeigen zu lassen, beispielsweise als Tag-Parameter oder zur Übergabe an technische Systeme. Dann können Sie die Formatierung mit dem Tag `WS-DisablePriceAndNumberFormat` an dieser bestimmten Stelle aufheben lassen und anschließend mit dem Tag `WS-EnablePriceAndNumberFormat` wieder aktivieren.

Beispiel: Mithilfe des Vergleichs-Tags `DC-CompareDigitGT()` soll auf der Einzelproduktansicht ein Bereich angezeigt werden, falls der Produktpreis größer als 99,99 Euro ist.

Als Dezimaltrennzeichen ist ein Komma definiert. Für den logischen Vergleich würde dies jedoch bedeuten, dass der im Tag `PR-Price` gespeicherte Preis als 99 interpretiert wird, weil jedes technische System einen Punkt als Dezimaltrennzeichen erwartet. Der Bereich würde also für jeden Preis über 99 Euro angezeigt.

Um dies zu verhindern, muss die Preisformatierung für diesen Bereich deaktiviert werden:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!-- Anzeige eines Banners, falls der Produktpreis größer 99,99 Euro ist -->

   <!-- vorübergehendes Deaktivieren der Preisformatierung -->
   ~WS-DisablePriceAndNumberFormat~

   {DC-CompareDigitGT($PR-Price$,99.99)}

  <!-- Erneutes Aktivieren der Preisformatierung, damit der Preis formatiert angezeigt wird -->
      ~WS-EnablePriceAndNumberFormat~
      <!-- Anzeige eines Banners, beispielsweise portofrei -->
      ...

   {/DC-CompareDigitGT($PR-Price$,99.99)}

   <!-- Preisformatierung wieder aktivieren für den Fall, dass der Preis kleiner 99,99 Euro ist -->
   ~WS-EnablePriceAndNumberFormat~
```

Die technischen Schnittstellen sind von der Formatierung ohnehin nicht betroffen, siehe Abschnitt [Übergabe von Preisen an technische Schnittstellen](#übergabe-von-preisen-an-technische-schnittstellen).

Referenz: WS-DisablePriceAndNumberFormat

Referenz: WS-EnablePriceAndNumberFormat

Referenz: [DC-CompareDigitGT()](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md#die-tags-im-uberblick)


## Related topics

- [Styles für Warenkorb und Bestellung](https://dokumentation.websale.de/v8s/referenz/styles/warenkorb-und-bestellung.md)
- [Storefront API Konfigurationen](https://dokumentation.websale.de/schnittstellen/storefront-api/storefront-api-konfigurationen.md)


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