Skip to content

v0.1.6

Releasedatum: 3 mei 2026

Nieuwe Functies

EU-Conforme Prijsverlagingen

  • Producten hebben een nieuwe schakelaar "Vorige prijs tonen" op het productformulier om in te stellen dat een prijsverlaging wordt weergegeven
  • De doorgehaalde prijs in de winkel gebruikt nu de laagste prijs van de afgelopen 30 dagen, conform de EU Omnibus-richtlijn — en niet de handmatig ingevoerde vorige prijs
  • Het productformulier waarschuwt wanneer er geen kortingsbadge wordt getoond (omdat de huidige prijs niet lager is dan het 30-daagse minimum), zodat beheerders weten dat hun verlaging niet zichtbaar zal zijn
  • Prijswijzigingen worden automatisch geregistreerd en een wekelijkse opruimtaak verwijdert geschiedenis ouder dan 90 dagen

Prijs per Eenheid

  • Producten kunnen nu een hoeveelheid en eenheid declareren (kg, g, L, ml, m, cm, m²), en de winkel toont een regel "per kg" / "per L" / etc. onder de prijs op kaarten, productpagina, collectie en zoekresultaten
  • Producten die per stuk worden verkocht ("per item") zijn vrijgesteld van prijs per eenheid, zoals vereist door de richtlijn
  • De prijs per eenheid wordt geëxporteerd naar de Google Merchant-feed als unit_pricing_measure en unit_pricing_base_measure

Prijzen Inclusief BTW in de Winkel

  • Alle prijzen in de winkel (kaarten, productpagina, winkelwagen, checkout, ordermails) zijn nu altijd inclusief btw, zoals vereist voor B2C-verkoop in de EU
  • De productpagina toont een melding wanneer een belastingregel land-specifieke afwijkingen heeft, om aan te geven dat het uiteindelijke bedrag mogelijk wordt herberekend bij de checkout zodra het factuurland van de klant bekend is
  • Het productformulier in het beheergedeelte heeft een nieuwe belastingvoorbeeldweergave die toont wat elk land berekend krijgt wanneer een belastingregel land-specifieke afwijkingen heeft

Factuuradres in Checkout

  • De checkout-flow heeft een nieuwe stap voor het factuuradres: behoud het verzendadres (standaard), kies een opgeslagen adres of voer een nieuw adres in
  • Klanten kunnen optioneel een aangepast factuuradres opslaan in hun adresboek voor toekomstige bestellingen
  • Het wijzigen van het factuurland wist de geselecteerde betaalmethode en eventuele lopende Stripe PaymentIntent, zodat de belasting opnieuw wordt berekend voor het nieuwe land
  • Orderbevestigingsmails en de orderhistoriepagina van de klant tonen verzend- en factuuradres apart wanneer ze verschillen
  • De orderweergave in het beheergedeelte toont verzending en facturering naast elkaar

Verbeteringen

Analytics Dashboard

  • Tabellen op de pagina's Verkeer, Producten en Verlaten Winkelwagens gebruiken nu paginering aan de serverzijde, zodat grote winkels responsief blijven
  • De UI van de funnel-grafiek is verfijnd voor een duidelijkere visualisatie van afhakers
  • Sessies van ingelogde admins worden uitgesloten van analytics zodat de cijfers de werkelijke klantactiviteit weerspiegelen
  • Paginapaden worden genormaliseerd zodat dezelfde logische pagina niet meer over meerdere rijen wordt verspreid

Bestellingen

  • Nieuw filter voor de oorsprong van bestellingen in de bestellijst scheidt checkoutbestellingen van handmatig aangemaakte bestellingen
  • Bij het aanmaken van handmatige bestellingen worden placeholder-e-mails geblokkeerd wanneer een echte klant-e-mail beschikbaar is, zodat meldingen in de juiste inbox terechtkomen

Onboarding

  • De stap Talen selecteert nu standaard Engels, Spaans, Nederlands en Portugees (voorheen alleen Engels); admins kunnen de lijst nog steeds aanpassen

Stabiliteit van de Checkout

  • Advisory locks en serialiseerbare snapshot-updates beschermen gelijktijdige checkoutacties tegen race conditions
  • Datums in de checkout-datumkiezer en ordermails respecteren nu de locale van de klant

Verzending en Locale

  • Minimale orderdrempels voor verzending worden nu vergeleken met subtotaal + btw minus eventuele productkortingen, zodat het overeenkomt met wat de klant ziet in het besteloverzicht (verzendkortingscoupons worden uitgesloten van de korting)
  • Op de server gerenderde winkelpagina's en ordermails bepalen de taal via de opgeslagen voorkeur van de klant, daarna de locale-cookie, daarna de eerste door de winkel ingeschakelde taal, met Engels als fallback — zodat een verouderde cookie geen taal meer rendert die de winkel inmiddels heeft uitgeschakeld

Operations

  • Een nieuwe optionele env var ENABLE_AUTH_RATE_LIMIT laat operators het rate limit van Better Auth uitschakelen in CI- en testomgevingen; het productiegedrag verandert niet tenzij de variabele expliciet wordt ingesteld

Bugfixes

  • Het samenvoegen van winkelwagens valideert nu de voorraad voor beide kanten en informeert klanten wanneer hoeveelheden worden aangepast
  • Een waarschuwingsmelding verschijnt twee minuten voordat de reservering van de winkelwagen verloopt
  • Stripe webhook-handlers (gelukt en mislukt) zijn nu idempotent en gebruiken atomic guards om dubbele verwerking te voorkomen
  • Coupons toepassen en verwijderen worden geserialiseerd via de checkout-lock; coupons voor eenmalig gebruik per klant tellen geen geannuleerde of mislukte betalingen meer mee
  • Hervalidatie van verzendcoupons wordt overgeslagen wanneer de klant van land verandert voordat een verzendmethode is gekozen
  • De bezoekers-cohort wordt vastgelegd in de order-snapshot zodat aankoop-events aan de serverzijde in de juiste cohort blijven
  • De Annuleren-knop op het bewerkingsformulier voor gebruikers reset velden nu zonder ze als gewijzigd te markeren

Beveiligingsfixes

  • Het iframe-kanaal van de page builder is nu beperkt tot postMessage van dezelfde origin
  • Adres-PATCH- en DELETE-operaties zijn nu eigendomsgebonden op SQL-niveau
  • Per-IP rate limiting wordt nu toegepast op het Stripe webhook-endpoint
  • Aggregaatqueries van analytics gebruiken nu geparametriseerde make_interval()-aanroepen in plaats van string-interpolatie
  • De timestamp-tolerantie van Stripe constructEvent is vastgezet op 300 seconden
  • Order.stripePaymentIntentId heeft nu een unieke index en de webhook gebruikt findUnique voor extra veiligheid