Lors des OCA Days 2024, Quentin Groulard, développeur Odoo chez l'intégrateur Odoo Acsone , a présenté une conference intitulée "A walk through the Shopinvader API". Quentin a partagé son expérience avec divers clients ayant des besoins en solutions de commerce électronique, et comment lui et ses collègues ont répondu à ces besoins grâce à Shopinvader.
Voici ci-dessous le résumé de sa présentation que vous pouvez visionner en intégralité et en anglais via le lien Youtube :
Tout d'horizon des différentes solutions e-commerce qui s'intègrent avec Odoo
Explorons tout d’abord les différentes options disponibles pour créer une boutique en ligne avec Odoo. La première solution qui vient à l'esprit est l'application (le module) standard e-Commerce d'Odoo. Le module est rapide et facile à configurer, il offre des outils de personnalisation flexibles avec notamment l'éditeur de site web drag and drop d'Odoo, et il est relativement facile à utiliser. Cependant, cette solution peut présenter des limitations, notamment en termes de performance lorsqu'il s'agit de gérer un grand catalogue de produits ou de supporter un trafic important de visiteurs sur le site.
Les limites d'Odoo website du module e-commerce
On peut citer plusieurs cas où l'application standard d'Odoo pourrait ne pas répondre au besoin du site :
Performance : Odoo n'est pas conçu pour rechercher rapidement un grand nombre d'enregistrements, ce qui peut poser problème pour les catalogues de produits volumineux.
Charge de l'instance d'Odoo : Si votre instance Odoo est déjà lente ou si elle exécute de nombreuses tâches en arrière-plan, cela peut ralentir votre site web.
Séparation des cycles de vie : Il est souvent préférable de séparer les cycles de vie des différentes applications pour bénéficier des nouvelles fonctionnalités sans avoir à migrer l'ensemble de l'instance Odoo. Si vous ne pouvez pas ou n'avez pas les moyen de migrer votre ERP, votre site e-Commerce va rester bloqué au niveau de la version de l'ERP, sans pouvoir béneficier d'améliorations, de patchs de sécurité et des nouvelles fonctionnalités web. Le fait de séparer le siet et 'ERP permet ainsi de dissocier les cycles de vie et avancer à une vitesse variable entre le front-end et le back-end.
Intégration avec des sites web existants - Certains clients peuvent déjà disposer d'un site web bien établi et construit avec un CMS performant. Dans ce cas, ajouter une partie de e-shop à ce site existant peut être plus efficace que de tout reprendre à zéro avec l'e-Commerce d'Odoo. Cela permet aux clients de continuer à utiliser leurs outils existants tout en ajoutant des fonctionnalités e-Commerce.
Considérations de sécurité - Un autre point crucial concerne la sécurité. Par exemple, certains clients, comme les administrations publiques, peuvent avoir des exigences strictes en matière de sécurité et ne peuvent pas se permettre d'exposer leur ERP sur Internet. Utiliser l'application e-commerce d'Odoo dans ce cas pourrait poser des problèmes de sécurité, car cela nécessiterait d'exposer Odoo directement sur Internet.
Solutions e-Commerce dédiées - les grands acteurs du marché
Pour les besoins plus complexes et avancés il existe des soultions e-Commerce dédiées, tels que Prestashop, Magento, Shopify, Woocommerce ou autres qui peuvent être intégrés ou connectés à Odoo. Ces solutions offrent une architecture dédiée pour le commerce électronique (séparé d'Odoo), garantissant de meilleures performances et une meilleure évolutivité. Cependant, elles peuvent être coûteuses et poser des défis en termes d'intégration avec Odoo. Les entreprises devront mettre en place des mécanismes pour synchroniser les ventes entre le site web et Odoo, ce qui peut entraîner une duplication de la logique et des données.
Exemple pratique : calcul de remise
Si la logique de calcul de remise est complexe dans Odoo, répliquer cette logique dans une solution de e-Comemrce dédiée peut être difficile (d'autant plus si la solution en question propose déjà des règles ou systèmes de remise). Cela peut entraîner des disparités dans les prix affichés entre Odoo et le site de commerce électronique, ce qui n'est pas souhaitable.
Présentation de la solution e-Commerce Shopinvader
Shopinvader est la solution qui offre une alternative flexible et performante pour les besoins e-commerce avec Odoo comme back-end, en particulier pour le pure players du commerce électronique (les entreprises nécessitant une scalabilité et une performance élevées pour leur boutique en ligne). La solution a été développée (par plusiuers integrateurs Odoo et membres de l'OCA) pour combiner les avantages des architectures e-Commerce dédiées et l'intégration avec Odoo. Cette solution permet de bénéficier d'une architecture performante et évolutive tout en utilisant les enregistrements et les modèles d'Odoo. Par exemple, les adresses des clients, les solutions de paiement, les transporteurs, et même le panier d'achat sont directement liés à Odoo. Cela signifie que les fonctionnalités de calcul des prix, de gestion des stocks, de facturation et de paiement sont toutes gérées par Odoo. Pour en savoir plus sur la génèse de Shopinvader et les projets "ratés" sur Magento qui ont propulsé son développement, vous pouvez visionner la vidéo de la présentation sur Shopinvader de Sébastien Beau de 2021.
Migration et refactoring des modules Odoo Shopinvader en V16
Les modules Odoo Shopinvader ont récemment étés migrés vers la version 16 d'Odoo. Cette migration a été accompagnée d'un important refactoring, améliorant encore la performance et la stabilité de la solution.
Lors de la migration vers la version 16 d'Odoo, l'équipe de Shopinvader a simplifié le code pour le rendre plus facile à comprendre et à utiliser, notamment pour les nouveaux venus. Ils ont également introduit des outils comme FastAPI, qui permet de réduire considérablement la quantité de code nécessaire, de valider automatiquement les données et de générer automatiquement la documentation. Cela facilite grandement le travail des développeurs front-end, qui peuvent ainsi savoir exactement ce que l'API attend d'eux et ce qu'ils peuvent attendre de l'API.
Architecture type d'un projet Shopinvader
Voici l'architecture type d'un projet Shopinvader chez Acsone.
- Odoo et l’API : la brique back-end de Shopinvader Odoo joue un rôle central en fournissant une API pour le front-end. Cette API permet au front-end de créer des paniers, d'ajouter des produits, et de récupérer des informations comme les adresses de livraison des clients.
- La brique front-end de Shopinvader - un template opensource en VueJs et Nuxt - On a travaillé sur un template en VueJS et Nuxt pour mettre à disposition des développeurs un gabarit prêt à l’emploi pour pouvoir démarrer rapidement le front-end du web shop. Ce modèle inclut toutes les briques et composants e-Commerce en VueJs et Nuxt, tout ce dont vous pouvez avoir besoin pour communiquer avec l'API, facilitant ainsi le processus de développement.
- Search Engine - l’exportation du catalogue de produits vers le moteur de recherche Open Source Opensearch (anciennement ElasticSearch) - Un autre rôle crucial d'Odoo dans l'architecture Shopinvader est l'exportation du catalogue de produits vers un moteur de recherche. Ce moteur de recherche est une base de données hébérgée en ligne et spécialement conçue pour fournir des recherches rapides et un catalogue à jour, ce qui est essentiel pour un site e-commerce.
- CDN (Content Delivery Network) - Concernant les fichiers multimédias, comme les images des produits, ils sont souvent exportés vers un CDN (Content Delivery Network) pour accélérer le rendu du site web.
La brique CMS Headless - Le choix du CMS (de préférnece de type Headless) est laissé à l’entreprise, étant donné que le template VueJs et Nuxt permettent de se connecter facilement avec n’importe lequel des CMS Headless
Gestionnaire d'identité et d'accès - chez Acsone on utilise la solution Open Source Keycloak, pour gérer les comptes clients et l'authentification. Si le site est entièrement anonyme, ce composant n'est pas nécessaire.
Les fonctionnalités clés et les modules Shopinvader
On identifie quatre fonctionnalités essentielles pour un site de commerce électronique :
Catalogue de produits : affiche les produits aux clients potentiels, avec des options de recherche et de filtrage.
Système de gestion du panier : permet aux clients d'ajouter et de retirer des produits de leur panier.
Solution de paiement
Livraison : gestion de l'expédition des produits, sauf pour les produits numériques ou les services.
Configuration et gestion du catalogue de produits
Pour configurer un catalogue de produits sur Odoo et Shopinvader, on utilise cinq modules de l'API Shopinvader (à retrouver sur le repo GitHub de tous les modules Odoo Shopinvader), tous centrés sur le moteur de recherche, car c'est là que le catalogue de produits sera exporté.
Shopinvader Search Engine : Ce module principal permet d'exporter les produits et les catégories vers le moteur de recherche.
Shopinvader Search Engine Update : Ce module est presque obligatoire pour garantir que les modifications apportées aux produits sont automatiquement répercutées dans le moteur de recherche, assurant ainsi que les produits affichés sur le site web sont toujours à jour.
Shopinvader Search Engine Image : Ce module permet d'ajouter les URL des images des produits.
Shopinvader Search Engine Product Price : Ce module permet d'ajouter les prix des produits. Il utilise une liste de prix configurée pour calculer les prix des produits. Pour des besoins plus complexes, il est possible de développer des modèles de prix personnalisés.
Shopinvader Search Engine Assortments : Ce module permet de décider quels produits doivent apparaître sur le site web. Il utilise des domaines et des assortiments de produits liés à l'index du moteur de recherche. Une autre méthode consiste à utiliser des canaux de vente, en ajoutant des produits à ces canaux et en les liant à l'index du moteur de recherche.
La gestion du panier sur le site
Pour la gestion du panier avec Shopinvader et Odoo, un seul module est nécessaire : Shopinvader API Cart. Ce module permet d'ajouter et de retirer des produits du panier, ainsi que de procéder au paiement. Il s'agit en plus d'un panier asynchrone, qui permet d'ajouter des produits sur le front-end, même lorsque l'instance Odoo est momentaneament indisponible. Chaque panier crée unecommande sur Odoo et permet d'avoir les mêmes infomations au niveau des prix, de la disponiblité des produits, des remises, des taxtes et autre, sur le site et dans l'ERP. Pour en savoir plus, vous pouvez visionner la vidéo de présentation sur le module cart de Shopinvader, faite en 2023 par Marie Lejeune
La gestion des paiements
Pour gérer les paiements, deux modules sont essentiels :
Shopinvader API Payment Cards : pour le payement par carte CB sur le site.
Shopinvader API Payment Provider : permet d'intégrer des fournisseurs de paiement comme Stripe, SIPS, ou d'autres. Les utilisateurs peuvent également ajouter leurs propres modules de fournisseurs de paiement, à condition qu'ils soient supportés par Odoo.
La gestion des livraison pour l’e-commerce
Pour la gestion de la livraison, deux modules sont nécessaires :
Shopinvader API Address : permet de gérer et de mettre à jour les adresses de livraison et de facturation des clients.
Shopinvader API Delivery Carrier : permet de choisir parmi les transporteurs disponibles dans Odoo et de calculer les frais de livraison.
Modules supplémentaires
Au total, dix modules sont nécessaires pour mettre en place une API e-commerce fonctionnelle avec Shopinvader. Une fois à l'aise avec ces modules, les utilisateurs peuvent explorer une multitude de modules supplémentaires offrant des fonctionnalités avancées, telles que :
la gestion des programmes de fidélité et coupons, codes promos…
la gesiton des wishlistes (listes de souhaits)
les formulaires de contact créant des leads (pistes) dans Odoo
la gestion du cross-selling et up-selling (ventes croisées)
Exemples de sites réalisés avec Shopinvader
Alcyon.be, Noukies.com, Orod.fr, boutique.barroux.org, TroopBlue.com, Tonic.lu, Wookids.eu, Cosanum.ch, RoomSaveurs.com.