Comment intégrer plusieurs instances Mirakl avec une seule instance multi-magasins Adobe Commerce

Publié: 2022-03-26

Comment intégrer plusieurs instances Mirakl avec une seule instance multi-magasins Adobe Commerce

Introduction

La plateforme de marché Mirakl peut être intégrée à la plateforme Adobe (Magento) Commerce pour créer une place de marché en ligne de bout en bout. Mirakl fournit un connecteur Magento pour accélérer le processus d'intégration couvrant tous les flux de processus standard du marché. Ce connecteur permet de synchroniser automatiquement les données entre Mirakl et Magento. Il fournit également un exemple de module frontal démontrant comment vous pouvez personnaliser les pages pour offrir des fonctionnalités Marketplace optimisées par Mirakl.

Par défaut, le connecteur est conçu pour intégrer une seule instance Mirakl avec une seule instance Magento. Cependant, pour un déploiement multi-pays, il peut y avoir une situation où chaque pays a sa propre instance Mirakl mais une seule instance Magento dessert tous les pays avec plusieurs vitrines. Dans ce scénario, le comportement par défaut du connecteur doit être remplacé afin d'intégrer chaque instance Mirakl à son instance de magasin Magento spécifique. Nous l'avons mis en place avec succès pour l'un de nos clients sur sa place de marché B2B. Les modifications suivantes sont apportées pour prendre en charge ce scénario. Reportez-vous à la figure 1.1 pour plus de détails sur le fonctionnement de plusieurs instances Mirakl avec une seule instance multi-boutiques Adobe Commerce.

Fig 1.1 Schéma d'architecture de plusieurs instances Mirakl avec une seule instance multi-magasins d'Adobe Commerce


Modifications globales de la configuration :

Une URL et une clé secrète distinctes doivent être configurées au niveau de la vue du magasin pour chaque instance Mirakl. Nous y sommes parvenus en remplaçant la classe d'assistance de configuration pour configurer les points de terminaison de l'API au niveau de la vue du magasin. La classe Console responsable de la gestion des scripts de synchronisation a été remplacée pour gérer les scripts de synchronisation spécifiques à la vue du magasin en fonction de l'ID de magasin transmis en tant que paramètre.

Synchronisation de la taxonomie :

La synchronisation de la taxonomie entre Magento et Mirakl est réalisée à l'aide de l'appel d'API Mirakl H01. Cette API est invoquée pour exporter les catégories Magento vers Mirakl. Mais avec une implémentation multi-magasins, nous devons nous assurer que chaque vitrine Magento exporte la taxonomie vers son instance Mirakl spécifique uniquement. Nous y sommes parvenus en remplaçant la classe d'assistance du connecteur Mirakl concernée pour mapper l'instance Mirakl à sa vitrine Magento spécifique.

Importation de produits :

Semblable à la synchronisation de la taxonomie, les importations de produits nécessitent également un mappage de l'instance Mirakl à la vitrine spécifique dans Magento. Ce qui suit

Les composants suivants ont été remplacés pour y parvenir :

  • Classes de commande pour importer les produits delta dans la vue de magasin respective où l'ID de magasin a été transmis dans le cadre des commandes cli.
  • Les plugins Interceptor, utilisés pour définir l'identifiant du magasin lors du processus d'importation du produit, nous avons dû définir la catégorie racine.

Importation de l'offre

L'API OF51F permet d'importer les offres Mirakl dans Magento. Avec une implémentation multi-magasins, le script de synchronisation d'importation d'offres doit être remplacé pour importer des offres spécifiques à un magasin.

Les tables OOTB ont été modifiées pour mapper les offres avec l'identifiant du magasin, les tâches Cron personnalisées ont été écrites pour répondre aux importations d'offres spécifiques du magasin en fonction de l'identifiant du magasin qui était passé en paramètre.

Importation d'attribut :

Le connecteur Mirakl utilise l'appel d'API PM01 pour exporter les attributs de produit de Magento vers Mirakl. Pour l'implémentation multi-magasins, nous avons remplacé les scripts de synchronisation pour nous assurer que les attributs d'un magasin Magento particulier sont exportés vers l'instance Mirakl mappée uniquement.

Importation des listes de valeurs d'attribut :

Le connecteur Mirakl utilise l'appel d'API VL01 pour exporter la liste des valeurs d'attribut de Magento vers Mirakl. Pour l'implémentation multiboutique, nous avons remplacé les scripts de synchronisation pour nous assurer que les listes de valeurs d'une boutique Magento particulière sont exportées vers l'instance Mirakl mappée uniquement.

Importation de la boutique :

Les boutiques Mirakl sont importées dans Magento à l'aide de l'API S20. Pour la mise en œuvre multiboutique, nous avons remplacé les scripts de synchronisation S20 pour synchroniser les informations de magasin spécifiques du magasin de Mirakl à la vue du magasin mappé.

Informations sur la livraison

Il n'y a pas de tâches Cron spécifiques disponibles dans le connecteur Mirakl pour importer et stocker les informations d'expédition dans la base de données Magento. Les valeurs sont récupérées à l'aide de SH01/SH02 à différents moments du parcours de l'utilisateur où les frais de port devaient être affichés.

Les modules frontaux ont été étendus et personnalisés pour récupérer les frais d'expédition à différents points tels que PLP, PDP, le panier, la caisse, l'historique des commandes et les pages de détails des commandes. Sur la base d'une demande spécifique au magasin, les frais d'expédition ont été extraits de l'instance Mirakl mappée et affichés.

Synchronisation des commandes

L'API OR01 est utilisée pour la création de commandes et l'API OR11 pour la synchronisation du statut des commandes entre Mirakl et Magento.

Les pages suivantes ont été étendues et personnalisées pour répondre à la mise en œuvre spécifique du magasin.

  • Page de confirmation de commande
  • Page Historique des commandes
  • Page Détails de la commande

Le flux de passation de commande a été modifié pour exporter la commande spécifique au magasin vers l'instance Mirakl mappée. Le connecteur Mirakl et les classes principales de Magento ont été personnalisés pour couvrir la création de commandes dans les instances Mirakl respectives. Les modules frontaux ont été étendus et remplacés pour traiter l'affichage de l'état des commandes spécifiques au magasin dans l'historique des commandes et les pages de détails des commandes.

Création et synchronisation de devis

Le connecteur Mirakl n'implémente pas les scénarios de devis B2B. Nous avons étendu la fonctionnalité du connecteur pour introduire de nouvelles fonctionnalités pour la création, la mise à jour et la synchronisation des devis spécifiques au magasin de Magento vers l'instance Mirakl mappée et vice versa.

Sept appels d'API ont été mis en œuvre, de Q01 à Q07, pour couvrir l'intégralité de la fonctionnalité de devis du marché B2B.

Configurations des prix, des devises et des paramètres régionaux

Magento fournit des configurations de paramètres régionaux et de devises spécifiques au magasin. Comme nous avions plusieurs instances Mirakl, chacune avait ses propres paramètres régionaux, devises et prix.

Les classes de configuration de l'assistant de connecteur ont été remplacées pour configurer la synchronisation spécifique au magasin.

Modifications de la grille d'administration

Les tâches Cron liées à la grille d'administration ont été étendues et personnalisées pour prendre en charge les détails de synchronisation spécifiques au magasin. Cela fonctionne bien pour le magasin par défaut, mais avec des magasins supplémentaires, cette section a dû être étendue pour afficher les mises à jour de synchronisation spécifiques au magasin.

Module frontal

Les composants frontaux liés aux fils d'Ariane, aux PLP, aux PDP, au mini panier, au panier, à la caisse, à l'historique des commandes, aux détails de la commande, à la création de devis et aux pages de détails du devis ont été personnalisés pour gérer la fonctionnalité multi-magasins.


Emballer
La clé d'une stratégie de mise en œuvre réussie est de pouvoir mapper les vitrines Magento sur des instances Mirakl spécifiques. Nous avons utilisé l'identifiant du magasin comme moyen unique d'identifier les données relatives à un magasin particulier. Tout le code du connecteur lié à la synchronisation des données entre Magento et Mirakl a été impacté dans ce scénario multi-magasins. À l'exception du flux de citation, nous n'avons pas eu à écrire de nouvelles classes, l'extension et la personnalisation nous ont aidés à atteindre notre objectif. Notre implémentation couvrait l'intégration de deux instances Mirakl avec une instance Magento. Mais la même conception peut être étendue pour intégrer plus d'instances Mirakl. Bien que nous n'ayons constaté aucun problème de performances à cause de cela, il reste à explorer si les performances sont affectées à mesure que nous augmentons le nombre de vitrines uniques, chacune avec sa propre instance Mirakl.

A propos de l'auteur

Siddhartha Shankar est architecte technique chez McFadyen Digital. Il aime tout ce qui touche au marché et à la technologie. Grand voyageur et amateur de musique, il séjourne avec sa femme et sa fille de six ans à Bangalore. Sid a fait partie de projets de mise en œuvre de commerce électronique / marché à gros budget au cours de son long passage chez McFadyen Digital.