Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Gestion centralisée multi-sites des cartes de fidélité

0000002592     -      17/10/2015

Mercator permet une gestion centralisée multi-sites de cartes de fidélité. Ceci par l'intermédiaire de MercatorFidelServer, qui est un service TCP/IP centralisant les requêtes vers les données de cartes de fidélité hébergées sur un seul serveur SQL. Ce système a été spécialement mis au point pour les configurations basées sur MCD Server. En effet, les échanges d'information de cartes de fidélité effectués lors des transferts de signalétiques clients pouvaient conduire à des conflits de réplication plus ou moins insolubles, et dont la conséquence pouvait être une perte de certaines données.

1. Installation

Pour l'installation de la présente fonctionnalité, il faut choisir un site qui offrira l'hébergement des cartes de fidélité communes. Ce site doit disposer d'une configuration Mercator opérationnelle. Il faut noter que les informations communes de carte de fidélité ne vont pas s'inscrire dans la table CLI de ce Mercator, mais bien dans une table supplémentaire CLI_FIDELSERV. Ainsi, ce Mercator central fonctionnera aussi comme un simple client de MercatorFidelServer, de façon identique à l'ensemble des sites distants. L'installation s'effectue comme suit :

Au niveau de MercatorFidelService :

  • Sur un poste accessible en permanence (de préférence un serveur), dézipper dans un répertoire local indépendant de Mercator le fichier zip ci-joint. (Recommandation : utilisez C:\Program Files\MercatorFidelService)
     
  • Veillez à ce que le Framework .net 4.0 soit installé sur cette machine.
     
  • Par défaut, le service sera à l'écoute sur le port TCP 5050. Si ce port ne peut être utilisé, il suffit de le modifier dans MercatorFidelService.ini (Notez que si le service est déjà actif, il faut le redémarrer pour qu'il prenne en compte ce nouveau paramètre). Le protocole utilisé est toujours TCP. 
     
  • Dans le fichier MercatorFidelService.ini, il faut déterminer le chemin vers le répertoire DATA du Mercator dont la database va héberger les données communes de cartes de fidélité. (Notez que si le service est déjà actif, il faut le redémarrer pour qu'il prenne en compte ce nouveau paramètre)  Etant donné que les services ne connaissent pas les mappings, il faut obligatoirement indiquer ce chemin sous forme d'un répertoire local ou d'un répertoire distant noté en UNC (\\mon_serveur\\mon_volume\...) Il est conseillé de lancer MercatorFidelService.exe en mode console, en lui passant le paramètre -console. Cela permet de vérifier que le programme ne produit pas d'erreur. (Notez qu'en mode "console", l'application fonctionne de façon identique au mode "service" indiqué ci-dessous.)
     
  • Ensuite, exécutez install.cmd afin d'installer le service.
     
  • Vérifier dans les outils d'administration, au niveau des services, que MercatorFidelServer est bien présent, démarré et en mode de démarrage automatique. Nous pouvons aussi vous conseiller d'y paramétrer les options de redémarrage en cas d'incident. Si le volume indiqué en tant que répertoire DATA dans le fichier INI est distant, il est nécessaire de donner une identité à ce service, qui dispose de suffisamment de droits d'accès vers le volume partagé. (Voir onglet "Connexion", zone "Ce compte" dans les propriétés du service)
     
  • Afin de permettre l'utilisation du port TCP 5050, il faut ouvrir ce port tant sur le serveur (en entrée) que sur l'ensemble des postes clients de ce serveur (en sortie uniquement pour ces derniers cas).
     
  • Afin d'offrir un accès des sites décentralisés vers ce serveur, il faut configurer le router du site central afin que les sollicitations sur le port TCP 5050 soient automatiquement reroutées vers l'adresse IP locale du serveur hébergeant MercatorFidelService. (port forwarding) (Notez que seul ce port TCP 5050 doit être ouvert et forwardé.)

Au niveau de chacun des Mercator clients :

  • Il faut installer le composant client MercatorFidelClient.dll dans le répertoire principal de Mercator
     
  • Il faut compléter l'option "Outils / Options / Fidélité : MercatorFidelServer host". Celui-ci doit reprendre les coordonnées du serveur MercatorFidelServer host.
    • Sur le site où se trouve MercatorFidelServer : adresse_ip_locale:port (exemple 192.168.2.130:5050) ou nom_de_serveur:port (exemple ServClient:5050) (sans \\)
    • Sur les sites distants : adresse_ip_publique:port (exemple : 81.88.145.75:5050) ou nom_dns:port (exemple : mail.ineo.be:5050)

 

2. Gestion des données

Lors de son premier démarrage, MercatorFidelService va créer automatiquement la table CLI_FIDELSERV dans la database SQL indiquée par le répertoire DATA. (Aucune autorisation spéciale n'est à prévoir au niveau du serveur SQL) Par défaut, cette table contient les champs suivants :

  • ID_CLI : clé primaire, identifiant du client
  • C_FID_V1 à C_FID_V20 : float, valeur des achats ou points sur la carte de fidélité de 1 à 20
  • C_FID_D1 à C_FID_D20, datetime, date de l'inscription correspondante sur la carte de fidélité

Notez que tous les champs hormis ID_CLI sont optionnels. Il est donc possible de supprimer ou d'ajouter un nombre illimité de champs. Le principe est que les champs ajoutés dans cette table CLI_FIDELSERV seront pris en compte s'ils trouvent leur correspondance dans la table CLI du Mercator client. En d'autres termes, si un champ existe à la fois dans CLI (au niveau du client, même éventuellement distant) et dans la table CLI_FIDELSERV et est de même type dans les 2 tables, alors le processus MercatorFidel fera voyager le contenu de ces champs d'une table vers l'autre.

La conséquence de ceci est qu'il est possible d'offrir une gestion centralisée pour l'échange de tout type de données liées à la fiche client. Cela permettra notamment de répondre favorablement à l'intégration de nombreux développements de gestion de cartes de fidélité effectués jusqu'à présent.

 

3. Mouvement des données

Les échanges d'information entre MercatorFidelServer et les clients Mercator doivent être activés séquence par séquence (uniquement pour les séquences de ventes). Cela se fait en cochant la case à cocher "MercatorFidelServer" dans l'onglet "Evènements" de chaque séquence concernée.

Si un client par défaut est défini au niveau de la séquence, la communication n'est établie que si le client de la vente n'est pas ce client par défaut. Ceci afin de ne pas activer cette mécanique pour les ventes passées sur le client comptoir.

Si la variable C_NON_FIDEL (bit) est installée dans le signalétique clients, la communication ne sera effectuée que si la case à cocher correspondant à cette variable n'est pas cochée.

Enfin, le système tient compte de l'option "Outils / Options / Fidélité : Uniquement nouveaux documents ". 

Si, eu égard aux condtions reprises ci-dessus, l'échange de données doit avoir lieu, il s'opère comme suit :

  • En tout début de validation d'une vente, Mercator sollicite MercatorFidelServer et place l'information trouvée dans les champs correspondant de CLI_V
  • En toute fin de validation de la vente, Mercator sollicite une seconde fois MercatorFidelServer et envoie dans la table centrale les valeurs des champs correspondants trouvés dans CLI_V

Entre ces 2 étapes,

  • soit le système standard de gestion des cartes de fidélité de Mercator
  • soit un module sur mesure de gestion personnalisée de la carte de fidélité
  • (soit les deux)

aura fonctionné, sur base des données reçues de MercatorFidelServer, les aura éventuellement modifiées. Modifications qui seront répercutées sur MercatorFidelServer.

 

4. Utilisation par module en version Aruba

S'il est souhaité d'utiliser la mécanique de MercatorFidelServer à d'autres endroits du programme, il est possible d'utiliser directement les commandes suivantes :

Recevoir les données = ReadDataFromServerToAruba

Zoom
DataTable dt_from_server = Globals.FidelConnector.ReadDataFromServerToAruba(billingEngine.PIEDS["id_cli"].ToString(), MercatorUi.Globals.Langue);
if ((dt_from_server != null) && (dt_from_server.Rows.Count > 0))
    MercatorUi.Dialogs.Stop("OK");

La méthode ReadDataFromServerToAruba requiert 2 paramètres et renvoie une datatable de même structure que la table CLI_FIDELSERV   :

  • l'identifiant du client
  • la langue de l'utilisateur

Envoyer les données = WriteDataToServerFromAruba

Zoom
if (Globals.FidelConnector.WriteDataToServerFromAruba(billingEngine.PIEDS["id_cli"].ToString(), billingEngine.CLI.Table, MercatorUi.Globals.Langue))
    MercatorUi.Dialogs.Stop("OK");

La méthode WriteDataToServerFromAruba requiert 3 paramètres :

  • l'identifiant du client
  • la datatable (CLI) où trouver les données
  • la langue de l'utilisateur

Elle renvoie true en cas de succès et false en cas d'échec.

Notez que même pour un module sur mesure de gestion de cartes de fidélité lors de la validation d'une vente, il n'est pas nécessaire d'utiliser ces fonctions, puisque les appels standards de celles-ci par Mercator prendront en compte les données traitées par votre module.

Nous vous recommandons de tester la mise à disposition de cette fonctionnalité en mettant ce bloc dans le haut de votre code :

Zoom
if (Globals.FidelConnector == null)
    return

 


 

Remarques

  • lorsque cette fonctionnalité est installée dans un Mercator, il apparaît un bouton "rafraîchir" dans l'onglet "Carte de Fidélité" de la fiche "Clients". Cela permet de rafraîchir les données affichées de la carte de fidélité à partir de données de MercatorFidelServer.
  • les échanges de données entre les clients Mercator et MercatorFidelServer sont cryptés. Il n'y a donc aucune possibilité que ces informations soit "volées" lors de leur transfert via Internet.
  • s'il est souhaité que le service démarre après SQL Server, il faut ajouter cette ligne dans le fichier ini : depends_on = MSSQLSERVER


A télécharger : 0000002592.zip (820 Kb - 17/10/2015)