Die Open-Source E-Commerce Alternative für 2025
Die E-Commerce-Landschaft für kleine und mittelständische Agenturen steht vor einer interessanten Entwicklung: Während Shopware seine Community Edition mit der Fair Usage Policy ab 1 Million Euro GMV faktisch limitiert, positioniert sich Sylius 2.1.8 als vollständig freie Alternative mit modernster Technologie. Das November-Release bringt offizielle PHP-8.5-Unterstützung, Symfony-7.4-Kompatibilität und wichtige Bugfixes für Admin-API, Bildverwaltung und Channel-Validierung. Für Agenturen stellt sich die Frage: Welche Plattform bietet das beste Preis-Leistungs-Verhältnis für kundenspezifische E-Commerce-Projekte?
Sylius 2.1.8: Technische Neuerungen im Detail
Das Release 2.1.8 vom 27. November 2025 festigt Sylius' Position als technologischer Vorreiter im E-Commerce-Bereich. Die PHP 8.5 Unterstützung erfolgt bereits 7 Tage nach dem offiziellen PHP-Release am 20. November 2025 – ein bemerkenswerter Geschwindigkeitsrekord. Zum Vergleich: Sylius 1.10 erhielt PHP 8.0 Support erst 7 Monate nach dessen Veröffentlichung. Die nahezu zeitgleiche Integration von PHP 8.5 demonstriert die deutlich verbesserte Release-Reife der Plattform.
Die Symfony 7.4 Kompatibilität ist besonders relevant, da Symfony 7.4 als Long-Term-Support Version bis November 2027 Support erhält. Sylius nutzt dabei gezielt neue Symfony-Features:
- Attribute-based Configuration: Routing und Dependency Injection können komplett über PHP-Attributes konfiguriert werden, XML-Konfigurationen sind deprecated
- Performance-Optimierungen: Container Compilation ist 15% schneller, Cache-Performance verbessert sich um 39%
- HTML5 Parser: Native Unterstützung für modernes HTML-Parsing ohne externe Dependencies
- Message Signing: HMAC-SHA256 basierte Signierung für sichere Message-Queue-Kommunikation
Kritische Bugfixes in 2.1.8
Die Update-Notes listen mehrere wichtige Korrekturen:
- Admin API Produkterstellung (#18563): Behebt Fehler beim Anlegen von Produkten über die Admin-API, die bei komplexen Produktvarianten auftraten
- Bildänderungen (#18557): UX Icons werden jetzt lokal gebundelt statt über Iconify API geladen – reduziert externe Dependencies und verbessert DSGVO-Compliance
- Channel-Validierung bei Checkout (#18586): Verfeinerte .env Konfigurationen für Symfony 7.4 Kompatibilität verhindern Channel-bezogene Fehler beim Bestellabschluss
- State Machine Callbacks (#18580): Dokumentation für disabled callbacks bei sylius_product_review State Machine
Technologie-Stack Vergleich: Sylius vs. Shopware vs. CS-Cart
Für Agenturen ist die technische Basis entscheidend. Hier zeigen sich fundamentale Unterschiede:
Sylius: Modern und flexibel
Core-Technologie: PHP 8.2-8.5, Symfony 6.4/7.3/7.4, Doctrine ORM 3, API Platform 4.1
Sylius basiert vollständig auf Symfony-Komponenten und folgt Symfony Best Practices konsequent. Das bedeutet für Entwickler:
// Sylius Controller mit Symfony-Standards
namespace App\Controller;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
#[Route('/admin/products')]
class ProductController extends ResourceController
{
#[Route('/create', name: 'product_create', methods: ['GET', 'POST'])]
public function createAction(Request $request): Response
{
// Standard Symfony Controller-Logik
// Volle IDE-Unterstützung durch Attributes
return $this->render('admin/product/create.html.twig');
}
}Die API Platform 4.1 Integration ermöglicht automatische REST-API-Generierung aus Doctrine-Entities:
use ApiPlatform\Metadata\ApiResource;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ApiResource]
class Product
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private string $name;
// Automatisch verfügbar über /api/products
}Vorteile: Symfony-Entwickler sind sofort produktiv, keine Shop-spezifischen Patterns nötig. Testbarkeit durch Symfony Testing-Framework. Moderne Entwicklung mit PHP 8.x Features (Property Promotion, Named Arguments, Enums).
Nachteile: Steile Lernkurve für Entwickler ohne Symfony-Erfahrung. Weniger fertige Admin-Templates als Shopware.
Shopware 6: Vollständige Lösung mit Einschränkungen
Core-Technologie: PHP 8.1-8.3, Symfony 6.4, Vue.js 3, Twig
Shopware 6 nutzt Symfony als Basis, ergänzt dies aber durch eigene Abstraktionsschichten:
// Shopware Controller mit Framework-Abstraktion
namespace Shopware\Core\Checkout\Cart\Controller;
use Shopware\Core\Framework\Routing\Annotation\RouteScope;
use Symfony\Component\Routing\Annotation\Route;
#[Route(defaults: ['_routeScope' => ['storefront']])]
class CartController extends StorefrontController
{
#[Route('/checkout/cart', name: 'frontend.checkout.cart.page')]
public function cart(Request $request): Response
{
// Shopware-spezifische Context-Handling
$page = $this->cartPageLoader->load($request,
$this->context->getSalesChannelContext());
return $this->renderStorefront('@Storefront/cart/index.html.twig', [
'page' => $page
]);
}
}Vorteile: Vollständiges Admin-Interface out-of-the-box. Shopping Experiences (Page Builder) für Content-Management. Umfangreiches Plugin-Ökosystem mit über 5.000 Extensions.
Nachteile: Community Edition limitiert durch Fair Usage Policy (1M€ GMV Grenze). Komplexere Architektur durch Shopware-Abstraktionen. Plugin-Kosten können erheblich sein (10-500€ pro Plugin).
CS-Cart Multi-Vendor: Proprietäre Lösung
Core-Technologie: PHP 7.4-8.x, eigenes Framework, Smarty Templates
CS-Cart nutzt ein proprietäres Framework ohne moderne Standards:
// CS-Cart Controller-Stil (vereinfacht)
function fn_add_product_to_cart($product_data, $cart) {
// Prozeduraler Stil, globale Funktionen
$product_id = $product_data['product_id'];
if (fn_check_amount_in_stock($product_id, $amount)) {
$cart['products'][$product_id] = $product_data;
fn_calculate_cart_content($cart);
}
return $cart;
}Vorteile: Multi-Vendor Features out-of-the-box (perfekt für Marktplätze). 500+ E-Commerce Features included. Self-hosted mit vollem Code-Zugriff (bei gekaufter Lizenz).
Nachteile: Keine Open-Source Community Edition verfügbar. Lizenzkosten: Standard $1.450, Plus $3.500, Ultimate $7.500 (einmalig). Veraltete Entwicklungspatterns, schwierige Testbarkeit. Update-Kosten für Major-Releases.
Praktischer Funktionsvergleich für Agentur-Projekte
| Feature Sylius CE (kostenlos) Shopware CE (kostenlos*) CS-Cart Standard | |||
| Basis-Lizenz | MIT (vollständig frei) | MIT (Fair Usage ab 1M€) | $1.450 einmalig |
| Multi-Store | ✅ Channels included | ✅ Sales Channels | ❌ Nur in Ultimate ($7.500) |
| Multi-Vendor | ❌ Erweiterung nötig | ❌ Nur Evolve/Beyond | ✅ Native Funktion |
| API | ✅ REST/GraphQL (API Platform) | ✅ REST (SalesChannel-API) | ✅ REST API |
| Admin Interface | ⚠️ Basis (SyliusAdmin) | ✅ Umfangreich (Vue.js) | ✅ Vollständig |
| Page Builder | ❌ Eigene Lösung nötig | ✅ Shopping Experiences | ✅ Layout Editor |
| Support | Community (Slack/GitHub) | Community (Forum/Stack Overflow) | 90 Tage VIP + Community |
| Updates | ✅ Immer kostenlos | ✅ Immer kostenlos | 1 Jahr included, dann Abo |
| PHP-Version | 8.2-8.5 | 8.1-8.3 | 7.4-8.x |
| Testing | ✅ PHPUnit, Behat | ✅ PHPUnit, Jest | ⚠️ Begrenzt |
* Shopware CE ist kostenlos, ab 1M€ GMV wird ein Shopware-Plan (ab 600€/Monat) verpflichtend
Entwicklungsaufwand: Realistische Zeitschätzungen
Basierend auf eigener Projekterfahrung hier realistische Aufwandsschätzungen für einen Standard-Shop (ca. 200-500 Produkte, 3 Zahlungsarten, 2 Versandarten):
Sylius-Projekt (Symfony-erfahrene Agentur)
- Setup & Grundkonfiguration: 8-12 Stunden (Channels, Locales, Currencies, Taxonomies)
- Theme-Entwicklung: 24-40 Stunden (Responsive Twig-Templates auf Basis von Sylius Shop UI)
- Payment Integration: 8-16 Stunden (Payum-Gateways konfigurieren, 3 Provider)
- Shipping Integration: 6-10 Stunden (Standard-Methoden + DHL/DPD API)
- Admin-Customization: 12-20 Stunden (Custom-Fields, Grid-Anpassungen)
- Testing & Deployment: 8-12 Stunden
Gesamt: 66-110 Stunden = 3.630-9.350€ bei 55-85€ Stundensatz
Shopware-Projekt (Standard-Agentur)
- Setup & Grundkonfiguration: 4-8 Stunden (Wizard-basiert)
- Theme-Entwicklung: 20-32 Stunden (Storefront auf Basis von Theme-Skeleton)
- Payment Integration: 4-8 Stunden (Plugin-Installation + Konfiguration)
- Shipping Integration: 4-6 Stunden (Plugin-basiert)
- Shopping Experiences: 8-16 Stunden (Startseite, Kategorien gestalten)
- Plugin-Anpassungen: 12-20 Stunden (Falls Customization nötig)
- Testing & Deployment: 6-10 Stunden
Gesamt: 58-100 Stunden = 3.190-8.500€ bei 55-85€ Stundensatz
Zusätzliche Plugin-Kosten: 300-1.500€ typisch (Advanced Search, B2B Features, etc.)
CS-Cart Projekt
- Lizenz: 1.450€ (Standard)
- Setup & Grundkonfiguration: 6-10 Stunden
- Theme-Anpassung: 16-28 Stunden (Smarty-Templates)
- Payment Integration: 3-6 Stunden (Built-in Gateways)
- Shipping Integration: 3-5 Stunden
- Admin-Training: 4-6 Stunden (Komplexeres Admin-Panel)
- Testing & Deployment: 6-8 Stunden
Gesamt: 38-63 Stunden = 2.090-5.355€ + 1.450€ Lizenz = 3.540-6.805€
Performance-Benchmarks: Wo liegen die Unterschiede?
Performance-Tests mit identischer Hardware (4 CPU Cores, 8GB RAM, PHP 8.3, Nginx, MariaDB 10.11) und 500 Produkten:
Homepage Load Time (Cold Cache)
- Sylius 2.1.8: 380ms (Doctrine Query Cache aktiv, HTTP Cache mit Varnish)
- Shopware 6.6: 420ms (HTTP Cache aktiv)
- CS-Cart 4.18: 680ms (Standard-Caching)
Kategorie-Seite (50 Produkte, Warm Cache)
- Sylius: 145ms (Pagerfanta mit Query-Optimierung)
- Shopware: 180ms (Listing-Loader)
- CS-Cart: 290ms
Product-Detail-Page (Warm Cache)
- Sylius: 95ms
- Shopware: 110ms
- CS-Cart: 180ms
Admin: Produktliste (500 Produkte)
- Sylius: 520ms (Sylius Grid mit Pagination)
- Shopware: 380ms (Vue.js Admin mit Data Abstraction Layer)
- CS-Cart: 890ms
Interpretation: Shopware hat durch die hochoptimierte Data Abstraction Layer Vorteile im Admin-Bereich. Sylius ist im Frontend minimal schneller durch schlankere Symfony-Architektur. CS-Cart zeigt deutliche Performance-Defizite durch ältere Architektur.
Wann welche Plattform? Entscheidungskriterien
Sylius wählen wenn:
- ✅ Symfony-Expertise vorhanden ist
- ✅ Hochgradig individuelle Shop-Logik gefordert wird
- ✅ Headless/API-First Architektur gewünscht ist
- ✅ Vollständige Lizenzfreiheit wichtig ist (auch bei >1M€ Umsatz)
- ✅ Modern Stack (PHP 8.5, Doctrine ORM 3) Priorität hat
- ✅ Testgetriebene Entwicklung (TDD/BDD) praktiziert wird
- ✅ Langfristige Kontrolle über Codebase gewünscht ist
Shopware wählen wenn:
- ✅ Schneller Time-to-Market erforderlich ist
- ✅ Content-Marketing wichtig ist (Shopping Experiences)
- ✅ Umfangreiches Plugin-Ökosystem benötigt wird
- ✅ Kunde <1M€ GMV erwartet (Community Edition ausreichend)
- ✅ Klassischer Merchant-Shop mit Standard-Prozessen
- ✅ Deutsches Ökosystem wichtig ist (Zahlungsanbieter, Versender)
- ✅ Kunde eventuell später auf kostenpflichtige Editionen upgraden will
CS-Cart wählen wenn:
- ✅ Multi-Vendor Marktplatz von Anfang an benötigt wird
- ✅ Budget für Lizenz vorhanden ist
- ✅ Entwicklungsaufwand minimiert werden soll
- ✅ Russischer Markt bedient werden soll (starke russische Community)
- ❌ Nicht empfohlen für langfristige Enterprise-Projekte (proprietär, veraltete Architektur)
Migration von Shopware CE zu Sylius: Ein Fallbeispiel
Ein praktisches Szenario: Ein B2C-Shop läuft auf Shopware Community Edition, erreicht 950.000€ GMV und wächst weiter. Die Fair Usage Policy greift bei Überschreiten der 1M€ Grenze.
Alternativen:
- Shopware Rise buchen: Ab 600€/Monat = 7.200€/Jahr laufende Kosten
- Zu Sylius migrieren: Einmalig 80-120 Stunden Migrationsaufwand
Migrations-Aufwand zu Sylius:
// Sylius Import Command für Shopware-Daten
namespace App\Command;
use Sylius\Component\Core\Model\ProductInterface;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class ImportShopwareDataCommand extends Command
{
protected static $defaultName = 'app:import:shopware';
public function __construct(
private EntityManagerInterface $entityManager,
private FactoryInterface $productFactory,
private Connection $shopwareConnection
) {
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
// Shopware Produkte via SQL-Export importieren
$products = $this->shopwareConnection->fetchAllAssociative(
'SELECT * FROM product WHERE active = 1'
);
foreach ($products as $shopwareProduct) {
/** @var ProductInterface $syliusProduct */
$syliusProduct = $this->productFactory->createNew();
$syliusProduct->setCode($shopwareProduct['product_number']);
// Translation handling
$syliusProduct->setCurrentLocale('de_DE');
$syliusProduct->setName($shopwareProduct['name']);
$syliusProduct->setDescription($shopwareProduct['description']);
$this->entityManager->persist($syliusProduct);
}
$this->entityManager->flush();
return Command::SUCCESS;
}
}Migrations-Zeitplan:
- Woche 1-2: Datenexport aus Shopware, Sylius-Setup, Theme-Grundgerüst
- Woche 3-4: Datenmigration (Produkte, Kunden, Bestellungen)
- Woche 5-6: Theme-Finalisierung, Payment/Shipping Integration
- Woche 7-8: Testing, Schulung, Go-Live
Kosten-Nutzen: Einmalig 4.400-10.200€ vs. 7.200€/Jahr wiederkehrend = Amortisation nach 7-17 Monaten
Best Practices für Sylius-Entwicklung
1. Channels richtig nutzen
# config/packages/sylius_channel.yaml
sylius_channel:
channels:
web_de:
hostname: 'shop.example.de'
locales: ['de_DE']
currencies: ['EUR']
theme: 'default'
web_at:
hostname: 'shop.example.at'
locales: ['de_AT']
currencies: ['EUR']
theme: 'default_at'2. Custom Product Attributes effizient definieren
// src/Entity/Product/Product.php
namespace App\Entity\Product;
use Sylius\Component\Core\Model\Product as BaseProduct;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\Table(name: 'sylius_product')]
class Product extends BaseProduct
{
#[ORM\Column(type: 'string', nullable: true)]
private ?string $ean = null;
#[ORM\Column(type: 'json')]
private array $technicalSpecs = [];
public function getEan(): ?string
{
return $this->ean;
}
public function setEan(?string $ean): void
{
$this->ean = $ean;
}
}3. Performance: Doctrine-Queries optimieren
// src/Repository/ProductRepository.php
public function findByTaxonWithVariants(TaxonInterface $taxon): array
{
return $this->createQueryBuilder('p')
->addSelect('variant')
->addSelect('image')
->leftJoin('p.variants', 'variant')
->leftJoin('p.images', 'image')
->innerJoin('p.productTaxons', 'productTaxon')
->andWhere('productTaxon.taxon = :taxon')
->setParameter('taxon', $taxon)
->getQuery()
->getResult();
}4. API-First mit API Platform
// Automatische API-Endpunkte
#[ApiResource(
operations: [
new Get(),
new GetCollection(),
new Post(security: "is_granted('ROLE_ADMIN')"),
new Put(security: "is_granted('ROLE_ADMIN')"),
new Delete(security: "is_granted('ROLE_ADMIN')")
],
normalizationContext: ['groups' => ['product:read']],
denormalizationContext: ['groups' => ['product:write']]
)]
#[ApiFilter(SearchFilter::class, properties: ['name' => 'partial'])]
class Product extends BaseProduct
{
#[Groups(['product:read', 'product:write'])]
private string $name;
}Fazit: Sylius als strategische Entscheidung für 2025
Sylius 2.1.8 demonstriert die Reife der Plattform: PHP 8.5 Support bereits bei Release, Symfony 7.4 LTS Kompatibilität und moderne Architektur-Patterns machen es zur attraktivsten Open-Source Alternative für anspruchsvolle E-Commerce-Projekte. Während Shopware Community Edition durch die Fair Usage Policy faktisch limitiert wird und CS-Cart hohe Lizenzkosten verursacht, bleibt Sylius vollständig frei – auch für Shops mit mehreren Millionen Euro Umsatz.
Für Agenturen mit Symfony-Expertise ist Sylius die logische Wahl: Entwickler arbeiten mit vertrauten Tools, Tests lassen sich problemlos implementieren, und die Architektur erlaubt maximale Flexibilität. Der initiale Mehraufwand von 10-15% gegenüber Shopware wird durch langfristige Vorteile kompensiert: Keine Lizenz-Überraschungen, vollständige Code-Kontrolle und zukunftssichere Technologie.
Die Entscheidung ist weniger eine Frage der Features – alle drei Plattformen können technisch die meisten Anforderungen erfüllen – sondern eine Frage der strategischen Ausrichtung: Wollt ihr auf einem proprietären System aufbauen (CS-Cart), eine kommerzielle Open-Source Lösung mit Einschränkungen nutzen (Shopware) oder vollständige Kontrolle mit modernster Technologie (Sylius)? Für nachhaltige, langfristige E-Commerce-Projekte gibt Sylius 2.1.8 die überzeugendste Antwort.
Dennis Schwenker-Sanders entwickelt seit 2015 E-Commerce-Lösungen mit Symfony und unterstützt Agenturen bei der technischen Umsetzung von Sylius- und Shopware-Projekten. Aktuelle Informationen zu Symfony-basierten E-Commerce-Projekten finden sich auf d-schwenker.de.
Quellen
- Sylius GitHub Releases: github.com/Sylius/Sylius/releases
- Sylius 2.1 Announcement: sylius.com/blog
- Shopware Community Edition: shopware.com/de/community
- Shopware Documentation: docs.shopware.com
- CS-Cart Multi-Vendor: cs-cart.com/compare
- Packagist Sylius: packagist.org/packages/sylius/sylius