← Tous les articles
Sam. 16 mai 2026 · 4 min de lecture

🛒 Sylius : e-commerce headless construit sur Symfony et API Platform

Sylius

📚 Introduction

Sylius est, Ă  mes yeux, le projet e-commerce PHP le plus intĂ©ressant Ă  suivre depuis 5 ans. Construit sur Symfony et API Platform, sous licence MIT, il vise un public clair : les Ă©quipes qui veulent un e-commerce sur-mesure, sans payer la licence d’un Commerce Cloud ni hĂ©riter de la complexitĂ© historique de Magento.

J’ai utilisĂ© Sylius sur deux projets B2B en agence. Le constat est simple : quand tu connais Symfony, tu te sens chez toi en cinq minutes. Pas de syntaxe propriĂ©taire, pas de couche d’abstraction maison, juste du code Symfony bien organisĂ©. C’est le sujet de ce post : pourquoi Sylius mĂ©rite une vraie place dans la stack PHP de 2026, et quand l’éviter.

đŸ§± La promesse : Symfony, pas un fork

Sylius n’est pas un CMS qui ajoute des fonctionnalitĂ©s e-commerce. C’est un ensemble de bundles Symfony que tu intĂšgres dans une application Symfony standard. Les Resource, les Repository, les EventListener que tu Ă©cris ressemblent Ă  tout ce que tu Ă©cris dĂ©jĂ .

Le projet est composé de plusieurs blocs :

  • Sylius Core : produits, commandes, clients, taxes, promotions. C’est la base rĂ©utilisable.
  • API Platform intĂ©grĂ© nativement, qui expose l’ensemble en REST et GraphQL.
  • Sylius Admin : back-office Twig/Bootstrap, complet et fonctionnel out-of-the-box.
  • Sylius Shop : frontend de rĂ©fĂ©rence Twig, Ă  remplacer le plus souvent par ton propre frontend Next.js / Nuxt / Astro.

L’installation est un composer create-project classique :

composer create-project sylius/sylius-standard my-shop
cd my-shop
php bin/console sylius:install
symfony serve

Et la derniĂšre version stable, Sylius 2.2.6 (juin 2026), tourne sur Symfony 7+ avec PHP 8.2 minimum.

🔌 Headless par design

Le storefront Twig livrĂ© avec Sylius reste fonctionnel pour MVP rapides, mais le pattern moderne consiste Ă  le bypasser et Ă  consommer l’API Platform exposĂ©e par Sylius. Tu construis ton frontend dans le framework que tu veux : Next, Nuxt, Astro, Solid, peu importe.

Les avantages sont les mĂȘmes qu’ailleurs : performance (SSR + ISR), DX, isolation entre backend mĂ©tier et UI marketing. La spĂ©cificitĂ© Sylius : l’API n’est pas un greffon, c’est la couche de rĂ©fĂ©rence. Le back-office consomme la mĂȘme API que ton frontend.

GET /api/v2/shop/products?filter[name]=t-shirt
Authorization: Bearer ...

Pour ceux qui ont vu mes posts sur les agents IA, Sylius + API Platform en mode headless te place exactement dans la situation oĂč un agent peut interagir avec ton catalogue via MCP. Le mĂȘme pattern que dans Laravel Boost appliquĂ© au commerce.

🧰 Personnalisation : le bon niveau d’abstraction

C’est sur la personnalisation que Sylius brille face Ă  Shopify ou Magento. Le framework expose des Extension Points explicites pour chaque concept mĂ©tier :

  • Tu surcharges une entity Sylius en Ă©tendant la classe et en pointant ton mapping Doctrine.
  • Tu dĂ©clares un ResourceProcessor pour intervenir avant ou aprĂšs la persistance d’une commande.
  • Tu enregistres un nouveau type de promotion via la PromotionAction interface.
  • Tu Ă©cris un PaymentMethod custom qui s’intĂšgre nativement avec les PaymentStateMachine.

Tout passe par les conventions Symfony : services autowiré, tagués, configurés dans des YAML clairs. Aucun XML, aucun fichier system.xml à 2000 lignes.

use Sylius\Component\Promotion\Action\PromotionActionInterface;
 
final class GiftCardPromotionAction implements PromotionActionInterface
{
	public function execute(
		PromotionSubjectInterface $subject,
		array $configuration,
		PromotionInterface $promotion,
	): bool {
		// ...
	}
}

Et tu déclares le service avec un tag :

services:
	App\Promotion\Action\GiftCardPromotionAction:
		tags:
			- { name: 'sylius.promotion_action', type: 'gift_card', label: 'Gift Card' }

đŸ§Ș BDD et qualitĂ©

Sylius est l’un des rares projets PHP de cette taille oĂč chaque feature est couverte par des scenarios Behat lisibles en Gherkin. La suite de tests est massive et tu peux la lancer sur ton fork pour valider tes modifications. Cette discipline dĂ©teint sur les contributeurs : la PR moyenne contient une feature et son scĂ©nario.

Pour une Ă©quipe qui hĂ©rite d’un Sylius, c’est un gros plus : tu peux Ă©crire un scenario qui dĂ©crit le bug, le faire Ă©chouer, le corriger. La documentation vivante.

🎯 Quand choisir Sylius

  • Tu veux un e-commerce headless dont le backend est extensible profondĂ©ment.
  • Tu as une Ă©quipe Symfony et tu veux capitaliser sur cette compĂ©tence.
  • Tu fais du B2B (workflows complexes, customer hierarchies, devis) oĂč Shopify ne suit pas.
  • Tu construis un multi-vendor marketplace : avec Open Marketplace (plugin communautaire) ou en custom sur la base existante.
  • Tu veux rester maĂźtre de ton hosting (Docker, K8s) sans verrou SaaS. Voir Coolify pour l’orchestration auto-hĂ©bergĂ©e.

⚠ Quand Ă©viter Sylius

  • Tu fais un mono-shop B2C standard avec 50 SKUs : Shopify reste plus rapide Ă  dĂ©ployer.
  • Tu n’as personne de senior Symfony dans l’équipe : Sylius rĂ©compense la maĂźtrise du framework. Sans, tu vas patiner.
  • Tu cherches un produit clĂ© en main fonctionnel : Sylius est un framework, pas une appli. Le polish marketing est Ă  construire.
  • Tu attends une marketplace de thĂšmes : il n’y en a pas vraiment. Tu construis ton frontend.

🎉 Conclusion

Sylius est la rĂ©ponse PHP la plus solide Ă  la question “comment je construis un e-commerce sur-mesure sans repartir de zĂ©ro et sans payer une licence”. Le projet est mature, la communautĂ© active, l’écosystĂšme de plugins respectable. Ce n’est pas le bon choix pour tout le monde, mais quand c’est le bon choix, il l’est vraiment.

Pour les Ă©quipes Symfony : c’est probablement la corde la plus utile Ă  ajouter Ă  ton arc en 2026 si tu touches au commerce. Pour les autres : au minimum, c’est un excellent codebase Ă  Ă©tudier pour comprendre comment structurer un Symfony Ă  taille rĂ©elle.

🔗 Liens utiles