đ Sylius : e-commerce headless construit sur Symfony et API Platform
đ 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 serveEt 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
ResourceProcessorpour intervenir avant ou aprĂšs la persistance dâune commande. - Tu enregistres un nouveau type de promotion via la
PromotionActioninterface. - Tu écris un
PaymentMethodcustom qui sâintĂšgre nativement avec lesPaymentStateMachine.
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.