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

# Texteingabefelder zum Produkt

> Wie Sie in WEBSALE V8s Eingabefelder, Checkboxen und versteckte Werte am Produkt erfassen und in Warenkorb und Bestelldaten übernehmen.

Manche Produkte brauchen eine Angabe vom Käufer, beispielsweise den Text einer Gravur oder einer Bestickung. WEBSALE V8s kennt dafür drei Wege, die sich darin unterscheiden, wo das Feld definiert wird und ob der Käufer es überhaupt sieht.

| Weg | Definiert in | Anzahl | Sichtbar |
| - | - | - | - |
| TextInputFields | Produktdaten, je Produkt | bis zu 10 | ja |
| ExtraInput | nur im Template | bis zu 20 | ja, oder versteckt |
| SpecialInput | nur im Template | 1 | nein |

Die Wahl hängt an einer Frage: Soll das Feld nur bei bestimmten Produkten erscheinen und dort auch geprüft werden, dann sind es TextInputFields. Soll es unabhängig von den Produktdaten überall verfügbar sein, dann ExtraInput oder SpecialInput.

> [!NOTE]
>
> Für Eingabefelder und Checkboxen je Warenkorbposition gibt es zwei weitere Mechanismen, die auf der Warenkorbseite statt auf der Produktseite arbeiten.
>
> Wegweiser: [Freie Text-Eingabefelder im Warenkorb auf Positionsebene (AdditionalUserInput)](https://dokumentation.websale.de/v8s/warenkorb/freie-eingabefelder-im-warenkorb-auf-positionsebene.md)
>
> Wegweiser: Freie Felder (Input/Checkbox) auf Split-Positionsebene (BasketProductOptions)

## TextInputFields: Felder aus den Produktdaten

Je Produkt lassen sich bis zu zehn Texteingabefelder auf der Produktdetailansicht `ws_product.htm` anbieten. Weil sie in den Produktdaten stehen, erscheinen sie nur bei den Produkten, die sie brauchen.

### Voraussetzung: Produktdaten pflegen

Im WSPManager definieren Sie je Feld im Produktdatenfeld "Texteingabefelder":

| Einstellung | Bedeutung |
| - | - |
| Anzahl der Zeilen | Höhe des Eingabefelds |
| Anzahl der sichtbaren Zeichen | Breite des Eingabefelds |
| Anzahl maximal eingebbarer Zeichen | Begrenzung der Eingabe |
| Pflichtfeld oder optional | ob eine Eingabe verlangt wird |

Ohne eigene Angaben gelten die Vorgabewerte des WSPManagers. Pflichtfelder erhalten automatisch ein Sternsymbol hinter dem Feldnamen.

### Schritt 1: Fehlermeldung hinterlegen

Bleibt ein Pflichtfeld leer, zeigt der Shop eine Meldung. Hinterlegen Sie den Text in der `shop.config` im Abschnitt `<NotifyMessages-Txt>`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyMessages-Txt>
   ...
   TextInputFieldError = Die Angaben zum erforderlichen Feld "~PR-TextInputName~" fehlen. Bitte ergänzen Sie Ihre Eingaben.
   ...
</NotifyMessages-Txt>
```

Über `~PR-TextInputName~` benennt die Meldung das betroffene Feld, statt nur allgemein auf eine fehlende Eingabe hinzuweisen.

Referenz: [Abschnitt NotifyMessages-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/texte-und-meldungen.md#notifymessages-txt)

### Schritt 2: Felder auf der Produktdetailansicht ausgeben

Der äußere Bereich [`PR-TextInputFields`](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten) trifft zu, wenn das Produkt überhaupt Texteingabefelder hat. Darin steht je Feld ein eigener Bereich `PR-TextInputName1` bis `PR-TextInputName10`, der nur bei vorhandenem Feld greift.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-TextInputFields}
   {PR-TextInputName1}
      ~PR-TextInputName1~: ~PR-TextInputField1~
   {/PR-TextInputName1}

   {PR-TextInputName2}
      ~PR-TextInputName2~: ~PR-TextInputField2~
   {/PR-TextInputName2}
{/PR-TextInputFields}
```

`~PR-TextInputName1~` gibt die Bezeichnung aus, `~PR-TextInputField1~` das fertige Eingabefeld samt der in den Produktdaten hinterlegten Maße.

Die negierte Klammerung zeigt einen Ersatztext für Produkte ohne Eingabefelder.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{!PR-TextInputFields}
   <!-- Text für Produkte ohne Texteingabefelder -->
{/!PR-TextInputFields}
```

### Schritt 3: Eingaben im Warenkorb anzeigen

Im Warenkorb sind die Felder nicht durchnummeriert, sondern werden als Schleife durchlaufen. [`BASKET-PR-TextInputFields`](https://dokumentation.websale.de/v8s/referenz/tags/basket/besondere-produktarten-im-warenkorb) dient dabei zugleich als Klammerung und als Schleife: Die Klammerung prüft, ob die Position überhaupt Eingaben hat, die Schleife `{@…}` geht sie durch.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-TextInputFields}
   {@BASKET-PR-TextInputFields}
      ~BASKET-PR-TextInputName~: ~BASKET-PR-TextInputValue~<br>
   {/@BASKET-PR-TextInputFields}
{/BASKET-PR-TextInputFields}
```

## ExtraInput: Felder ohne Produktdaten

ExtraInput-Felder brauchen keine Pflege in den Produktdaten. Bis zu 20 Felder stehen pauschal zur Verfügung, ihre Inhalte landen je Warenkorbposition in den Bestelldaten.

Weil sie nicht in den Produktdaten stehen, gibt es hier auch keine Pflichtfeldprüfung und keine vorgegebenen Feldmaße. Beides legen Sie selbst im Template fest.

### Schritt 1: Felder auf der Produktdetailansicht einbauen

Die Felder gehören in das Produktformular. Der Feldname kommt aus `PR-ExtraInput_input_1` bis `PR-ExtraInput_input_20`. Der Feldtyp ist frei wählbar.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-Data}
   <form action="~FORM-Product~" method="post" name="product" id="productform">
      ...
      <input type="text" name="~PR-ExtraInput_input_1~" value=""><br>
      <input type="checkbox" name="~PR-ExtraInput_input_2~"><br>
      <input type="hidden" name="~PR-ExtraInput_input_3~" value="AKTION XYZ">
      ...
   </form>
{/PR-Data}
```

### Schritt 2: Eingaben im Warenkorb ausgeben

Innerhalb der Schleife `{@BASKET-PR-Data}` geben Sie die Werte je Position aus. Die Klammerung sorgt dafür, dass nur gefüllte Felder erscheinen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BASKET-PR-ExtraInput_1}
   ~BASKET-PR-ExtraInput_1~<br>
{/BASKET-PR-ExtraInput_1}

{BASKET-PR-ExtraInput_2}
   ~BASKET-PR-ExtraInput_2~<br>
{/BASKET-PR-ExtraInput_2}
```

### Schritt 3: Eingaben beim Ändern vorbelegen (optional)

Ändert der Käufer eine Warenkorbposition, landet er wieder auf der Produktdetailansicht. Damit seine bisherigen Eingaben dort nicht verloren wirken, geben Sie sie mit `PR-ExtraInput_1` bis `PR-ExtraInput_20` aus. Außerhalb des Ändern-Modus liefern diese Tags nichts.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-ExtraInput_1}
   ~PR-ExtraInput_1~
{/PR-ExtraInput_1}
```

## SpecialInput: versteckter Wert für die Bestelldaten

Das versteckte Feld schreibt einen fest vorgegebenen Wert in die Bestelldaten, ohne dass der Käufer etwas eingibt oder sieht. Typisch ist eine Aktions- oder Kampagnenkennung.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PR-Data}
   <form action="~FORM-Product~" method="post" name="product" id="productform">
      ...
      <input type="hidden" name="~PR-SpecialInput_input~" value="AKTION XYZ">
      ...
   </form>
{/PR-Data}
```

Anders als bei ExtraInput gibt es hier nur ein einziges Feld.

Referenz: [PR-SpecialInput\_input](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten.md)

## Verwandte Themen

* Wegweiser: [Gewähltes Produkt anzeigen](https://dokumentation.websale.de/v8s/produkte/gewaehltes-produkt-anzeigen.md)
* Wegweiser: [Produktpreise](https://dokumentation.websale.de/v8s/produkte/produktpreise.md)


## Related topics

- [Produkt in den Warenkorb legen](https://dokumentation.websale.de/v8s/warenkorb/produkt-in-warenkorb-legen.md)
- [Freie Produktfelder im Warenkorb anzeigen](https://dokumentation.websale.de/v8s/warenkorb/freie-produktfelder-im-warenkorb-anzeigen.md)
- [Freie Eingabefelder im Warenkorb auf Positionsebene](https://dokumentation.websale.de/v8s/warenkorb/freie-eingabefelder-im-warenkorb-auf-positionsebene.md)
- [Geschenkverpackung zum Produkt](https://dokumentation.websale.de/v8s/produkte/geschenkverpackung-zum-produkt.md)
- [Materialien Produktmenüs](https://dokumentation.websale.de/v8s/materialien/materialien-produktmenues.md)


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