Wat is Productpersonalisatie?

Met de add-on Productpersonalisatie koppel je extra invoervelden aan een specifieke optiewaarde van een product. Zodra de klant die optiewaarde kiest, verschijnen de velden onder de productopties. Per besteld stuk wordt één blok velden getoond, zodat de klant elk exemplaar afzonderlijk kan personaliseren.


Veelgebruikte toepassingen zijn graveren (bijvoorbeeld een tekst voor de voor- en achterzijde van een sieraad of horloge), het uploaden van een logo of foto voor bedrukking, een persoonlijk cadeautekstje, of het invullen van een naam, datum of initialen.


Per optiewaarde kun je één of meer velden definiëren. Per veld bepaal je of het een tekstveld of een bestandsupload is, of het verplicht is, en bij tekst hoeveel tekens de klant maximaal mag invoeren.


De add-on inschakelen

Ga in Bernini naar Configuratie → Add-ons, zoek Productpersonalisatie in de lijst en zet de toggle "Productpersonalisatie aanzetten" op Aan. Sla op; het beheerscherm wordt daarna zichtbaar.


Zolang de add-on uit staat, zijn de velden niet zichtbaar op de webshop en wordt er niets extra geladen. Je kunt de add-on dus zonder bezwaar aan- en uitzetten.


Velden koppelen aan een optiewaarde

In het beheerscherm van de add-on staat een tabel waarin je per regel één veld definieert. Voeg een rij toe en vul de kolommen in:

KolomToelichting
OptiewaardeDe optiewaarde waarbij het veld moet verschijnen, bijvoorbeeld "Graveren ja" of "Met logo". De dropdown bevat alle optiewaardes uit je shop.
VolgnummerHet nummer waarmee je meerdere velden onder dezelfde optiewaarde ordent. Begin met 1 en gebruik 2, 3 enzovoort voor extra velden.
TypeKies Tekst voor een gewoon invoerveld of Afbeelding voor een bestandsupload.
LabelDe tekst die de klant boven het veld ziet, bijvoorbeeld "Tekst voorzijde" of "Logo (PNG/JPG)".
VerplichtBij Ja kan de klant niet afrekenen zonder dit veld in te vullen. Bij Nee is het veld optioneel.
Max lengteHet maximum aantal tekens voor een tekstveld. Standaard 255. Bij type Afbeelding wordt deze waarde genegeerd.


Voorbeelden

Graveren met een tekst voor de voor- en achterzijde:

OptiewaardeVolgnummerTypeLabelVerplichtMax lengte
Graveren ja1TekstTekst voorzijdeJa20
Graveren ja2TekstTekst achterzijdeNee20

Zodra de klant op de productpagina "Graveren ja" kiest, ziet hij beide velden. Bij meerdere stuks verschijnt het blok één keer per stuk ("Stuk 1", "Stuk 2", enzovoort).

Een logo uploaden met een optioneel onderschrift:

OptiewaardeVolgnummerTypeLabelVerplichtMax lengte
Met logo1AfbeeldingUpload je logoJa
Met logo2TekstOnderschrift (optioneel)Nee60


Indicator bij producten-attributen

In het admin bij Catalogus → Producten → Attributen krijgen optiewaardes waaraan tekstvelden zijn gekoppeld een potlood-icoon, met het aantal gekoppelde velden ernaast. Klik op het icoon om direct naar de config-pagina van de add-on te springen.


Wat de klant ziet

Op de productpagina verschijnen de velden zodra de klant de bijbehorende optiewaarde kiest. Bij een hoeveelheid groter dan één wordt er één blok velden per stuk getoond. Verplichte velden zijn gemarkeerd met een sterretje en blokkeren de knop "in winkelwagen" zolang ze leeg zijn. Tekstvelden hebben de ingestelde maximumlengte; meer typen staat de browser niet toe.

In de winkelwagen staan de velden inline onder elke productkaart. De klant kan ze daar nog wijzigen zonder terug te gaan naar de productpagina. Wijzigingen worden automatisch opgeslagen na ongeveer een halve seconde; naast het veld staat dan kort "opslaan…" gevolgd door "opgeslagen". Bij een afbeelding verschijnt na het uploaden een thumbnail met een knop om het bestand te verwijderen.

Bij het afrekenen moeten alle verplichte velden ingevuld zijn voordat de bestelknop actief wordt. Is een verplicht veld leeg, dan blijft de checkout geblokkeerd totdat het is aangevuld.

In de bevestigingsmail en in het orderdetail verschijnen de ingevulde waardes onder elk product, gegroepeerd per stuk. Afbeeldingen worden als thumbnail getoond met een link naar het originele bestand.


Geüploade bestanden

Klanten kunnen bestanden van het type PNG, JPG, JPEG, GIF, BMP, WEBP en PDF uploaden. De originele bestanden worden opgeslagen in de map images/optietekstvelden/ en een kleine preview in images/optietekstvelden/thumbnail/

Verlaagt de klant de hoeveelheid of verwijdert hij een product uit de winkelwagen, dan worden de bijbehorende bestanden automatisch opgeruimd.


Een veld wijzigen of verwijderen

Labels en de maximumlengte kun je altijd aanpassen. Bestaande bestellingen blijven daarbij ongewijzigd, omdat de labels als momentopname in de order zijn opgeslagen.

Een veld verwijder je door de rij uit de tabel te halen en op te slaan. Toekomstige bestellingen tonen het veld dan niet meer; bestaande orders behouden de tekst die de klant eerder had ingevuld.

Het omzetten van een veld van verplicht naar optioneel (of andersom) geldt vanaf dat moment voor nieuwe winkelwagens.


Veelgestelde vragen

Kan ik dezelfde set velden bij meerdere optiewaardes hergebruiken? Niet automatisch; je koppelt de velden per optiewaarde apart. Wel kun je met kopiëren en plakken in de tabel snel hetzelfde rijtje voor een andere optiewaarde aanmaken.

Werkt dit ook voor radio-buttons, checkboxes en dropdowns? Ja. Het systeem reageert op de gekozen optiewaarde, niet op het type optie, dus het werkt bij elk optietype.

Wat gebeurt er als een klant het aantal in de winkelwagen verlaagt? De velden van de verwijderde stuks verdwijnen automatisch en bijbehorende geüploade bestanden worden opgeruimd. Verhoogt de klant het aantal, dan komen er lege blokken bij die nog ingevuld moeten worden.

Tellen verplichte velden ook als de klant nog op de productpagina staat? Op de productpagina toont de browser een gewone HTML5-validatie. De echte blokkade gebeurt bij het afrekenen aan de serverkant: ook wie de validatie probeert te omzeilen, kan niet afrekenen met lege verplichte velden.

Komen de ingevulde tekst en foto's automatisch in de orderbevestiging? Ja, zowel in de mail naar de klant als in het orderdetail in het admin. Foto's verschijnen als klikbare thumbnail.