NUCS.shop

Bouwplan · 6 september 2026

Een instrument,
geen etalage.

Een webshop voor mini-PC’s waarin de productconfigurator het product is. De klant stelt een systeem samen uit een chassis plus opties per fysiek slot, ziet de meerprijs per keuze, en krijgt een samenstelling die als offerte of order verdergaat. De assemblage gebeurt in eigen huis, dus dezelfde samenstelling levert ook de stuklijst en de werkorder.

De kern

Zeven regels die de rest van het systeem bepalen. Ze zijn geen stijlvoorkeur — overtreding ervan is de reden waarom dit soort projecten na een jaar vastloopt.

Een optie hoort bij een slotNiet bij een product. “Geheugenslot 1” en “Geheugenslot 2” zijn echte, aparte dingen — en 2 × 16 GB is iets anders dan 1 × 32 GB.
Modules praten via contractenNooit via elkaars models. Checkout vraagt aan een interface of er voorraad is, en importeert geen enkele klasse uit Inventory.
Prijzen absoluut opslaanDelta’s worden berekend bij het renderen. Sla je delta’s op, dan verdampt je marge stilletjes zodra een inkoopprijs beweegt.
Een order is een snapshotOnveranderlijk, van samenstelling én prijzen. Anders verandert een order uit maart zodra je in april een optie hernoemt.
Regels staan in de databaseCompatibiliteit als veilige expressie, beheerbaar door inkoop zonder deploy. Nooit in PHP-code, nooit eval().
Onmogelijk ≠ onzichtbaarEen uitgeschakelde optie wordt getoond mét de reden. Verbergen laat de klant zoeken naar iets van een specsheet; de reden tonen scheelt een telefoontje.
Elke functie heeft een endpointWat in de beheerkant kan, kan ook via de API — dezelfde Action, dezelfde validatie. De schermen zijn clients.
Meertalig vanaf de eerste migratienl, en, de. De inhoud van een taal mag later komen, de structuur niet: dat is een migratie door de hele catalogus.

De optieregel

Het belangrijkste component: hier brengt de klant 90% van zijn tijd door. Elke optiegroep hoort bij één slot, dus twee geheugenslots zijn twee groepen met elk een eigen baseline. De sectieband erboven draagt de gedeelde grens, het lopende totaal en het advies over de combinatie.

Geheugen max. 96 GB · DDR5 SO-DIMM · 2 slots
gekozen: 8 GB · single channel
2 × 16 GB is ~15% sneller dan 1 × 32 GB.
Geheugenslot 1DDR5 SO-DIMM · max. 48 GB
Geheugenslot 2DDR5 SO-DIMM · max. 48 GB
Totaal
incl. 21% btw · NUC 15 Pro Kit U7
€ 624,00
€ 515,70 excl. btw

Demonstratie. In het echte systeem komt elke prijs van de server — de configurator rekent nooit zelf. Let op dat dezelfde reep in slot 1 een andere meerprijs toont dan in slot 2: slot 1 heeft 8 GB als baseline, slot 2 heeft “leeg”.

Kleur

Donker is de thuisbasis, licht is de optie — omgekeerd aan het gebruikelijke. Het accent komt uit het logo. Dat blauw haalt 7,5:1 op de donkere grond maar slechts 2,2:1 op de lichte, dus het lichte thema heeft een eigen, donkerder waarde. Wissel hierboven van thema.

--groundpaginagrond
--surfacekaarten, tabellen
--raisedkoprijen, hover
--brandaccent
--brand-navymerkvlak
--signalvoorraad ruim
--alertniet leverbaar
--linescheiding

Modules

Eén Laravel-applicatie met harde interne grenzen. Geen microservices — die kosten bij dit volume alleen operationele last. De publieke oppervlakte van een module is uitsluitend wat in Contracts/ staat plus de events die hij uitzendt.

ModuleVerantwoordelijkheid
ConfiguratorModellen, slots, optiegroepen, opties, regels, resolutie — de kern
PricingKostprijs, marge, delta’s, prijsregels, staffelkorting — de kern
CatalogProducten, categorieën, media, facetten, content
InventoryVoorraad per component, reserveringen, leveranciersfeeds
OrderingOrder, offerte, stuklijst, werkorder
CheckoutWinkelwagen, adressen, verzendkeuze, afronding
PaymentsGatewaycontract; Mollie als eerste implementatie
ShippingTariefcontract, labels, track & trace; Sendcloud
IdentityAccounts, klantgroepen, btw-nummers, rollen
IntegrationsLeveranciers-API’s, productimport, boekhouding
ApiVersionering, authenticatie, tokenscopes, foutformaat, OpenAPI
LocalizationTalen, vertaalbare velden, vertaaldekking, formattering

Fasering

Elke fase levert iets bruikbaars op; niets wordt af verklaard zonder tests. De verleiding is om in fase 0 al te importeren — niet doen. Je leert het model pas kennen door één chassis volledig met de hand in te voeren.

Fase 0 — Fundament

  • Modulestructuur en architectuurtests
  • SQLite in WAL-modus
  • Migraties en expressie-engine
  • API- en taalfundament
  • Eén chassis met de hand ingevoerd
0 van 12 taken

Fase 1 — Configurator live

  • Livewire-configurator
  • Delta’s, voorraad, blokkades mét reden
  • Opslaan en delen via UUID
  • PDF-offerte met geldigheidsdatum
  • Merkbestanden afgerond
0 van 11 taken

Fase 2 — Winkel en checkout

  • Facetten via Scout
  • Winkelwagen en staffelkorting
  • Eigen checkout, Mollie, Sendcloud
  • Btw per land inclusief OSS
  • Stuklijst wordt werkorder
0 van 13 taken

Fase 3 — Schaal

  • Productimport met goedkeuring
  • Zakelijke accounts, factuur op rekening
  • SEO-variantpagina’s per taal
  • Reserveonderdelen en upgradeflow
0 van 7 taken