🌙 Lunar : un e-commerce Laravel qui ne ressemble pas à un fork de Magento
📚 Introduction
Côté Symfony, on a Sylius qui répond à la question “comment je fais du e-commerce sur-mesure sans repartir d’un Magento”. Côté Laravel, la réponse a longtemps été : “tu prends Spark ou Cashier et tu codes le catalogue à la main”. Pas idéal.
Lunar change ça. C’est un package e-commerce headless pour Laravel, sous licence MIT, qui pose les bonnes fondations sans imposer un univers parallèle. Pas de templates Twig à la Sylius, pas de DSL custom à la Magento. Du Eloquent, des migrations, un admin Filament. Si tu écris du Laravel tous les jours, Lunar te parle.
Dans ce post, j’explique pourquoi Lunar mérite d’entrer dans la short-list 2026 pour un projet e-commerce Laravel, et où il atteint ses limites.
🧱 La promesse : Laravel partout
L’angle de Lunar est radicalement différent de celui de Sylius ou Magento. Pas de bundle, pas d’extension point sur-conçu. Juste des modèles Eloquent que tu utilises comme n’importe quel modèle Laravel :
use Lunar\Models\Product;
use Lunar\Models\ProductVariant;
$product = Product::create([
'attribute_data' => collect([
'name' => new \Lunar\FieldTypes\TranslatedText(['fr' => 'T-shirt']),
'description' => new \Lunar\FieldTypes\TranslatedText(['fr' => 'Coton bio']),
]),
'status' => 'published',
'brand_id' => $brand->id,
]);
ProductVariant::create([
'product_id' => $product->id,
'sku' => 'TS-001-M',
'stock' => 100,
]);Tu peux étendre ces modèles, écouter leurs events, créer des observers — comme n’importe quel modèle Eloquent. C’est ce qui rend la courbe d’apprentissage tellement plus douce qu’avec un Magento.
🚀 Installation
L’install standard est un Composer + une commande artisan :
composer require lunarphp/lunar
php artisan lunar:install
php artisan migrateLunar installe son admin Filament, ses migrations, et ses seeders. Si tu connais déjà Filament, tu te retrouves en terrain familier : Resources, Pages, Widgets, tout y est. L’admin est immédiatement utilisable, sans tuning.
La dernière version stable au moment où j’écris ces lignes est Lunar 1.3 (janvier 2026), compatible Laravel 11 et 12, PHP 8.2+.
🧰 Ce qui est dans la boîte
Lunar livre la couche métier complète :
- Catalogue : produits, variantes, collections, attributs typés (text, number, file, translated text).
- Pricing : multi-currency natif, tax zones, tiered pricing pour le B2B.
- Carts & Orders : pipeline-based, donc chaque étape (taxe, shipping, discount, total) est un step que tu peux remplacer.
- Customers : groupes, profils, B2B-ready.
- Stock & Shipping : inventaire multi-warehouse, méthodes de livraison configurables.
- Discounts : moteur de promotions à conditions composables.
- Scout integration : la recherche produit utilise Laravel Scout dès le départ.
Ce qui me plaît : tout est lazy. Tu peux désactiver multi-currency si tu n’en as pas besoin, idem pour le multi-warehouse. Tu n’hérites pas d’une complexité que tu ne consommes pas.
🔌 Headless et frontend
Lunar ne livre pas de storefront prêt à l’emploi (contrairement à Sylius qui propose un shop Twig). C’est volontaire : la vision officielle est que tu construis ton storefront avec le framework que tu veux. Inertia + React, Inertia + Vue, Livewire, Astro consommant l’API REST, Next.js — tu choisis.
Pour exposer Lunar en API, le pattern recommandé est de monter une API REST custom au-dessus des modèles Eloquent. La couche Eloquent étant standard Laravel, tu branches API Resources, Sanctum et un router classique, ou tu passes par un kit comme lunarphp/livewire-starter-kit côté storefront full-stack. C’est moins out-of-the-box que Sylius + API Platform, mais ça force une frontière nette entre Core métier et API publique.
🎯 Quand choisir Lunar
- Tu as une équipe Laravel et tu veux capitaliser sur cette compétence.
- Tu veux un admin moderne dès l’install sans devoir customiser un back-office obscur.
- Tu fais du B2B (groupes clients, prix par paliers, multi-warehouse) sans vouloir un Magento.
- Tu construis un headless storefront consommant l’API depuis un framework SPA / SSR moderne.
- Tu utilises déjà Filament pour d’autres admin internes — tout sera homogène.
🆚 Lunar vs Sylius
Les deux jouent dans la même catégorie. Le choix dépend de ta stack.
| Critère | Lunar (Laravel) | Sylius (Symfony) |
|---|---|---|
| Framework hôte | Laravel 11+ | Symfony 7+ |
| Couche d’admin | Filament (Livewire) | Twig + Bootstrap |
| API headless | À assembler (Laravel custom) | API Platform natif |
| Maturité B2B | Bonne, en progression | Très bonne (workflows mûrs) |
| Tests / BDD | Pest | Behat (gros set) |
| Licence | MIT | MIT |
| Écosystème plugins | Naissant | Très large |
Lunar est plus jeune mais plus agréable à hacker pour un dev Laravel. Sylius est plus mature et structuré pour le B2B complexe.
⚠️ Quelques précautions
- Storefront à construire : ce n’est pas un Shopify. Compte un sprint de mise en place du frontend.
- Couche API : Lunar ne livre pas d’API REST officielle prête à l’emploi. Tu l’assembles avec API Resources et Sanctum, ou tu adoptes un starter kit communautaire. Vérifie la maturité du choix avant de t’engager.
- Migration de version : 1.x est en évolution active, lis le changelog avant les majeures. Les migrations Eloquent peuvent toucher des tables avec beaucoup de données.
- Multi-currency : très bien fait mais pense au taux de change dynamique. Lunar gère la structure, pas la mise à jour du taux. Tu branches une source.
🎉 Conclusion
Lunar est la meilleure proposition Laravel pour du e-commerce sérieux en 2026. La trajectoire est claire, la communauté grandit, et l’approche “du Eloquent pur” rend le code agréable à maintenir. Si tu construis un nouveau projet e-commerce avec une équipe Laravel, c’est l’option à étudier en priorité.
Reste un grand absent par rapport à Sylius : la profondeur des plugins métier prêts à l’emploi. Si tu as besoin de fonctionnalités très spécifiques out-of-the-box (multi-vendor marketplace mature, pricing rules très avancées), Sylius garde une longueur d’avance. Sur les fondations, Lunar joue déjà dans la même cour.
🔗 Liens utiles
/faq
Questions fréquentes
Qu'est-ce que Lunar ?
+
Lunar est un package e-commerce headless pour Laravel, sous licence MIT, fondé sur des modèles Eloquent, des migrations et un admin Filament. La dernière version stable est Lunar 1.3 (janvier 2026), compatible Laravel 11 et 12, PHP 8.2+.
Comment installer Lunar ?
+
L'install standard combine un « composer require lunarphp/lunar » avec « php artisan lunar:install » et « php artisan migrate ». Lunar installe alors son admin Filament, ses migrations et ses seeders, et l'admin est immédiatement utilisable.
Lunar ou Sylius, lequel choisir ?
+
Le choix dépend de la stack : Lunar (Laravel) est plus jeune mais plus agréable à hacker pour un dev Laravel, tandis que Sylius (Symfony) est plus mature et structuré pour le B2B complexe, avec un écosystème de plugins très large.