# Simple CPQ V2 Simply CPQ soll eine kleine, einfache CPQ Lösung für Klein- und Mittständische Unternehmen sein, die schnell aufgesetzt ist und leicht zu pflegen und warten. Dieses Projekt ist der Nachfolger von Simply-CPQ und nimmt alle Erfahrungen der ersten Entwicklung auf und macht es (hoffentlich) besser :) ## Folgende Eigenschaften soll sie besitzen: - Open Source Lösung - Source Code überprüfbar und auf Wunsch erweiterbar (GPL 3) - Ohne Vendor-Login - Deine Daten gehören Dir - Offene Formate - Markdown - XML - JSON - Unterstützung des Angebotsprozesses - Pick products - Nimm einen Artikel aus dem Katalog und packe ihn in den Warenkorb - configure products - Konfiguriere die Merkmale eines Produktes. Die Merkmalswerte werden wiederum durch Komponenten repräsentiert (keine "echte" merkmalsbasierte Konfiguration) - configure solutions - Konfiguriere eine Lösung bestehend aus mehreren Komponenten - Product und Solution sind sich sehr ähnlich im Verhalten - Konfigurationen können mehrstufig sein - Kalkulation (Preise und Kosten auf Basis von Preis- und Kostenlisten) - Auswahl der Preis und Kostenliste aus dem Vertriebskontext (VKOrg, Kundenland, etc.) - Erweiterung der Kalkulation durch eigene Spalten mit entsprechend hinterlegten Formeln für Positionen - Kundenspezifische Preise spezifizieren sich über Kundenspezifische Preislisten - Ausgabe des Angebotes in - Markdown - Über Pandoc in alle anderen Formate transformierbar! - XML - JSON - Erweiterbar über eigene LUA Scripte - Offene API - Implementiert auf Basis von GO (Server lassen sich sehr einfach mit GO bauen) - Mehrsprachig - Globaler Merkmalspool für eindeutige Merkmale und deren Wertemengen ## Installation ## Erste Schritte ## Entwicklungstools: ### Go Die Software ist hauptsächlich in GO geschrieben ab der Version 1.22. ### VSCode Als Quelltext-Editor / IDE kommt VSCode zum Einsatz. ### DBeaver Ist der Datenbank-Editor ## Technische Dokumentation ### 20.09.2026 Grundsätzliche technische Entscheidungen #### Systeme: - Programmiersprache : - GO - Javascript - SQL - Datenbank: Postgresql - Webtechnologie: HTMX #### Grundlegende technische Entscheidungen - Jedes relevante Objekt (z.B. Produkte) hat eine Darstellung als: - Node (Raumdarstellung) - Form (Darstellung des Objektes und Editiermöglichkeit) - List (Listen /Tabellensicht - Alle Objekte werden in der API über ihre eindeutige ID angesprochen. Über die ID kann ich den Typ des Objektes herausfinden - Objekte werden nur bei Bedarf aus der Datenbank geladen. - Objekte werden nach dem Laden oder Anlegen gechached! - Weboberflächen zur Pflege der Daten aber auch die Seiten zur Nutzung des CPQ müssen responsive sein! - Nutzung des 12- Spalten loyouts! - Alle Images haben einen Alternativen Text - Struktur der Oberfläche und die Darstellung werden strikt getrennt (HTML + CSS) - Die Entwicklung erfolgt über die Definition von Tickets - Jedes Ticket verursacht ein Brauch und einen Merge!