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

# Rabatte festlegen

> Alle Rabattarten von WEBSALE V8s im Überblick: Produktrabatt, Auftragswertrabatt, Produktgruppenrabatt, Zahlungsartenrabatt und Kundenrabatt, ihr Zusammenspiel und ihre Anzeige.

WEBSALE V8s kennt fünf voneinander unabhängige Rabattarten. Sie greifen gleichzeitig und addieren sich, solange Sie nichts anderes einstellen. Das ist die wichtigste Eigenschaft dieses Kapitels und der Grund, warum es einen eigenen Abschnitt zum Zusammenspiel gibt.

| Rabattart | Gilt für | Eingestellt in |
| - | - | - |
| Produktrabatt | ein einzelnes Produkt | Produktdaten, Feld `Discount` |
| Produktgruppenrabatt | alle Produkte einer Rabattgruppe | `discount.dat`, gepflegt über WSPManager oder Warenwirtschaft |
| Auftragswertrabatt | den gesamten Warenkorb ab einem Warenwert | `shop.config`, `<OrderConditions>` |
| Zahlungsartenrabatt | den Warenkorb bei Wahl einer Zahlungsart | `shop.config`, Abschnitt der Zahlungsart |
| Kundenrabatt | alle Einkäufe eines bestimmten Kunden | Kundendaten, wahlweise mit Vorgabe aus der `shop.config` |

Weitere Wege, Preisnachlässe zu gewähren, sind an anderer Stelle beschrieben: Originalpreis, Staffelpreise, Gutscheine, "Nimm 3 zahl 2" und HappyHour-Produkte.

Wegweiser: [Produktpreise, Originalpreis](https://dokumentation.websale.de/v8s/produkte/produktpreise.md) · [Produktpreise, Staffelpreise](https://dokumentation.websale.de/v8s/produkte/produktpreise.md) · [Gutscheine anbieten](https://dokumentation.websale.de/v8s/gutscheine-anbieten/gutscheine-anbieten-uebersicht.md) · [Nimm 3 zahl 2](https://dokumentation.websale.de/v8s/marketing-produkte/nimm-3-zahl-2-produkte.md) · [HappyHour-Produkte](https://dokumentation.websale.de/v8s/marketing-produkte/happyhour-produkte.md)

## Rabattierfähigkeit der Produkte

Vor allen Rabattarten steht eine Entscheidung je Produkt: Darf es überhaupt rabattiert werden? Das regelt das Produktdatenfeld `DiscountFactor`, im WSPManager "Kundengruppenrabatt".

| Wert | Wirkung |
| - | - |
| leer oder `1` | Das Produkt ist rabattierfähig. Voreinstellung |
| `0` | Das Produkt ist von jeder Rabattierung ausgenommen |

Diese Zuordnung gilt für **alle** Rabattarten. Ein Produkt mit `DiscountFactor = 0` bekommt weder Auftragswert- noch Kunden- noch Zahlungsartenrabatt. Typische Fälle sind preisgebundene Artikel, Gutscheine und Versandpauschalen.

## Produktrabatt

Der prozentuale Nachlass für ein einzelnes Produkt steht im Produktdatenfeld `Discount`. Er wird sofort verrechnet, auf der Produktdetailseite und im Warenkorb erscheint der reduzierte Preis.

Auf der Produktdetailseite `ws_product.htm`:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-Discount}
   Diesem Produkt ist ein Rabatt von ~PR-Discount~ % zugewiesen.
   Sie sparen ~PR-DiscountPrice~ ~WS-CurrencySymbol~
{/PR-Discount}
```

Auf der Warenkorbseite `ws_basket.htm`:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-Discount}
   Rabatt auf den Einzelpreis: ~BASKET-PR-Discount~ ~WS-CurrencySymbol~<br>
   Sie zahlen ~BASKET-PR-Price~ ~WS-CurrencySymbol~
   statt ~BASKET-PR-PriceWithoutDiscounts~ ~WS-CurrencySymbol~
{/BASKET-PR-Discount}
```

Referenz: [PR-Discount](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten.md) · [PR-DiscountPrice](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten.md) · [BASKET-PR-Discount](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-Price](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-PriceWithoutDiscounts](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md)

## Auftragswertrabatt

Der Auftragswertrabatt hängt am Warenwert des gesamten Warenkorbs und gilt pauschal für alle rabattierfähigen Produkte und alle Kunden.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   Discount-List = (100:3)(500:5)(1000:7)
   Discount-Txt  = abzüglich gewährter Rabatte
   ...
</OrderConditions>
```

Jede Stufe steht in einem eigenen Klammerpaar: vor dem Doppelpunkt der Warenwert, ab dem sie gilt, dahinter der Rabattsatz in Prozent. `Discount-Txt` ist die Bezeichnung, unter der der Rabatt in den Bestelldaten erscheint.

Es gilt immer die höchste Stufe, deren Schwelle erreicht ist. Die Reihenfolge in der Konfiguration spielt keine Rolle, lesbar bleibt es aufsteigend.

Eine einzelne Stufe mit der Schwelle `0` reduziert das ganze Sortiment, beispielsweise für eine Aktion "5 % auf alles".

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Discount-List = (0:5)
```

Referenz: [Abschnitt OrderConditions](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/warenkorb-und-bestellprozess.md#orderconditions)

## Produktgruppenrabatt

Produkte, für die derselbe Rabatt gelten soll, fassen Sie zu einer Rabattgruppe zusammen. Der Rabatt heißt dann Produktgruppenrabatt oder Gruppierungsrabatt. Die Produkte dürfen aus verschiedenen Kategorien stammen.

Der Vorteil liegt in der Pflege: Sie ändern einen Rabattsatz einmal für die Gruppe, statt ihn an jedem Produkt einzeln anzufassen.

> [!WARNING]
>
> Ein Produkt kann nur **einer** Rabattgruppe angehören.

Die Rabattgruppen liegen in der Konfigurationsdatei `discount.dat`. Diese Datei pflegen Sie nicht von Hand. Sie wird vom WSPManager oder von Ihrem Warenwirtschaftssystem geschrieben.

Referenz: [Konfiguration discount.dat](https://dokumentation.websale.de/v8s/referenz/konfigurationen/konfiguration-discount-dat.md)

### Schritt 1: Rabattgruppen anlegen

Im WSPManager klicken Sie links auf **Shop-Einstellungen**, dann rechts im Reiter **Grundeinstellungen** auf **Rabattgruppen bearbeiten**. Im Dialogfenster legen Sie mit der rechten Maustaste eine neue Zeile an.

![Rabattgruppen](https://mintcdn.com/websaleag-44ee7ea6/1eGKRe68jdkjqhBR/images/rabattgruppen.jpg?fit=max\&auto=format\&n=1eGKRe68jdkjqhBR\&q=85\&s=dc458f26b41bfac920841a2fb845d8f9)

Jede Zeile ist eine Stufe. Eine Gruppe kann mehrere Stufen haben, gestaffelt nach Menge oder nach Warenwert.

| Rabattgruppe | Bedingung | Rabatt |
| - | - | - |
| kBh | ab 10 Stück | 5 % |
| kBh | ab 20 Stück | 10 % |
| kBh | ab 30 Stück | 12 % |
| APC | ab 15 Euro Warenwert | 2 % |

### Schritt 2: Produkte zuordnen

Tragen Sie im Produktdatenfeld **Rabattgruppe**, technisch `DiscountID`, die gewünschte Gruppe ein.

### Schritt 3: Die Rabattgruppe anzeigen

Auf der Produktdetailseite geben Sie die Gruppe und ihre Staffelung aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-DiscountID}
   Dieses Produkt ist der Rabattgruppe <b>~PR-DiscountID~</b> zugeordnet.<br>
   Die Rabattgruppe besteht aus ~GD-Data($PR-DiscountID$)~ Staffelung(en).<br>

   {GD-Data($PR-DiscountID$)}
      <table>
         {@GD-Data($PR-DiscountID$)}
            <tr {GD-Data_DiscountGranted} style="background-color: green;" {/GD-Data_DiscountGranted}>
               <td>
                  {GD-Data_FromQuantity}ab Menge ~GD-Data_FromQuantity~{/GD-Data_FromQuantity}
                  {GD-Data_FromPrice}ab ~GD-Data_FromPrice~ Warenwert{/GD-Data_FromPrice}
               </td>
               <td><b>~GD-Data_Discount~ % Rabatt</b> (~GD-Data_ID~)</td>
            </tr>
         {/@GD-Data($PR-DiscountID$)}
      </table>
   {/GD-Data($PR-DiscountID$)}
{/PR-DiscountID}

{!PR-DiscountID}
   Dieses Produkt ist keiner Rabattgruppe zugeordnet.
{/!PR-DiscountID}
```

`GD-Data_DiscountGranted` markiert die Stufe, die gerade greift. Im Beispiel wird die Zeile damit grün hinterlegt. Das ist der Unterschied zwischen einer abstrakten Rabatttabelle und einer Anzeige, die dem Käufer seinen Stand zeigt.

Ohne den Parameter `($PR-DiscountID$)` liefert `GD-Data` alle Rabattgruppen des Shops statt nur der des aktuellen Produkts.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Für alle Produkte: ~GD-Data~<br>
{GD-Data}
   <table>
      {@GD-Data}
         <tr>
            <td>
               {GD-Data_FromQuantity}ab Menge ~GD-Data_FromQuantity~{/GD-Data_FromQuantity}
               {GD-Data_FromPrice}ab ~GD-Data_FromPrice~ Warenwert{/GD-Data_FromPrice}
            </td>
            <td><b>~GD-Data_Discount~ % Rabatt</b> (~GD-Data_ID~)</td>
         </tr>
      {/@GD-Data}
   </table>
{/GD-Data}
```

Referenz: [PR-DiscountID](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten.md) · [GD-Data()](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-rabattstaffel-auflisten) · [GD-Data\_DiscountGranted](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick) · [GD-Data\_FromQuantity](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick) · [GD-Data\_FromPrice](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick) · [GD-Data\_Discount()](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick) · [GD-Data\_ID](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick)

### Schritt 4: Den rabattierten Preis ausrechnen

Der Shop liefert den geltenden Rabattsatz, den Preis daraus rechnen Sie im Template mit den kaufmännischen Rechenfunktionen aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{GD-DiscountForID_Available($PR-DiscountID$)}
   <b>Rabattgruppe verfügbar</b><br>
   Rabatt aufgrund des Warenkorbs: ~GD-DiscountForID_Granted($PR-DiscountID$)~ %<br>

   {GD-DiscountForID_Granted($PR-DiscountID$)}
      {DC-WSTagParameter-prepare}~GD-DiscountForID_Granted($PR-DiscountID$)~{/DC-WSTagParameter-prepare}
      ~DC-CommercialCalc1_set($PR-Price$)~
      ~DC-CommercialCalc2_set($PR-Price$)~
      ~DC-CommercialCalc2_percent($DC-WSTagParameter-use$)~
      ~DC-CommercialCalc1_sub($DC-CommercialCalc2$)~
      Bedeutet für dieses Produkt: ~DC-CommercialCalc1~ ~WS-CurrencySymbol~
      (statt ~PR-Price~ ~WS-CurrencySymbol~)<br>
   {/GD-DiscountForID_Granted($PR-DiscountID$)}
{/GD-DiscountForID_Available($PR-DiscountID$)}
```

Gelesen: Rechner 1 und Rechner 2 bekommen beide den Produktpreis. Rechner 2 wird auf den Rabattprozentsatz reduziert, also auf den Rabattbetrag. Rechner 1 minus Rechner 2 ergibt den rabattierten Preis. `DC-WSTagParameter-prepare` ist nötig, weil der Prozentsatz selbst aus einem Tag stammt und nicht direkt als Parameter übergeben werden kann.

Referenz: [GD-DiscountForID\_Available()](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick) · [GD-DiscountForID\_Granted()](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md#die-tags-im-uberblick) · [DC-WSTagParameter-prepare](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md#die-tags-im-uberblick) · [DC-CommercialCalc1...3\_set](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · [DC-CommercialCalc1...3\_percent](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · [DC-CommercialCalc1...3\_sub](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · [DC-CommercialCalc1...3](https://dokumentation.websale.de/v8s/referenz/tags/dc/rechnen.md#die-tags-im-uberblick)

### Schritt 5: Die nächste Rabattstufe anzeigen

Im Warenkorb können Sie dem Käufer zeigen, ab welcher Menge oder welchem Wert die nächste Stufe gälte. Das ist der wirksamste Teil des ganzen Kapitels, weil er den Warenkorb vergrößert.

Das Beispiel durchläuft die Stufen der Rabattgruppe und vergleicht sie mit der Menge beziehungsweise der Positionssumme im Warenkorb. Der Zähler `DC-Int1` sorgt dafür, dass nur die **erste** noch nicht erreichte Stufe angezeigt wird und nicht alle.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@BASKET-PR-Data}
   ...
   {GD-DiscountForID_Available($BASKET-PR-DiscountID$)}

      {GD-DiscountForID_Granted($BASKET-PR-DiscountID$)}
         Sie bekommen einen Rabatt für die Rabattgruppe ~BASKET-PR-DiscountID~<br>
      {/GD-DiscountForID_Granted($BASKET-PR-DiscountID$)}

      {GD-Data}
         ~DC-Int1_set(0)~
         {@GD-Data}
            {GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
               {DC-CompareStringInList($GD-Data_ID$,$BASKET-PR-DiscountID$)}

                  <!-- Menge der naechsten Stufe groesser als die Menge im Warenkorb -->
                  {DC-CompareDigitGT($GD-Data_FromQuantity$,$BASKET-PR-Quantity$)}
                     ~DC-Int1_inc~
                     {DC-CompareDigitLT($DC-Int1$,2)}
                        {GD-Data_FromQuantity}
                           <b>~GD-Data_Discount~ % Rabatt ab Menge ~GD-Data_FromQuantity~</b>
                        {/GD-Data_FromQuantity}
                        <br>
                        ~DC-FPNextDiscountRate_set($GD-Data_Discount$)~
                        ~DC-CommercialCalc1_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_percent($DC-FPNextDiscountRate$)~
                        ~DC-CommercialCalc1_sub($DC-CommercialCalc2$)~
                        Bedeutet für dieses Produkt: ~DC-CommercialCalc1~ ~WS-CurrencySymbol~
                        (statt ~BASKET-PR-PriceWithoutDiscounts~ ~WS-CurrencySymbol~)
                     {/DC-CompareDigitLT($DC-Int1$,2)}
                  {/DC-CompareDigitGT($GD-Data_FromQuantity$,$BASKET-PR-Quantity$)}

                  <!-- Warenwert der naechsten Stufe groesser als die Positionssumme -->
                  {DC-CompareDigitGT($GD-Data_FromPrice$,$BASKET-PR-Sum$)}
                     ~DC-Int1_inc~
                     {DC-CompareDigitLT($DC-Int1$,2)}
                        {GD-Data_FromPrice}
                           <b>~GD-Data_Discount~ % Rabatt ab ~GD-Data_FromPrice~ Warenwert</b>
                        {/GD-Data_FromPrice}
                        <br>
                        ~DC-FPNextDiscountRate_set($GD-Data_Discount$)~
                        ~DC-CommercialCalc1_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_set($BASKET-PR-PriceWithoutDiscounts$)~
                        ~DC-CommercialCalc2_percent($DC-FPNextDiscountRate$)~
                        ~DC-CommercialCalc1_sub($DC-CommercialCalc2$)~
                        Bedeutet für dieses Produkt: ~DC-CommercialCalc1~ ~WS-CurrencySymbol~
                        (statt ~BASKET-PR-PriceWithoutDiscounts~ ~WS-CurrencySymbol~)
                     {/DC-CompareDigitLT($DC-Int1$,2)}
                  {/DC-CompareDigitGT($GD-Data_FromPrice$,$BASKET-PR-Sum$)}

               {/DC-CompareStringInList($GD-Data_ID$,$BASKET-PR-DiscountID$)}
            {/GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
         {/@GD-Data}
      {/GD-Data}

   {/GD-DiscountForID_Available($BASKET-PR-DiscountID$)}
   ...
{/@BASKET-PR-Data}
```

> [!WARNING]
>
> Der Zähler wird mit `~DC-Int1_set(0)~` **vor** der Schleife zurückgesetzt und in jedem Treffer mit `~DC-Int1_inc~` erhöht. Ohne das Zurücksetzen zählt er über alle Warenkorbpositionen weiter, und ab der zweiten Position wird nichts mehr angezeigt.

Referenz: [BASKET-PR-DiscountID](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [DC-Int1...3\_set](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · [DC-Int1...3\_inc](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · [DC-Int1...3](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · [DC-CompareStringInList](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md) · [DC-CompareDigitGT()](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md#die-tags-im-uberblick) · [DC-CompareDigitLT()](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md#die-tags-im-uberblick) · [BASKET-PR-Quantity](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/warenkorb-und-bestellprozess.md#weitere-einstellungen) · [BASKET-PR-Sum](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · BASKET-PR-PriceWithoutDiscounts

## Zahlungsartenrabatt

Einen Rabatt für eine bestimmte Zahlungsart legen Sie im Abschnitt dieser Zahlungsart fest, beispielsweise `<PaymentDebitNote-Txt>` oder `<PaymentPrepayment-Txt>`.

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

| Parameter | Bedeutung |
| - | - |
| `Discount` | die Bezeichnung für die Bestelldaten |
| `Discount-Value` | der Prozentsatz auf den Gesamtwarenwert bei Wahl dieser Zahlungsart |

Gedacht ist der Zahlungsartenrabatt dafür, Zahlungsarten mit Zahlungsgarantie attraktiver zu machen, beispielsweise Vorkasse. Er ist **kein Skonto**. Skonto knüpft an den Zahlungszeitpunkt an, dieser Rabatt an die Wahl der Zahlungsart. Wenn Sie Skonto brauchen, sprechen Sie Ihren Ansprechpartner bei der WEBSALE AG an.

Für einzelne Kreditkarten lassen sich in den Abschnitten `<Card1>` bis `<Card5>` unterschiedliche Rabatte hinterlegen.

Referenz: [PaymentXXX-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md) · Abschnitte CardX · Wegweiser: Zahlungsarten anlegen, Rabatt auf Zahlungsart anzeigen

## Kundenindividuelle Rabatte

### Rabatt auf das Sortiment

Sie können einem Kunden einen Rabatt auf das gesamte Sortiment einräumen, beispielsweise für eine Kundengruppe im Geschäftskundenbereich. Hinterlegt wird er in den Kundendaten.

In der `shop.config` lässt sich zusätzlich ein Vorgabewert setzen, der greift, wenn im Kundenkonto kein eigener Satz steht.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   Discount-Value = 3
   ...
</OrderConditions>
```

> [!WARNING]
>
> Der Kundenrabatt gilt nur für Produkte, die der Käufer **nach** dem Anmelden in den Warenkorb legt. Wer erst im Bestellablauf einloggt, bekommt auf die vorher gelegten Produkte keinen Rabatt. Weisen Sie Kunden mit Rabattanspruch deshalb früh und deutlich auf das Anmelden hin, am besten schon auf der Startseite.

Materialien: Kaufmännische Berechnungen mit DC-CommercialCalc

### Rabatt auf Zahlungs- und Lieferkosten

Unabhängig davon lässt sich je Kunde ein Rabatt oder ein vollständiger Erlass der Zahlungs- und Versandkosten hinterlegen.

Wegweiser: [Versandarten anlegen, kundenindividueller Rabatt der Versandkosten](https://dokumentation.websale.de/v8s/versandarten-anlegen/versandarten-anlegen.md) · [Zahlungsarten anlegen, kundenindividueller Rabatt für Zahlungskosten](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/zahlungsarten-anlegen.md)

## Das Zusammenspiel der Rabatte

Alle Rabattarten greifen gleichzeitig. Ein Kunde mit 15 % Kundenrabatt bekommt während einer Aktion "20 % auf alles" insgesamt 35 %. Das ist selten gewollt. Dieser Abschnitt sammelt die Schalter, mit denen Sie das steuern.

Alle stehen im Abschnitt `<OrderConditions>` der `shop.config`.

| Parameter | Voreinstellung | Regelt |
| - | - | - |
| `UseOnlyHighestDiscount-Allow` | `no` | ob nur der höchste Rabatt gilt statt aller zusammen |
| `ConsiderProductGroupDiscountForOrderDiscount-Allow` | `no` | ob der Auftragswertrabatt vom bereits gruppenrabattierten Preis ausgeht |
| `ConsiderProductGroupDiscountForOtherDiscounts-Allow` | `yes` | ob der Gruppenrabatt die Berechnungsgrundlage aller anderen Rabatte senkt |
| `ConsiderProductDiscountFactorForOrderDiscount-Allow` | `yes` | ob nur rabattierfähige Produkte zur Rabattgrenze zählen |
| `ConsiderNegativeBonusProductPriceForOrderDiscountBase` | `yes` | ob Bonuspunkt-Prämien mit negativem Preis die Rabattgrenze senken |
| `ConsiderNetProductPriceForDiscountBaseWhenTaxFreeApplies` | `no` | ob Positionsrabatte bei Drittlandbestellungen vom Netto ausgehen |
| `Discount-AllowForCustomers` | alle Kunden | ob der Auftragswertrabatt nur für angemeldete Kunden gilt |

### Nur den höchsten Rabatt gewähren

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   UseOnlyHighestDiscount-Allow = yes
   ...
</OrderConditions>
```

Stehen einem Käufer mehrere Rabatte zu, gilt nur der höchste. Der Kunde mit 15 % Kundenrabatt bekommt bei einer Aktion "20 % auf alles" also 20 %, bei einer Aktion "10 % auf alles" weiterhin seine 15 %. Die Rabatte werden nicht mehr kumuliert.

Auf der Warenkorbseite zeigen Sie an, welcher Rabatt gewonnen hat.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@BASKET-PR-Data}
   ...
   {BASKET-PR-SingleDiscountType}
      Gewährter Rabatt: ~BASKET-PR-SingleDiscountRate~ %
      (Typ: ~BASKET-PR-SingleDiscountType~)
   {/BASKET-PR-SingleDiscountType}
   ...
{/@BASKET-PR-Data}
```

Referenz: [BASKET-PR-SingleDiscountType](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-SingleDiscountRate](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md)

### Gruppenrabatt und Auftragswertrabatt

Wer Rabattgruppen und einen Auftragswertrabatt zugleich betreibt, gibt in der Voreinstellung beides. Und schlimmer: Der Auftragswertrabatt rechnet dann mit den unrabattierten Preisen, sodass die Rabattgrenze erreicht wird, obwohl der tatsächliche Warenwert darunter liegt.

Beispiel bei 5 % ab 100 Euro Auftragswert: Zehn Deko-Produkte ergäben unrabattiert 110 Euro, durch ihre Rabattgruppen tatsächlich aber nur 98 Euro. In der Voreinstellung bekommt der Käufer trotzdem den Auftragswertrabatt, weil gegen die 110 Euro gerechnet wird.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   ConsiderProductGroupDiscountForOrderDiscount-Allow = yes
   ...
</OrderConditions>
```

Mit `yes` rechnet der Auftragswertrabatt gegen die bereits gruppenrabattierten Preise, im Beispiel also gegen 98 Euro, und entfällt damit.

Der Schalter greift ausschließlich bei Produkten, die einer Rabattgruppe zugeordnet sind. Andere Produktrabatte bleiben davon unberührt.

### Gruppenrabatt am Ende abziehen

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   ConsiderProductGroupDiscountForOtherDiscounts-Allow = no
   ...
</OrderConditions>
```

In der Voreinstellung `yes` wird der Gruppenrabatt sofort vom Produktpreis abgezogen, und alle weiteren Rabatte rechnen mit dem gesenkten Preis. Mit `no` wird er stattdessen erst ganz am Ende vom Gesamtpreis abgezogen und beeinflusst die übrigen Berechnungen nicht mehr.

### Nicht rabattierfähige Produkte zur Rabattgrenze zählen

In der Voreinstellung zählen nur rabattierfähige Produkte zur Grenze des Auftragswertrabatts. Ein Warenkorb aus einem rabattierfähigen und zwei nicht rabattierfähigen Artikeln erreicht die Grenze deshalb oft nicht, obwohl er teuer ist.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   ConsiderProductDiscountFactorForOrderDiscount-Allow = no
   ...
</OrderConditions>
```

Mit `no` zählt der gesamte Warenkorb zur Grenze. Der Rabatt selbst wird weiterhin nur auf die rabattierfähigen Produkte angewandt.

Beispiel bei 5 % ab 75 Euro:

| Position | Preis | rabattierfähig |
| - | - | - |
| Katzenfutter | 20 Euro | ja |
| Buch | 50 Euro | nein |
| Gutschein | 25 Euro | nein |

In der Voreinstellung zählen nur 20 Euro, die Grenze wird nicht erreicht, es gibt keinen Rabatt. Mit `no` zählen 95 Euro, die Grenze ist erreicht, und der Käufer bekommt 5 % auf das Katzenfutter, zahlt dafür also 19 Euro.

### Bonuspunkt-Prämien mit negativem Preis

Prämienprodukte mit negativem Preis senken den Auftragswert wie eine Gutschrift. Damit kann ein Käufer durch das Einlösen seiner Punkte unter die Rabattgrenze rutschen und den Rabatt verlieren. Das wirkt wie eine Bestrafung für Treue.

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

Mit `no` bleiben diese Prämienprodukte aus der Berechnungsgrundlage heraus. Bei 5 % ab 75 Euro und einem Warenkorb von 80 Euro plus einer Prämie über minus 10 Euro bleibt die Grenze damit erreicht.

Wegweiser: [Bonuspunktesystem betreiben](https://dokumentation.websale.de/v8s/marketing-funktionen/eigenes-bonuspunktesystem-betreiben.md)

### Auftragswertrabatt nur für angemeldete Kunden

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   Discount-AllowForCustomers = loggedIn
   ...
</OrderConditions>
```

In der Voreinstellung bekommt jeder Käufer den Auftragswertrabatt, auch der Gastbesteller. Mit `loggedIn` bekommt ihn nur, wer angemeldet ist.

### Positionsrabatte bei Drittlandbestellungen

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

Bei steuerfreien Drittlandbestellungen werden prozentuale Rabatte auf Positionsebene in der Voreinstellung vom Bruttobetrag berechnet. Mit `yes` rechnet der Shop sie stattdessen vom zurückgerechneten Nettobetrag.

### Eigener Auftragswertrabatt für die App

Für Bestellungen aus der App lässt sich eine eigene Rabattstaffel hinterlegen.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<OrderConditions>
   ...
   AppDiscount-List              = (100:10)(500:15)
   AppDiscount-AllowForCustomers = loggedIn
   ...
</OrderConditions>
```

> [!WARNING]
>
> Sobald `AppDiscount-List` gefüllt ist, **ersetzt** sie in der App die Liste aus `Discount-List` vollständig. Der allgemeine Auftragswertrabatt gilt dann nur noch außerhalb der App. Ohne `AppDiscount-List` gilt auch in der App die allgemeine Staffel.

`AppDiscount-AllowForCustomers` wirkt für die App genauso wie `Discount-AllowForCustomers` für den Shop und wird zusammen mit der App-Liste ausgewertet.

Im Template geben Sie den Satz aus und weisen darauf hin, dass der App-Rabatt greift.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{WS-AppDiscountRate}
   Ihr Auftragswertrabatt beträgt ~WS-AppDiscountRate~ %
{/WS-AppDiscountRate}

{WS-AppDiscountApplies}
   Für Ihre Bestellung wird der App-spezifische Auftragswertrabatt angewendet.
{/WS-AppDiscountApplies}
```

Referenz: [Abschnitt OrderConditions](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/warenkorb-und-bestellprozess.md#orderconditions) · [WS-AppDiscountRate](https://dokumentation.websale.de/v8s/referenz/tags/ws/warenkorb-preise-waehrung-und-bonus.md#die-tags-im-uberblick) · [WS-AppDiscountApplies](https://dokumentation.websale.de/v8s/referenz/tags/ws/warenkorb-preise-waehrung-und-bonus.md#die-tags-im-uberblick)

## Anzeige im Checkout

### Die Summen

Zwei Tags fassen die gewährten Rabatte zusammen, mit unterschiedlichem Umfang.

| Tag | Enthält |
| - | - |
| `BASKET-GlobalDiscount` | alle globalen Rabatte, beispielsweise Auftragswert-, Gruppen-, Kunden- und Zahlungsartenrabatt. Rabatte, die bereits im Positionspreis stecken, sind **nicht** enthalten |
| `BASKET-TotalDiscount` | alle Rabatte und Vergünstigungen zusammen, einschließlich Versandkostenrabatt und Gutscheinen, und auch der bereits in den Positionspreisen verrechneten |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-GlobalDiscount}
   Abzüglich gewährter Rabatte: ~BASKET-GlobalDiscount~ ~WS-CurrencySymbol~
{/BASKET-GlobalDiscount}

{BASKET-TotalDiscount}
   Abzüglich gewährter Rabatte und Vergünstigungen:
   ~BASKET-TotalDiscount~ ~WS-CurrencySymbol~
{/BASKET-TotalDiscount}
```

> [!WARNING]
>
> Geben Sie nicht beide Tags nebeneinander aus. Sie überschneiden sich, und der Käufer liest zwei verschiedene Rabattsummen für denselben Warenkorb. Entscheiden Sie sich für eines.

Referenz: [BASKET-GlobalDiscount](https://dokumentation.websale.de/v8s/referenz/tags/basket/warenkorbsummen.md#abzuge) · [BASKET-TotalDiscount](https://dokumentation.websale.de/v8s/referenz/tags/basket/warenkorbsummen.md#abzuge)

### Rabatte je Warenkorbposition

In der Voreinstellung werden diese Rabatte vom Gesamtwarenkorb abgezogen. Sie können sie stattdessen sofort in den Positionspreis einrechnen und dort ausweisen.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<BasketEntries>
   ...
   ShowProductGroupDiscount = entry
   ShowUserDiscount         = entry
   ShowOrderDiscount        = entry
   ShowPaymentDiscount      = entry
   ...
</BasketEntries>
```

| Wert | Wirkung |
| - | - |
| `global` | Der Rabatt wird vom Gesamtwarenkorb abgezogen. Voreinstellung |
| `entry` | Der Rabatt wird sofort verrechnet und je Position ausgewiesen |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-OrderDiscount}
   Auftragswertrabatt: ~BASKET-PR-OrderDiscount~ ~WS-CurrencySymbol~
   (~BASKET-PR-OrderDiscountRate~ %)
{/BASKET-PR-OrderDiscount}

{BASKET-PR-UserDiscount}
   Kundenrabatt: ~BASKET-PR-UserDiscount~ ~WS-CurrencySymbol~
   (~BASKET-PR-UserDiscountRate~ %)
{/BASKET-PR-UserDiscount}

{BASKET-PR-PaymentDiscount}
   Zahlungsartenrabatt: ~BASKET-PR-PaymentDiscount~ ~WS-CurrencySymbol~
   (~BASKET-PR-PaymentDiscountRate~ %)
{/BASKET-PR-PaymentDiscount}

{BASKET-PR-ProductGroupDiscount}
   Produktgruppenrabatt: ~BASKET-PR-ProductGroupDiscount~ ~WS-CurrencySymbol~
   (~BASKET-PR-ProductGroupDiscountRate~ %)
{/BASKET-PR-ProductGroupDiscount}
```

Die Umstellung auf `entry` verändert, was `BASKET-GlobalDiscount` ausgibt: Ein Rabatt, der bereits im Positionspreis steckt, taucht dort nicht mehr auf. Prüfen Sie Ihre Warenkorbsummen nach jeder Änderung an diesen vier Parametern.

Referenz: [Abschnitt BasketEntries](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/warenkorb-und-bestellprozess.md#basketentries) · [BASKET-PR-OrderDiscount](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-OrderDiscountRate](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-UserDiscount](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-UserDiscountRate](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-PaymentDiscount](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-PaymentDiscountRate](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-ProductGroupDiscount](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md) · [BASKET-PR-ProductGroupDiscountRate](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md)

## Verwandte Themen

* Wegweiser: Gutscheine anbieten
* Wegweiser: Bonuspunktesystem betreiben
* Wegweiser: [Warenkorb](https://dokumentation.websale.de/v8s/marketing-produkte/geschenkprodukte.md#warenkorb)


## Related topics

- [Preise und Kosten](https://dokumentation.websale.de/v8s/preise/preise-und-kosten.md)
- [Eigenes Bonuspunktesystem betreiben](https://dokumentation.websale.de/v8s/marketing-funktionen/eigenes-bonuspunktesystem-betreiben.md)
- [BestPrice-Order-Modul](https://dokumentation.websale.de/v8s/interaktive-funktionen/bestprice-order-modul.md)
- [GD- (Gruppierungsrabatte)](https://dokumentation.websale.de/v8s/referenz/tags/gd-gruppierungsrabatte.md)
- [Abo-Modul](https://dokumentation.websale.de/v8s/marketing-funktionen/abo-modul.md)


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