RcCustomFields: Individuelle Eingabefelder für Shopware-Produkte
Ein Kunde will einen Pokal mit Gravur bestellen. Er legt das Produkt in den Warenkorb — aber wo gibt er seinen Wunschtext ein? Shopware bietet dafür keine Lösung. Varianten decken nur vordefinierte Auswahlmöglichkeiten ab, nicht individuelle Freitexteingaben. RcCustomFields schließt genau diese Lücke mit konfigurierbaren Eingabefeldern auf der Produktdetailseite.
Warum Varianten hier nicht funktionieren
Shopware kennt Varianten — Farbe Rot, Größe XL, Material Holz. Die sind für vordefinierte Optionen gedacht und erzeugen pro Kombination einen eigenen Datensatz in der Datenbank. Bei individuellen Eingaben macht das keinen Sinn. Jeder Gravurtext wäre eine eigene Variante, jede Maßangabe ein neuer Datensatz. Das skaliert nicht.
RcCustomFields geht einen anderen Weg: Die Kundeneingaben werden als Line-Item-Payload im Warenkorb gespeichert. Kein aufgeblähter Produktstamm, keine unnötigen Datenbankeinträge. Der Kunde füllt seine Felder aus, legt das Produkt in den Warenkorb, und die Eingaben wandern sauber durch den gesamten Bestellprozess bis in die Administration.
So funktioniert das Plugin
Pro Produkt lassen sich beliebig viele Eingabefelder aktivieren. Jedes Feld hat einen Typ (Text, Zahl oder Textarea), ein Label, einen Platzhaltertext und optionale Validierung mit Min/Max-Grenzen. Die Aktivierung erfolgt nicht global, sondern gezielt pro Produkt über Custom Fields in der Administration. Nur Produkte, die Eingabefelder brauchen, zeigen sie auch an.
Zahlenfelder können eine Einheit tragen — mm, cm, kg oder was auch immer passt. Die Validierung greift sowohl clientseitig als auch serverseitig. Ein Produkt landet nicht im Warenkorb, wenn ein Pflichtfeld leer ist oder ein Zahlenwert außerhalb der definierten Grenzen liegt. Fehlermeldungen erscheinen direkt am Feld.
Installation
Das Plugin wird per Composer installiert. In der DDEV-Umgebung:
ddev composer require ruhrcoder/rc-custom-fields
ddev exec bin/console plugin:refresh
ddev exec bin/console plugin:install --activate RcCustomFields
ddev exec bin/console cache:clear
Konfiguration
In der Plugin-Konfiguration unter Erweiterungen > Meine Erweiterungen > RcCustomFields > Konfiguration legst du fest, wie viele Felder pro Produkt maximal zur Verfügung stehen.
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Anzahl Felder | Maximale Anzahl der Eingabefelder pro Produkt | 3 |
Die eigentliche Konfiguration passiert am Produkt selbst. Öffne ein Produkt in der Administration, wechsle zum Tab Spezifikationen, und du findest dort die Custom Fields von RcCustomFields. Jedes Feld lässt sich einzeln aktivieren und konfigurieren.
| Custom Field | Beschreibung | Beispiel |
|---|---|---|
| Feld 1 aktiv | Erstes Eingabefeld aktivieren | Ja |
| Feld 1 Typ | text, number oder textarea | text |
| Feld 1 Label | Beschriftung im Frontend | Gravurtext |
| Feld 1 Platzhalter | Hinweistext im leeren Feld | Ihr Wunschtext… |
| Feld 1 Einheit | Einheit hinter dem Feld (optional) | mm |
| Feld 1 Min | Minimalwert (nur bei number) | 10 |
| Feld 1 Max | Maximalwert (nur bei number) | 500 |
Das Schema wiederholt sich für alle weiteren Felder — Feld 2, Feld 3 und so weiter, je nach konfigurierter Maximalanzahl.
Praxisbeispiel: Pokal mit Gravur
Zurück zum Pokal-Beispiel. Der Kunde soll seinen Wunschtext eingeben und die Schriftgröße wählen können. Dafür konfigurierst du zwei Felder am Produkt:
| Einstellung | Feld 1 | Feld 2 |
|---|---|---|
| Aktiv | Ja | Ja |
| Typ | text | number |
| Label | Gravurtext | Schriftgröße |
| Platzhalter | Ihr Wunschtext | 12 |
| Einheit | — | pt |
| Min | — | 8 |
| Max | — | 24 |
Im Frontend sieht der Kunde zwei Eingabefelder auf der Produktseite. Den Gravurtext gibt er als Freitext ein, die Schriftgröße ist auf 8–24 pt beschränkt. Beide Werte wandern in die Bestellung und sind in der Administration einsehbar. Das gleiche Prinzip funktioniert genauso für Maßangaben bei Zuschnittware, Widmungstexte bei Geschenkartikeln oder Materialwünsche bei Druckprodukten.
Kompatibilität
RcCustomFields ist kompatibel mit RcDynamicPrice — beide Plugins können am selben Produkt aktiv sein, ohne sich gegenseitig zu beeinflussen. Die Eingabefelder erscheinen unterhalb des Preisrechners. Ein typischer Fall: Der Kunde bestellt ein Kabel in Wunschlänge und gibt zusätzlich einen Beschriftungstext für den Stecker an.
Update
Plugin-Updates laufen über Composer:
ddev composer update ruhrcoder/rc-custom-fields
ddev exec bin/console plugin:update RcCustomFields
ddev exec bin/console cache:clear
Die gezeigten Code-Beispiele dienen zur Veranschaulichung. Nutzung auf eigene Verantwortung. Mehr dazu