DDD-Architektur für PHP E-Commerce-Systeme
Catalog, Order, Payment, Inventory: E-Commerce-Domains gehören getrennt, nicht in einen Monolithen gepresst. Jardis gibt deinem Shop-System die Architektur, die von Bounded Context eins bis zur Multi-Channel-Skalierung trägt.
Je mehr Channels ihr anbindet, desto fragiler wird der Monolith.
Shopware, Magento, Custom-Builds: ohne Domain-Grenzen wird jede Payment-Änderung zum Risiko für Bestellungen, Lager und Versand.
Shop-Monolith brennt bei jeder Änderung
Catalog, Pricing und Order leben in denselben Tabellen. Eine Preisänderung bricht den Checkout. Ein neues Versandmodell zieht Seiteneffekte durch die halbe Codebasis. Am Black Friday ist das kein Bug, sondern Umsatzverlust.
Vendor-Lock-in zu Shopware oder Magento
Business-Logik ist mit Framework-Code verwoben. Ein Wechsel oder ein Major-Upgrade bedeutet Monate Rewrite, weil Domain-Regeln in Controllern und Plugins stecken. Rabattlogik, Versandregeln, Retourenabwicklung: alles am Framework geklebt.
Inventory und Orders sind untrennbar gekoppelt
Bestandsführung hängt direkt am Order-System. Stornierungen erzeugen Race Conditions im Lager. Multi-Warehouse oder Dropshipping-Anbindungen werden zum Albtraum, weil es keine saubere Domain-Grenze zwischen Bestand und Bestellung gibt.
Bestellung, Katalog, Payment — jede Domain für sich.
Der Jardis Builder generiert physische Domain-Grenzen für jede E-Commerce-Domain. Nicht als Empfehlung, sondern als erzwungene Paketstruktur.
Catalog, Order und Payment als eigene Packages
Jeder Bounded Context wird ein eigenständiges Package mit eigener Dependency-Struktur. Order kann nicht auf Catalog-Tabellen zugreifen, Inventory nicht auf Payment-Daten. Der Builder erzwingt diese Trennung auf Dateisystem-Ebene. Ein neuer Vertriebskanal oder ein Framework-Wechsel betrifft nur die betroffene Domain.
Bestellung, Zahlung und Versand über Domain Events
OrderPlaced, PaymentConfirmed, ShipmentDispatched: der Builder generiert die Events und ihre Handler als typisierte PHP-Klassen. Kein direkter Aufruf zwischen Domains. Inventory reagiert auf OrderPlaced, Shipping auf PaymentConfirmed. Neue Subscriber wie eine Promotions-Engine oder ein Loyalty-Programm lassen sich hinzufügen, ohne bestehende Domains zu ändern.
80% des Codes generiert, sofort einsetzbar
Der Builder generiert die Multi-Channel-fähige PHP-Infrastruktur pro Domain: Catalog, Order, Payment und Inventory bekommen jeweils eigene CQRS-Strukturen mit Commands, Queries und Repository Pipeline. Euer Team schreibt die Shop-Logik: Rabattregeln, Fulfillment-Workflows, Retourenabwicklung und Payment-Routing.
Sieh selbst, was aus drei Dateien entsteht.
Drei Definitionsdateien rein, ein kompletter Bounded Context raus. Klick dich durch den generierten Code.
# Database Schema — Sales Bounded Context
# This file defines the persistent storage structure.
schema:
domain: ECommerce
boundedContext: Sales
tables:
order:
columns:
id:
type: integer
primary: true
autoIncrement: true
public_id:
type: uuid7
unique: true
customer_email:
type: string
length: 255
status:
type: string
length: 32
default: "draft"
total_amount:
type: integer
currency:
type: string
length: 3
default: "EUR"
created_at:
type: datetime
updated_at:
type: datetime
nullable: true
order_item:
columns:
id:
type: integer
primary: true
autoIncrement: true
order_id:
type: integer
foreignKey:
table: order
column: id
onDelete: cascade
product_name:
type: string
length: 255
sku:
type: string
length: 64
quantity:
type: integer
unit_price:
type: integer
line_total:
type: integer
Warum E-Commerce-Teams auf Jardis bauen.
Vom ersten Shop bis zur Multi-Channel-Plattform. Jardis wächst mit eurem System.
Jede E-Commerce-Domain ein eigenes Package
Catalog, Order, Payment, Inventory, Shipping: eigenständige Bounded Contexts. Teams arbeiten parallel an verschiedenen Domains. Das Catalog-Team deployt Produktdaten, ohne dass das Order-Team ein Release koordinieren muss.
Neue Domain in Minuten statt Wochen
Promotions-Engine, Loyalty-Programm, Retouren-Management, neuer Payment-Provider? Schema definieren, Builder starten. Commands, Queries, Events und Repository Pipeline stehen, bevor die erste Zeile Shop-Logik geschrieben wird.
Kein Vendor-Lock-in mehr
Hexagonale Architektur trennt Domain-Logik von Framework-Code. Laravel, Symfony oder ein Wechsel von Shopware zu Custom: die Business-Regeln bleiben unverändert. Der Builder generiert die Adapter, die Domain bleibt portabel.
Bereit, euren Shop auf ein solides Domain-Fundament zu stellen?
Auf die WaitlistStruktur kostet weniger als Chaos.
Teste Jardis 7 Tage kostenlos
Lass Jardis an deiner echten Domäne los. Discovery, Struktur und dein erster Platform Build.
Join WaitlistDie komplette DDD-Architektur mit allen Klassen und Contracts. Dein Team schreibt Features, nicht Infrastruktur.
Join WaitlistDie komplette Business-Logik mit Handlern, Validierung und Pipelines. Was früher ein Sprint war, ist jetzt ein Build.
Join WaitlistMehr als 20 Platform Builds pro Monat?
Lass uns sprechenSei dabei, wenn Jardis startet.
Trag dich ein. Du bekommst Zugang, sobald wir live gehen. Inklusive kostenlosem Trial.
Neugierig, wie Jardis funktioniert?
Jardis entdeckenHäufige Fragen
Antworten auf die wichtigsten Fragen zu Jardis im E-Commerce-Kontext.
Ja. Jardis ist für Brownfield-Szenarien gebaut. Du generierst einzelne Bounded Contexts und integrierst sie schrittweise. Der Builder erzeugt PHP-Code mit hexagonaler Architektur, der neben bestehendem Shop-Code existieren kann. Bestehende Plugin-Logik und Theme-Anpassungen bleiben erhalten, während du Domain für Domain migrierst.