Skip to content

Sessie 5 januari 2026: Dev→Preview winkelmigratie en Layout Builder stabilisatie

Doel

  • Webshopfunctionaliteit van dev naar preview overzetten zonder live te beïnvloeden.
  • Winkelweergaves en basisproductaanbod op preview beschikbaar maken.
  • Layout Builder-issues op preview structureel oplossen (geen quick fixes).

Inhoud

Code en dependencies

  • Merge dev → preview uitgevoerd (met allow-unrelated-histories), merge-conflicten opgelost in voordeel van dev-implementatie (custom module vg_commerce, theme vg25, composer patches).
  • Composer install (no-dev) succesvol op preview; Drush gebruikt via vendor/bin/drush.php.

Commerce-config en data

  • Gerichte import van commerce/winkelconfig (±120 items): product types, number patterns, invoice types, view/form displays, standaard views.
  • Toegevoegde dependency: taxonomy.vocabulary.product_categories (vereist voor field_productcategorie).
  • Store aangemaakt (online/EUR).
  • Producten toegevoegd op preview:
  • VGBC 2026 tickets: Standaard, Studenten (nieuw i.p.v. profielkoppeling), Standhouder.
  • Los nummer 2025: nummers 3, 4, 5, 6.
  • Winkelviews geïmporteerd (losse nummers, tickets, abonnementen, merchandise, uitgaven); UUID-conflicten opgelost door normalisatie van view-UUID’s.

ECA, CKEditor en formulieren

  • eca_render gedeïnstalleerd i.v.m. fatals in form alter; overige ECA-deprecation niet blokkerend.
  • CKEditor5 waarschuwing “ListPlugin styles” genoteerd; productformulier functioneel.

Layout Builder

  • Defaults-editor crasht door sample entity image-generatie:
  • Initieel “undefined function image()” (fallback naar imagepng() toegepast).
  • Daarna “Path cannot be empty in imagepng()” → root cause: ontbrekende tijdelijke map; system.file:path.temporary is null, sample preview kan geen image wegschrijven.
  • Individuele entity layout via /editie/{id}/layout werkt wel (geen sample, echte entity).
  • Conclusie: structurele fix is het configureren van een geldige tijdelijke directory voor preview.

Volledige config-sync dev→preview

  • Eerste import geblokkeerd door bestaande shortcut-set/link entiteiten (UUID-conflict).
  • Blokkade opgeheven door shortcut-entiteiten te verwijderen; import succesvol vervolgd.
  • Bijeffect: admin crashte door ontbrekende default shortcut set; hersteld door default set aan te maken en aan user 1 te koppelen (aanbevolen: systeem-breed normaliseren).

Rollen en permissies

  • Administrator rol bevestigd; specifieke LB/ECK-permissies op preview nog normaliseren.
  • Redactie-rol validatie/naam controleren en permissies aanvullen.

Resultaat/Oplossing

  • Preview bevat nu commerce code, winkelconfig en basisproducten; shop-views werken.
  • Defaults Layout Builder blijft crashen zolang de tijdelijke directory niet is ingesteld; entity-specifieke layout werkt wel.
  • Admin-toegang hersteld na shortcut-set herstel.

Volgende stappen

  1. Temporary directory instellen (structureel, vereist voor LB sample preview)
  2. Stel in: /var/www/sites/prev.voedingsgeneeskunde.nl/tmp
  3. drush cset system.file path.temporary /var/www/sites/prev.voedingsgeneeskunde.nl/tmp -y
  4. drush cr
  5. Rollen/permissies normaliseren
  6. Administrator en Redactie: LB-permissies voor ECK Editie (configure/edit layout overrides).
  7. Editor/Filter-config importeren of aanvullen
  8. CKEditor5 “ListPlugin styles” configureren; filter.format.* en editor.* uit dev importeren of handmatig aanvullen.
  9. TaxRateResolver controleren
  10. los_nummer → 9%, vgbc_ticket → 21% automatisch.
  11. Winkelpagina afronden met Layout Builder
  12. Dossier en korte artikelen-blokken plaatsen (views aanwezig).
  13. Checkout testen (Mollie test) en factuur genereren.
  14. Shortcut-sets system-wide normaliseren
  15. Alle users zonder geldige set koppelen aan ‘default’.
  16. QR-code generator implementeren in vg_commerce (order/attendee).

Notities

  • Geen database-overwrite gebruikt (content veilig gehouden).
  • Geen quick toggles in productieconfig: LB-defaults structureel fixen via tempdir-config i.p.v. UI-omwegen.

Einde sessie.

Learnings

  • Ontbrekende tijdelijke map (tmp) op preview zorgde voor subtiele Layout Builder-crashes bij sample images; dev had deze map al. Dit benadrukt dat file-system setup per omgeving expliciet gecontroleerd moet worden.
  • Unix-socket authenticatie (www-*) werkt alleen correct als Drush CLI als dezelfde Unix-user draait én de Drush binaries uitvoerbaar zijn; anders lijken DB- of codeproblemen op te treden terwijl het feitelijk om permissies gaat.