Une couche d'intégration sur mesure en deux plugins qui relie nopCommerce à Powerall, la plateforme de gestion tout-en-un néerlandaise qui réunit atelier, entrepôt, planification, administration et ventes dans un seul système pour plus de 6 000 utilisateurs. Développée pour On-Site BV, partenaire solution nopCommerce basé à Rotterdam et spécialisé dans le commerce B2B complexe, l'intégration permet à ses clients d'exploiter une boutique nopCommerce au-dessus de Powerall comme source unique de vérité - sans que personne ait à maintenir le catalogue deux fois.
Le défi
Powerall détient les données produit, et il les détient au format ERP : fichiers de propriétés de groupe, propriétés techniques, variantes et enregistrements de pays qui n'ont jamais été modélisés pour une boutique en ligne. Un import générique aurait soit aplati tout cela en champs texte inutilisables, soit obligé un développeur à coder à la main un mappage pour chaque nouveau groupe de produits. On-Site avait besoin de quelque chose que ses consultants puissent configurer client par client, pas d'un script ponctuel.
Une architecture en deux plugins
Nous avons découpé le travail selon une séparation nette, pour que chaque partie puisse évoluer et être déployée de son côté :
- Nop.Plugin.Misc.Powerall.Import - la couche de mappage et de mise en forme des données qui transforme les exports Powerall en un véritable catalogue nopCommerce
- Nop.Plugin.Misc.Powerall.Integration - la connexion en direct qui maintient les deux systèmes synchronisés et renvoie les commandes
Les deux suivent l'architecture standard des plugins nopCommerce - entités de domaine avec leur propre couche de données et leurs migrations, services, fabriques de modèles, composants de vue et vues d'administration - de sorte que rien ne déborde sur le cœur du produit et que les mises à jour restent une formalité.
Powerall.Import : un mappage piloté par les comportements
Au lieu d'une correspondance de champs figée, le plugin d'import repose sur des Import Behaviours configurables : des règles réutilisables qui décrivent comment une donnée Powerall doit arriver dans nopCommerce.
- Les Product Property Behaviours déterminent, propriété par propriété, si une valeur Powerall devient un attribut de spécification, un attribut produit qui pilote les variantes, ou simplement du contenu produit
- Les métadonnées de catégorie sont dérivées du fichier de propriétés de groupe, de sorte que la structure des catégories et les métadonnées SEO proviennent des données de l'ERP au lieu d'être ressaisies à la main
- Les spécifications et les variantes sont mappées ensemble, ce qui garde les données techniques filtrables sur la page catalogue et les combinaisons achetables correctes sur la fiche produit
- Un menu Behaviours dédié dans l'administration présente les règles sous forme de cartes, si bien que c'est un consultant - et non un développeur - qui configure le mappage
- Les données sont validées avant le lancement de l'import, et chaque paramètre est livré avec des ressources de chaînes localisées et des descriptions en ligne
Powerall.Integration : garder les deux systèmes synchronisés
- Synchronisation initiale pour aligner entièrement une nouvelle boutique sur Powerall en une seule passe
- Tâche de synchronisation planifiée avec logique de filtrage, pour que les exécutions récurrentes ne touchent que les produits réellement concernés au lieu de parcourir tout le catalogue
- Synchronisation pilotée par les événements, branchée sur les événements nopCommerce, pour les modifications qui ne peuvent pas attendre la prochaine exécution planifiée
- Renvoi des commandes vers Powerall, avec un bouton de synchronisation manuelle dans l'administration pour les commandes isolées qui ont besoin d'un coup de pouce
- Correspondance des pays entre les enregistrements de pays Powerall et les pays nopCommerce, avec un traitement défensif des données ERP incomplètes
- Une désinstallation complète qui supprime proprement les paramètres, le schéma et les tâches - important pour une intégration déployée sur plusieurs boutiques clientes
Expérience d'administration et observabilité
Les deux plugins ajoutent leurs propres entrées de menu et écrans de configuration à l'administration nopCommerce. L'intégration écrit un journal de synchronisation détaillé, avec des vues de journal dédiées, de sorte que lorsqu'une commande ou un produit n'apparaît pas là où il devrait, la réponse est à un clic plutôt qu'à un ticket de support et une session sur le serveur.
Socle technique
Conçu pour nopCommerce 4.80 sur ASP.NET Core, livré sous forme de deux plugins indépendants avec leurs propres paramètres, valeurs par défaut, migrations et traductions. Le résultat est réutilisable : On-Site peut déployer la même intégration chez n'importe quel client qui utilise Powerall et la configurer boutique par boutique depuis l'administration, au lieu de forker le code.
Le résultat
Une intégration en production qui donne à On-Site BV une réponse reproductible à la question « pouvez-vous connecter notre boutique en ligne à Powerall ? » - des données produit détenues par l'ERP qui arrivent sous forme de catalogue nopCommerce correctement structuré et filtrable, des commandes qui repartent automatiquement, et un mappage entièrement configurable par un consultant plutôt que reconstruit dans le code à chaque déploiement.