nopCommerce
Nos boutiques en ligne tournent sur nopCommerce, une solution e-commerce open-source écrite en ASP.NET Core. On en a une bonne dizaine en production, et elles se ressemblent toutes parce qu'on part toujours de la même base et qu'on applique les mêmes recettes. Cette section décrit ces recettes : comment on transforme un nopCommerce "sorti de la boîte" en projet Spektrum, comment il cohabite avec un site Umbraco, et comment on le règle.
Le principe : un shop greffé sur un site Umbraco
Chez nous, une boutique est rarement seule au monde. Le montage classique, c'est un site Umbraco (en version 13 ou 17 sur nos projets actuels) pour tout ce qui est éditorial (pages, contenu, header, footer, SEO) et un shop nopCommerce branché en sous-application de ce site, typiquement sous une URL comme /shop.
Tout l'enjeu est de faire oublier au visiteur qu'il y a deux applications derrière. On y arrive en partageant deux choses entre les deux mondes :
- Le header et le footer. Le site Umbraco les expose sur des pages dédiées, et le shop va les chercher pour les afficher tels quels. Le client édite son menu une seule fois, dans Umbraco, et il apparaît partout.
- Le référencement. On présente aux moteurs de recherche un seul
sitemap.xmlet un seulrobots.txt, qui agrègent le contenu des deux applications.
Le détail de ces branchements vit dans Intégration avec Umbraco.
Comment s'y prendre
Selon là où tu en es, voici le bon point d'entrée :
- Tu démarres un nouveau projet et tu pars d'un nopCommerce vierge → Mettre en place un nouveau projet.
- Tu dois brancher le shop sur le site Umbraco → Intégration avec Umbraco.
- La boutique tourne, il faut la régler pour le client (livraison, paiement, taxes) → Paramétrer la boutique.
Se repérer dans le code
nopCommerce a une arborescence stable d'une version à l'autre. Dans la pratique, on passe presque tout notre temps dans src/Presentation/Nop.Web : c'est l'application web. Les appsettings sont dans son sous-dossier App_Data, le thème du client dans Themes, et tout le back-office dans Areas/Admin. Le cœur (configuration, helpers bas niveau) est dans src/Libraries/Nop.Core. Quand une doc te parle d'un fichier à modifier, c'est presque toujours quelque part là-dedans.
Côté infrastructure, une boutique suit la convention nop_<skin>_<env> pour son conteneur et sa base de données, voir Convention de nommage et Docker Compose.

