# v0.1.9

**Releasedatum:** 23 mei 2026

## Nieuwe Functies

### Kortingscode-prestatieanalyse

- Een nieuwe **Kortingscodes**-tab onder Analytics toont per code hoe vaak deze is bekeken, gekopieerd, toegepast en omgezet in een betaalde bestelling — zodat je ziet welke promoties echt omzet opleveren
- Een nieuw `coupon_copy`-event wordt automatisch vastgelegd wanneer een shopper een code in de storefront kopieert

### Kortingscode-lijstsectie

- Een nieuwe **Kortingscodes**-sectie is beschikbaar in de Page Builder, waarmee je actieve kortingscodes rechtstreeks op elke storefrontpagina kunt uitlichten

### Apparaat- en heatmap-analyse

- De **Verkeer**-tab bevat nu een dagelijkse uitsplitsing per apparaattype en een heatmap per dag van de week × uur, zodat je ziet wanneer je winkel het drukst is en vanaf welke apparaten

### Merk en GTIN voor producten

- Producten hebben nu de velden **Merk** en **GTIN**. Ze voeden rijkere Google Merchant Center-feeds en Google structured data zonder dat je via product-eigenschappen hoeft te omzeilen

### Geautomatiseerde reviewprompts

- Het reviewvenster in de storefront kan nu automatisch worden geopend via een querystring-parameter, zodat de review-aanvraagmail na levering shoppers rechtstreeks naar het reviewformulier brengt in plaats van naar de productpagina

### GDPR-compliancesysteem

- Cookie-consentbeslissingen worden nu serverzijde gelogd (timestamp, IP, accepteren/weigeren) naast het bestaande consentaudit-spoor voor de voorwaarden
- Inactieve accounts worden automatisch opgeruimd: na het geconfigureerde aantal jaren inactiviteit wordt een waarschuwingsmail verstuurd en wordt het account 7 dagen later verwijderd als de gebruiker niet opnieuw inlogt. Configureerbaar via `INACTIVE_ACCOUNT_DELETION_YEARS` (standaard: `3`, zet op `0` om uit te schakelen)
- Wanneer een gebruiker wordt verwijderd, blijven zijn bestellingen behouden (financiële gegevens worden bewaard voor fiscale compliance), maar PII wordt geanonimiseerd en de koppeling met de gebruiker wordt verbroken

## Verbeteringen

- **Verzendtijd** is overgegaan van een vrije-tekstlabel naar een numeriek "werkdagen"-veld. Het voedt Google structured data en wordt consistent gerenderd in zowel de storefront als de checkout
- **404 / 405-afhandeling** — een wildcard 404-route en een 405 error boundary toegevoegd, zodat onbekende URL's en niet-toegestane methodes nette foutpagina's tonen in plaats van stack traces
- **API-responses** geünificeerd rond één i18n-bewust foutformaat over alle endpoints
- **Ongeldige winkelwagens geblokkeerd bij checkout** — als een winkelwagen een verwijderd, gedeactiveerd of niet-meer-op-voorraad-item bevat, wordt de checkout geblokkeerd met een duidelijke melding in plaats van halverwege stilletjes te falen
- De admin-zoekfunctie voor kortingscodes en de admin-sidebar zijn herschikt om kortingscode-analytics naast de bestaande kortingscode-admin te tonen
- **Fundament voor een toekomstige AI-storefrontzoekfunctie** — pagina-embeddings, tool-based semantische ophaalprimitives en de AI Assistant UI-scaffolding zijn toegevoegd. De functie is in v0.1.9 nog niet zichtbaar voor gebruikers
- **Alleen OpenAI als LLM-provider** — de Anthropic-provider is verwijderd omdat Claude-modellen momenteel geen embeddings-endpoint aanbieden, waar de toekomstige AI-storefrontzoekfunctie van afhangt. Winkels die Anthropic gebruikten, moeten hun LLM-integratie omzetten naar OpenAI

## Beveiligingsfixes

- SVG-uploads worden nu strikt serverzijde gevalideerd om ingebedde scripts, externe referenties en andere XSS-vectoren te weigeren voordat het bestand wordt opgeslagen
