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

# "Nimm 3 zahl 2"-Produkte

> Wie Sie in WEBSALE V8s Mengenaktionen nach dem Muster "Nimm X zahl Y" einrichten, bei denen die günstigsten Produkte als Rabatt verrechnet werden.

Bei einer Aktion nach dem Muster "Nimm 3 zahl 2" bekommt der Käufer das günstigste Produkt kostenlos, sobald er mindestens drei gekennzeichnete Aktionsprodukte bestellt. Das kostenlose Produkt wird nicht ausgebucht, sondern als Rabatt verrechnet. Die Aktion lässt sich zeitlich begrenzen.

![Kauf3zahl2 Kategorie](https://mintcdn.com/websaleag-44ee7ea6/98HtpcQDYdzjmpoC/images/kauf3zahl2_kategorie.jpg?fit=max\&auto=format\&n=98HtpcQDYdzjmpoC\&q=85\&s=305377fe7a519862a5cbe579d203453b)

Das Verhältnis 3 zu 2 ist nur der bekannteste Fall. Frei wählbar sind auch "Nimm 2 zahl 1", "Nimm 4 zahl 3", "Nimm 5 zahl 4" und jedes andere Verhältnis, solange die bestellte Menge größer ist als die zu bezahlende. Im Folgenden heißt die Aktion deshalb allgemein "Nimm X zahl Y".

## Voraussetzung

Die Aktion wird von den meisten an WEBSALE angeschlossenen ERP-Systemen unterstützt und muss deshalb in der Regel nicht eigens implementiert werden. Ihr WEBSALE-Ansprechpartner stellt Ihnen eine gesonderte Leistungsbeschreibung zur Verfügung, die Sie Ihrem ERP-Anbieter zur Prüfung vorlegen können.

> [!WARNING]
>
> "Nimm X zahl Y"-Rabatte werden bei produktabhängiger Erhebung des Mindermengenzuschlags nicht berücksichtigt. Der Zuschlag rechnet dann mit den ungerabatteten Beträgen.

Wegweiser: [Mindermengenzuschlag produktabhängig erheben](https://dokumentation.websale.de/v8s/weitere-funktionen-im-bestellprozess-kontext/mindestbestellwert-und-mindermengenzuschlag.md)

## Wie sich die Aktion vervielfacht

Das festgelegte Verhältnis gilt automatisch auch für jedes Vielfache davon. Abschalten lässt sich das nicht.

Für die Aktion "Nimm 3 zahl 2" ergibt sich damit:

| Aktionsprodukte im Warenkorb | Zu bezahlen |
| - | - |
| 3 | die 2 teuersten |
| 6 | die 4 teuersten |
| 9 | die 6 teuersten |
| 12 | die 8 teuersten |

Welche und wie viele Produkte als Rabatt verrechnet werden, ermittelt der Shop selbst. Rabattiert werden immer die günstigsten. Dabei zählen alle Positionen mit derselben Aktions-ID zusammen, nicht nur gleiche Produkte.

## Schritt 1: Produktdatenfeld anlegen

Produkte nehmen an einer Aktion teil, indem sie deren ID tragen. Legen Sie dafür im WSPManager unter **Subshop-Einstellungen > Erweitert > Freie Felder** ein Produktdatenfeld an.

| Technischer Feldname | Typ | Werte |
| - | - | - |
| `BuyXPayYID` | Text einzeilig | Name der Aktion, wie in der `shop.config` definiert, beispielsweise `Herbst` |

## Schritt 2: Aktion in der Shopkonfiguration definieren

Jede Aktion ist ein eigener `<+Entry>` im Abschnitt `<BuyXPayY>` der `shop.config`.

Im folgenden Beispiel läuft die Aktion "Herbst" vom 20.09.2026 bis 30.11.2026. Von vier bestellten Produkten sind drei zu bezahlen.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<BuyXPayY>
   <+Entry>
      Allow      = yes
      ID         = Herbst
      Descr      = Aktion "Nimm 4 zahle 3"
      BuyX       = 4
      PayY       = 3
      ValidFrom  = 20.09.2026
      ValidUntil = 30.11.2026
   </+Entry>
</BuyXPayY>
```

### Pflichtangaben

| Parameter | Bedeutung |
| - | - |
| `Allow` | nur der Wert `yes` aktiviert den Eintrag |
| `ID` | Name der Aktion, damit werden die Produkte gekennzeichnet |
| `BuyX` | Anzahl der bestellten Produkte |
| `PayY` | Anzahl der zu bezahlenden Produkte |

`BuyX` muss größer sein als `PayY`. Ist das nicht der Fall, verwirft der Shop den Eintrag wortlos, und die Aktion existiert schlicht nicht.

### Optionale Angaben

| Parameter | Ohne Angabe |
| - | - |
| `ValidFrom` | die Aktion startet, sobald der Eintrag in der `shop.config` steht |
| `ValidUntil` | die Aktion läuft unbegrenzt |
| `Descr` | es wird keine Aktionsbeschreibung ausgegeben |

> [!WARNING]
>
> Beide Datumsangaben müssen genau dem Format `TT.MM.JJJJ` folgen und exakt zehn Zeichen lang sein. Eine abweichende Schreibweise wird nicht als Fehler gemeldet, sondern als "keine Angabe" gewertet. Aus einem Tippfehler im Enddatum wird so eine Aktion ohne Ende.

Liegt der aktuelle Tag außerhalb des Zeitraums, verwirft der Shop den Eintrag beim Einlesen der Konfiguration. Eine abgelaufene Aktion ist damit nicht nur wirkungslos, sondern gar nicht vorhanden, und auch die Kennzeichnungs-Tags greifen nicht mehr.

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

## Schritt 3: Produkte kennzeichnen

Tragen Sie bei allen teilnehmenden Produkten die ID aus der Konfiguration in das Feld `BuyXPayYID` ein.

| Produkt | `BuyXPayYID` | Ergebnis |
| - | - | - |
| A | `Herbst` | nimmt an der Aktion "Herbst" teil |
| B | leer | nimmt an keiner Aktion teil |

Bei Set-Produkten lässt sich die Aktion nicht anwenden.

## Schritt 4: Aktionsprodukte im Shop hervorheben

Überall dort, wo Produkte innerhalb von `PR-Data` erscheinen, lassen sich Aktionsprodukte kennzeichnen. Das betrifft die Produktübersicht `ws_category.htm`, die Suchergebnisseite `ws_search.htm`, die Merkliste `ws_memolist.htm`, Produktlisten wie CrossLinks und natürlich die Produktdetailansicht `ws_product.htm`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-BuyXPayY}
   <span class="aktion">~PR-BuyXPayY_Descr~</span>
{/PR-BuyXPayY}
```

Statt der Beschreibung können Sie an dieser Stelle ebenso ein Icon oder eine eigene Formatierung setzen.

## Schritt 5: Warenkorbseite anpassen

Für die Summenberechnung brauchen Sie keine besonderen Tags. Das kostenlose Produkt wird als Rabatt verrechnet und erscheint in [`BASKET-GlobalDiscount`](https://dokumentation.websale.de/v8s/referenz/tags/basket/warenkorbsummen#abzuge).

Kennzeichnen Sie die Aktionspositionen innerhalb der Positionsschleife und geben Sie die Summen danach aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-Data}
   {@BASKET-PR-Data}
      ...
      {BASKET-PR-BuyXPayY}
         <span class="aktion">~BASKET-PR-BuyXPayY_Descr~</span>
      {/BASKET-PR-BuyXPayY}
      ...
   {/@BASKET-PR-Data}
{/BASKET-PR-Data}

{BASKET-GlobalDiscount}
   Abzüglich gewährter Rabatte: ~BASKET-GlobalDiscount~ ~WS-CurrencySymbol~
{/BASKET-GlobalDiscount}

{BASKET-OrderTotal}
   Gesamtsumme: ~BASKET-OrderTotal~ ~WS-CurrencySymbol~
{/BASKET-OrderTotal}
```

`BASKET-GlobalDiscount` und [`BASKET-OrderTotal`](https://dokumentation.websale.de/v8s/referenz/tags/basket/warenkorbsummen#warenwert-und-zwischensumme) sind Summen des gesamten Warenkorbs und gehören deshalb hinter den Positionsbereich, nicht in ihn hinein.

Zusätzlich gibt `BASKET-PR-BuyXPayY_AffectedQty` aus, wie viele Stück dieser Position tatsächlich rabattiert wurden.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-BuyXPayY}
   Davon kostenlos: ~BASKET-PR-BuyXPayY_AffectedQty~
{/BASKET-PR-BuyXPayY}
```


## Related topics

- [Besondere Produktarten im Warenkorb](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb.md)
- [Rabatte festlegen](https://dokumentation.websale.de/v8s/weitere-funktionen-im-bestellprozess-kontext/rabatte-festlegen.md)
- [Mindestbestellwert und Mindermengenzuschlag](https://dokumentation.websale.de/v8s/weitere-funktionen-im-bestellprozess-kontext/mindestbestellwert-und-mindermengenzuschlag.md)
- [Preise, Steuern und Währung](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/preise-steuern-und-waehrung.md)
- [Altersbeschränkte Produkte](https://dokumentation.websale.de/v8s/produkte/altersbeschraenkte-produkte.md)


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