API E-connecteur de Vaisonet

Découverte et premiers pas

Maxime Varinard

Découverte de l'API E-connecteur, permettant de modifier à la volée des données échangées entre la gestion commerciale du SI et un site e-commerce.

N'hésitez pas à partager vos avis et remarques sur le forum Developpez :  Commentez !

- Titre : API E-connecteur de Vaisonet

- Auteur : Maxime Varinard

- Parution : 21 juin 2017

- Mise à jour : 3 juillet 2017

- Public visé :

- Licence : Copyright ® 2017 Maxime Varinard - Vaisonet. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Mappage avancé via le fichier config.ini

- III. Utilisation des vues SQL

- IV. Transformation XSLT

- V. Conclusion

I - Introduction

E-connecteur est un logiciel ETL prêt à l'emploi, édité par Vaisonet. Il permet d'échanger les données produits, stocks, grilles de prix B2B, clients, commandes entre les logiciels de gestion commerciale et les CMS E-commerce. Cela permet d'intégrer le site e-commerce dans le SI de l'entreprise, très simplement, même - et surtout - pour un non-développeur. En quelques clics, tout est configuré.

Cette simplicité d'usage et de mise en œuvre est un argument fort, mais parfois il est nécessaire d'aller un peu plus loin. L'API, anciennement appelée SDK E-connecteur est là pour cela en permettant d'adapter les différents flux en les manipulant en amont et en aval du logiciel. L'API E-connecteur est disponible sur le dépôt Mercurial de Vaisonet sur le site Bitbucket.

Trois outils sont disponibles :

- configuration avancée via fichier ini de configuration ;

- vues SQL ;

- transformations XSLT.

Cet article présentera sous forme d'une rapide initiation, quelques cas d'application sur ces trois technologies.

II - Mappage avancé via le fichier config.ini

Voici un cas pratique. On a un seul dossier entreprise en gestion commerciale avec plusieurs sites web. La case « Publier sur le web » de la gestion commerciale est unique. Comment piloter l'activation des produits site par site ?

La solution est de créer des champs personnalisés « Publier sur le site web A » et « Publier sur le site web B » dans la gestion commerciale, puis mapper ces champs personnalisés sur le champ e-commerce.

Il faut, dans le fichier de configuration, ajouter une section map :

[map]
xx_publier_sur_le_site_a = active

III - Utilisation des vues SQL

E-connecteur utilise par défaut, les tables SQL Server des logiciels de gestion commerciale comme EBP, sauf si une vue nommée « EC_products » existe.

La vue doit comporter tous les champs configurés pour être transférés par E-connecteur, sinon vous aurez une alerte.

Prenons deux exemples sur le stock. Vous ne souhaitez pas transmettre le stock réel des produits sur le site E-commerce, vous souhaitez le calculer.

Exemple : Réservation de stock.

Les stocks inférieurs à 5 sont forcés à 0 sur le site web afin de permettre de réserver un stock minimal pour la boutique physique.

Vous créez la vue suivante :

CREATE VIEW EC_products AS
SELECT
CAST(
CASE
WHEN RealStock < 5
THEN 0
ELSE RealStock
END AS float) as RealStock, Id
FROM Item

IV - Transformation XSLT

Dans l'esprit, si on pilote une donnée depuis la gestion commerciale de l'entreprise, on le fait lors de la création automatique du produit et lors de sa mise à jour. Il peut y avoir des exceptions dans certains projets où par exemple, la classification des familles/sous-familles dans la gestion commerciale est insuffisante pour le site e-commerce. On souhaite donc créer les produits avec cette classification, on l'améliore à temps perdu sur le back-office e-commerce. Il ne faut donc pas qu'en cas de mise à jour, la catégorisation soit modifiée.

La réalisation de cette opération est assez facile, il suffit lors d'une requête de type UPDATE de supprimer la modification du node category. Le fichier XSL suivant le permet :

<?xml version="1.0" encoding="UTF-8"?>

<!--
Supprime le noeud catégorie par défaut Prestashop.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

<xsl:template match="/prestashop/product/id_category_default">
</xsl:template>
</xsl:stylesheet>

V - Conclusion

Voilà pour un premier article qui je l'espère vous aura montré la facilité et rapidité de personnalisation potentiellement très avancée d'une synchronisation des données entre les logiciels de gestion commerciale du marché et les CMS e-commerce les plus répandus.

Je tiens à remercier particulièrement ClaudeLELOUP pour la relecture de cet article et Malick pour son aide.