Ich habe in der Vergangenheit schon Konfiguratoren in TYPO3 gebaut, die je nach gewähltem Wert innerhalb einer Option die Werte aller verbleibenden Optionen anpassen, so dass sich der Benutzer dem gewünschten Ergebnis aus jeder Richtung nähern kann. Beispielsweise dieser:
https://www.gesipa.de/mundstueckfinder
Solche Abhängigkeiten der Optionen zueinander zu prüfen würden eine GUI erfordern, die weitere Zustände je Option abbilden kann und natürlich eine entsprechende Prüfung der jeweils verbleibenden Werte je Option. In meinem Fall führe ich diese über die DB durch, angestoßen über einen AJAX-Call, der eine entsprechende Query auslöst und das Ergebnis zurückliefert.
In deinem Anwendungsfall, falls es denn wirklich so wie im Beispiel laufen soll, ist es aber deutlich einfacher. Alle wählbaren Optionen können miteinander kombiniert/addiert werden und es gibt keinerlei Abhängigkeiten der Optionen zueinander.
Im Hintergrund wird das jeweils passende Bild nachgeladen. Echte XHR Requests, wie sie bei AJAX Aufrufen verwendet werden würden, stelle ich nur beim Öffnen des Videos und der Gallerie fest, die ja mit der eigentlichen Konfiguration nichts zu tun haben.
Auf den ersten Blick scheint es hier auszureichen den Bildern sprechende Namen zu geben, die alle darin enthaltenen Optionen repräsentieren.
Material: Laminat → L
Farbe: Weißer Nußbaum → WN
Ambiente: Modern → Rm
Wange: Dekor → Wd
Stellstufe: Dekor → Sd
Beleuchtung: Aus → L0
L_WN_cl_Rm_Wd_Sd_L0.jpg
Material: Vinyl → V
Farbe: Grau Astig → GA
Ambiente: Klassisch → Rr
Wange: Schwarz → Ws
Stellstufe: Inox → Se
Beleuchtung: 6er → L1
V_GA_cl_Rr_Ws_Se_L1.jpg
Hier ist ist also hauptsächlich JavaScript im Spiel. Baue dir eine hübsche HTML GUI, sammle dann per JavaScript mit jeder Änderung an einem Kontroll-Element die Werte zusammen und baue daraus den Bildpfad des nachzuladenden Bildes.
Eine schlüsselfertige Lösung gibt es für solche Anwendungsfälle normalerweise nicht, da du ja direkt die Business-Logik deines Kunden abbildest. Je nach Anwendungsfalls wird es vielleicht mal etwas fertiges von einem spezialisierten Anbieter geben aber dieser wird sich dann sicherlich sein Tool gut bezahlen lassen.
Aus dem Nähkästchen gesprochen:
Ich empfinde es immer als spannenden Beratungs-Prozess mit dem Kunden gemeinsam alle Produkt-Attribute und Varianten und deren Abhängigkeit zueinander zu diskutieren/klären. Da kommen manchmal so Aussagen vom Ingenieur wie: "Ach, so genau wusste ich garnicht, dass wir in der Lage sind xxx verschiedene Varianten zu bauen" 😄 Als Informatiker muss man den Blick für alle nur denkbaren Kombinationen mitbringen, auch wenn diese normalerweise nicht üblich sind. Der Prozess hin zu einem Konfigurator, der die ganze Palette abbildet, ist teils auch für den Kunden mit neuen Erkenntnissen verbunden.