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

# Set-Produkte mit fester Zusammenstellung

> Wie Sie in WEBSALE V8s ein Set aus Oberprodukt und Unterprodukten aufbauen, Preise und Lagerbestand berechnen lassen und das Set im Template darstellen.

Ein Set-Produkt besteht aus einem Oberprodukt und mindestens einem Unterprodukt, beispielsweise eine Akku-Handkreissäge mit Wechselakku, Ladegerät und Sägeblättern. Der Käufer bestellt das Set als Ganzes, geliefert werden alle Teile.

Ein Set ist nur vollständig bestellbar. Genau darin unterscheidet es sich von Gruppierungsprodukten, bei denen die Teile einzeln in den Warenkorb wandern.

Wegweiser: [Gruppierungsprodukte anzeigen](https://dokumentation.websale.de/v8s/produkte/gruppierungsprodukte-anzeigen.md)

## Preisbildung

Wie der Setpreis zustande kommt, legen Sie in den Produktdaten fest. Vier Wege stehen zur Wahl, und zwei davon lassen sich parallel anbieten.

| Weg | Ergebnis |
| - | - |
| nur das Oberprodukt hat einen Preis | ein fester Setpreis, unabhängig von den Einzelpreisen |
| Unterprodukt-Einzelpreise werden addiert | der Setpreis ist die Summe der Teile |
| beides parallel | fester Setpreis und ausgewiesene Einzelpreise nebeneinander |

Je Unterprodukt entscheiden Sie, ob sein Preis in die Summe eingeht.

## Das Set-Oberprodukt

Das Oberprodukt trägt die Hauptdaten des Sets: Preis, Beschreibung, Bebilderung, Menge und Lieferstatus.

Vier Einstellungen gelten ausschließlich hier und werden an Unterprodukten ignoriert:

* Mindestbestellmenge
* maximale Bestellmenge
* Lieferbarkeit des Sets
* Texte des Lieferstatus

Auch die Bestellmenge gibt der Käufer nur am Oberprodukt ein.

## Die Set-Unterprodukte

Jedes Unterprodukt braucht mindestens einen Produktnamen und eine Produktnummer. Darüber hinaus können Sie beliebige weitere Produktdaten anzeigen, und Unterprodukte dürfen eigene abhängige Varianten und eigene Lagerbestände haben.

Je Unterprodukt stehen diese Einstellungen zur Verfügung:

| Einstellung | Wirkung |
| - | - |
| Preis addieren | der Einzelpreis fließt in den Setpreis ein oder eben nicht |
| Mengenfaktor | wird mit der Bestellmenge des Sets multipliziert |
| Fixe Menge | unabhängig von der Bestellmenge, immer dieselbe Stückzahl |
| Nur als Set-Teil bestellbar | das Produkt lässt sich nicht einzeln in den Warenkorb legen |
| Verdeckt | das Produkt erscheint nicht im Shop, wird dem Händler aber in den Bestelldaten übergeben |

Für den Versuch, ein nur als Set-Teil bestellbares Produkt einzeln zu bestellen, hinterlegen Sie den Meldungstext `OnlyAsSetChild` im Abschnitt `<[NotifyMessages-Txt](/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/texte-und-meldungen#notifymessages-txt)>` der `shop.config`.

## Beispiel eines Sets

Eine Handkreissäge mit Wechselakku und Ladegerät, Sägeblättern für verschiedene Einsatzzwecke sowie einem gedruckten und einem PDF-Handbuch.

Jedes Teil wird in den Produktdaten als eigenständiges Produkt angelegt. Das Set selbst ist das Oberprodukt, die übrigen sind Unterprodukte.

| Unterprodukt | Besonderheit |
| - | - |
| Handkreissäge | keine |
| Akku | keine |
| Ladegerät | keine |
| Sägeblätter | Mengenfaktor 4 |
| gedrucktes Handbuch | keine |
| PDF-Handbuch | fixe Menge 1 |

Bei einer Bestellmenge von 3 wird daraus:

| Menge | Produkt |
| - | - |
| 3 | Handkreissäge |
| 3 | Akku |
| 3 | Ladegerät |
| 12 | Sägeblätter |
| 3 | gedrucktes Handbuch |
| 1 | PDF-Handbuch |

Das PDF-Handbuch ist als Download-Produkt von der Bestellmenge unabhängig, deshalb die fixe Menge.

## Lagerbestand eines Sets

Der Lagerbestand des Sets ergibt sich aus den Beständen aller Unterprodukte, jeweils geteilt durch ihren Mengenfaktor. Maßgeblich ist das knappste Teil.

| Produkt | Lagerbestand | Bedarf je Set | Daraus mögliche Sets |
| - | - | - | - |
| Handkreissäge | 57 | 1 | 57 |
| Akku | 180 | 1 | 180 |
| Sägeblätter | 40 | 4 | 10 |
| gedrucktes Handbuch | 60 | 1 | 60 |
| PDF-Handbuch | ohne Bestand | 1 fix | unbegrenzt |

Der Lagerbestand des Sets beträgt damit 10. Läge der Bestand der Sägeblätter bei 3, wäre das Set ausverkauft, weil vier Blätter je Set gebraucht werden.

Die Texte des Lieferstatus definieren Sie nur am Oberprodukt, obwohl der Bestand aus allen Teilen gebildet wird.

## Set-Unterprodukte und Kategorien

Werden Unterprodukte nicht einzeln verkauft, weisen Sie sie keiner Kategorie zu. Damit erscheinen sie weder in Kategorielisten noch in den Ergebnissen der Produktsuche. Auffindbar ist dann nur das Oberprodukt.

## Staffelpreise bei Sets

Enthält Ihr Angebot Sets mit Staffelpreisen, verwenden Sie diese beiden Tags. Sie berücksichtigen die eingegebene Menge, den Staffelpreis und einen etwaigen Kundenrabatt.

| Tag | Ausgabe |
| - | - |
| `PR-SetPriceConsiderQuantity` | Stückpreis des Sets zur eingegebenen Menge |
| `PR-SetTotalPriceConsiderQuantity` | Gesamtpreis des Sets zur eingegebenen Menge |

> [!WARNING]
>
> Beide Tags arbeiten nur für ein Set-Oberprodukt auf der Produktdetailansicht `ws_product.htm`.
>
> Nach einer Mengeneingabe muss die Seite neu geladen werden, sonst zeigen sie noch den alten Wert. Üblich ist ein Nachladen per AJAX.

Wegweiser: [Abhängige Varianten per AJAX nachladen](https://dokumentation.websale.de/v8s/abhaengige-varianten/abhaengige-varianten-per-ajax-nachladen.md)

## Darstellung im Template

Set-Unterprodukte werden auf drei Templates angezeigt:

* Produktdetailansicht `ws_product.htm`
* Direktbestellformular `ws_direct_order.htm`
* Merkliste `ws_memolist.htm`

### Unterprodukte auflisten

Weil Unterprodukte aus verschiedenen Kategorien stammen können, fasst der Shop sie in einer Sonderliste zusammen. Angesprochen wird sie über den Pseudo-Kategorieindex `$SetProducts`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-SetParent}
   Diese Teile gehören zum Set:
   {CAT-AdvData($SetProducts,99)}
      {@PR-Data}
         ~PR-Name~ (~PR-Number~)<br>
      {/@PR-Data}
   {/CAT-AdvData($SetProducts,99)}
{/PR-SetParent}
```

Die Klammerung [`PR-SetParent`](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten) trifft nur zu, wenn das Produkt ein Set-Oberprodukt ist. Damit steht derselbe Block gefahrlos auf einem Template, das auch normale Produkte ausgibt.

### Summen des Sets

| Tag | Inhalt |
| - | - |
| [`PR-SetPrice`](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten) | Setpreis, wenn die Unterproduktpreise addiert werden |
| [`PR-SetWeight`](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten) | Gesamtgewicht aus den Gewichten der Unterprodukte |

Auf der Merkliste geben Sie zusätzlich die gewählten Varianten mit [`PR-MemoListVariations`](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten) aus.

### Mehrere Set-Produkte auf einer Seite

Standardmäßig lässt sich ein Set nur über seine Produktdetailansicht in den Warenkorb legen. Mit einem Parameter geben Sie das frei, sodass mehrere Sets auf einer Seite stehen und von dort bestellt werden können. Auch eine freie Positionierung über `PR-LoadData` wird damit möglich.

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

| Wert | Wirkung |
| - | - |
| `no` oder fehlt | Sets nur über die Produktdetailansicht bestellbar |
| `test` | Freigabe nur im Testmodus des Shops |
| `yes` | Freigabe im Produktivbetrieb |

Der Wert `test` ist für die Erprobung gedacht: Sie prüfen die neue Platzierung im Testmodus, während Käufer im laufenden Shop weiterhin den bisherigen Weg nutzen.

Referenz: [Abschnitt Basic](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik.md#basic)

## Verwandte Themen

* Wegweiser: [Gruppierungsprodukte anzeigen, wenn die Teile einzeln bestellbar sein sollen](https://dokumentation.websale.de/v8s/produkte/gruppierungsprodukte-anzeigen.md)
* Wegweiser: [Produktpreise](https://dokumentation.websale.de/v8s/produkte/produktpreise.md)


## Related topics

- [Cross-Link-Set](https://dokumentation.websale.de/v8s/set-produkte/cross-link-set.md)
- [Prime-Shopping](https://dokumentation.websale.de/v8s/marketing-funktionen/prime-shopping.md)
- [Verteilungsprodukte anbieten (Prospektservice)](https://dokumentation.websale.de/v8s/produkte/verteilungsprodukte-anbieten-prospektservice.md)
- [Warenkorb anzeigen und löschen](https://dokumentation.websale.de/v8s/warenkorb/warenkorb-anzeigen-loeschen.md)
- [Produkt mit bestimmter Variantenkombination anzeigen](https://dokumentation.websale.de/v8s/abhaengige-varianten/produkt-mit-bestimmter-variantenkombination-anzeigen.md)


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