Boite à outils Office

Comment prévisualiser vos données marketing avec Commerce Server

Commerce Server, Développement Add comments

Comme vous devez le savoir, Microsoft Commerce Server via le Marketing System vous permets de gérer les compagnes marketing de votre site e-Commerce via les modules:

Ces modules sont tous horodatables. C’est à dire que vous allez pouvoir définir la date de début et date de fin d’affichage/application d’une opération commerciale ou d’une publicité.

Par défaut, le client riche Marketing, vous permets de visualiser une publicité pour vous donner une idée de son rendue:

image

Et là, comme la majorité de mes clients, vous allez me dire : “ok, je peux voir ma publicité, mais qu’est-ce que cela va donner sur mon site ? Comment m’assurer que le contenu et contenant soit correcte ? Et quid des opérations commerciales ?”

Si la publicité ou l’opération commerciale en question est prévue de s’afficher maintenant, il suffit d’ouvrir votre site pour voir les contenus publicitaires s’afficher et les opérations commerciales s’appliquer… ou non ! N’oubliez pas que vos contenus peuvent être soumis à condition, comme:

  • la publicité ne s’affiche que sur une certaine catégorie de pages (home, produits, panier, …),
  • la publicité ne s’affiche ou l’opération commerciale ne s’applique que si une caractéristique de l’utilisateur connecté remplis une condition (utilisateur est un homme ou une femme, …)
  • etc, etc, … (si vous avez des questions n’hésitez pas à m’en parler Sourire)

image

Mais que faire lorsque vos opérations commerciales sont prévues pour dans 2 ou 3 mois ? Devez-vous attendre le jour J tout tremblant pour voir le résultat ? La réponse est non! Sourire (ouf… l’honneur est sauf).

Dans les solutions possibles, et fonction de la qualité de votre consultant Commerce Server, vous aurez comme réponse:

  • “Ce n’est pas possible, Commerce Server ne sait pas gérer cela!”
  • “Changez la date de votre serveur et rafraîchissez votre cache pour voir le résultat” (véridique!)
    • Pratique si votre environnement de staging et sur la même machine que celui de production Envieux 
    • Oblige une intervention sur la plateforme d’hébergement par l’équipe IT
      • Pas idéal, si chaque prévisualisation demande le bien vouloir de l’IT qui en général à bien d’autres choses à faire (du moins j’espère Ange)
      • Ne pas oubliez de revenir à la vrai date du jour
  • “Désactivez les opérations commerciales en cours puis n’activez que celles que vous souhaitez voir tout en changeant leurs dates d’application pour qu’elles s’appliquent sur le champ.”
    • Fastidieux, j’ai des clients qui ont quasi cent publicités à afficher et bien souvent autant d’opérations commerciales (voir plus)…
    • Risque de confusion sur les activations ou désactivations
      • Toutes celles désactivées sont-elles à réactiver? Ou comment oublier facilement celles activées…
    • Risque d’erreur en changeant les dates pour les remettre sur la période souhaitée
    • Certains diront qu’un petit développement custom pourrait très bien activé/désactivé une liste de publicité/opération commerciale et changer les dates d’application. Cela est vrai mais ça reste quand même un peu bancal…
  • “Pas de soucis, nous avons la solution!”… et maintenant grâce à cet article nos précédents “experts” ont la solution grâce à la suite de ce post Clignement d'œil

La solution est en fait très simple. Lors du premier chargement de l’application web, le runtime de Commerce Server va charger de nombreuses informations dans son cache et context afin d’améliorer les performances d’exécution du site.

Ce remplissage du cache se fait via 2 procédures stockées (et une autre indirectement) situées dans la base de données marketing:

  • mktg_spRuntimeLoadAdvertisements
  • mktg_spRuntimeLoadDiscounts
  • mktg_spRuntimeLoadReferenceTables

 

imageimageimage

=> Ces procédures stockées sont exécutées par le runtime à chaque démarrage du site ou rafraichissement du cache.

 

L’équipe produit de Commerce Server ayant très bien fait les choses, il est possible de dire au runtime de Commerce Server de charger d’autres procédures stockées que celles-ci et donc d’y inclure notre propre logique.

L’idée ici, est d’avoir une application web de prévisualisation où nous viendrons faire charger par le runtime nos propres procédures stockées et une autre application web de production ou staging avec le comportement “par défaut”.

Afin d’exécuter d’autres procédures stockées à charger par le runtime de Commerce Server, il nous faut modifier la gestion du cache via une section du fichier web.config > CommerceServer > Caches (voir MSDN: caches Element).

Dans le web.config  de notre application web de prévisualisation, nous allons donc spécifier ces configurations de caches avec ces valeurs:

<cache
    name="Advertising"
    type="Advertising" 
    refreshInterval="900" 
    retryInterval="30" 
    loaderProgId="Commerce.CSFLoadAdvertisements" 
    writerProgId="Commerce.CSFWriteEvents">
    <config
        key="LoadAdvertisementsProcedure" 
        value="spGael_staging_mktg_spRuntimeLoadAdvertisements" />
</cache>
<cache
    name="Discounts" 
    type="Discounts" 
    refreshInterval="0" 
    retryInterval="30" 
    loaderProgId="Commerce.CSFLoadDiscounts" 
    writerProgId="Commerce.CSFWriteEvents">
    <config 
        key="LoadDiscountsProcedure" 
        value="spGael_staging_mktg_spRuntimeLoadDiscounts" />
</cache>

Comme les différents composants de pipeline prennent tous comme axe de calcul la date et l’heure du moment de l’appel, vouloir changer cela reviendrait à en redévelopper l’intégralité… Fastidieux et risqué, surtout que pour beaucoup, les pipelines sont une espèce de boite noire qu’il ne faut pas toucher…

Afin de contourner cela, l’idée est de faire venir le futur à nous Sourire en calculant le nombre de jours qui nous sépare de la date de prévisualisation et de le retrancher à l’ensemble de nos dates de début et date de fin!

Reprenons la procédure stockée “mktg_spRuntimeLoadAdvertisements” qui charge les publicités actives dans le time frame du jour:

image

On se rend compte que l’on récupère l’ensemble des publicités  applicable à la date du 8 juillet 2010. Pour ma démonstration, j’ai créé une bannière publicitaire qui s’appliquera du 01/08/2010 au 31/08/2010:

image

En exécutant de nouveau ma procédure stockée mktg_spRuntimeLoadAdvertisements, j’obtiens les même résultats que précédemment. Etonnant? Non, puisque ma nouvelle publicité n’est pas éligible !Sa  date de début est au 1er août et nous sommes le 8 juillet 2010:

image[21]

Comme expliqué précédemment, nous allons reprendre la procédure stockée précedente (“mktg_spRuntimeLoadAdvertisements”) pour en créer une nouvelle, que nous appellerons “spGael_staging_mktg_spRuntimeLoadAdvertisements”. Dans cette procédure, nous allons changer les dates de début et date de fin en retranchant le nombre de jour qui sépare la date de prévisualisation à celle d’aujourd’hui.

imageVous noterez au passage que la date de prévisualisation est stockée dans une table appelée altima_doPreview qui ne contient qu’une seule colonne et une seule ligne.

Sur l’exécution de ma procédure stockée, j’obtiens ici qu’un seul résultat, puisque seule ma publicité est valide à la date du 15 août 2010:

image

Dans ce résultat, nous constatons bien que la date de début de ma publicité a basculé au 25 juin 2010 et la date de fin au 25 juillet 2010. En effet, 37 jours séparent le 08 juillet 2010 (date du jour) au 15 août 2010 (date de la prévisualisation). Soit sur ma publicité :

  • Date de début: 1er août 2010 – 37 jours => 25 juin 2010
  • Date de fin:, 31 août 2010 – 37 jours => 25 juillet 2010

Lançons maintenant notre application web de preview (n’oubliez pas de mettre à jour le web.config comme spécifié précédemment), et miracle… Sourire

image

Mon application “normale” affiche bien quant à elle, les publicités actives et applicables du moment

image

Pour terminer, je vous livre ci-dessous la procédure stockée qui vous chargera vos opérations commerciales en mode preview:

image

A vous maintenant la prévisualisation !


JARAC 2011

One Response to “Comment prévisualiser vos données marketing avec Commerce Server”

  1. Les tweets qui mentionnent Comment prévisualiser vos données marketing avec Commerce Server | Gaël Duhamel [MVP] -- Topsy.com Says:

    [...] Ce billet était mentionné sur Twitter par Gaël Duhamel. Gaël Duhamel a dit: Comment prévisualiser vos données marketing avec Commerce Server http://goo.gl/fb/HCAYI [...]

Leave a Reply

Ou renseignez les champs d'identification ci-dessous (name & email)

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in
Creative Commons License