Commandes

 

Avant-propos

Avant de commencer l’implémentation du plugin SalesTracker, veuillez-vous assurer d’avoir initialisé le Tracker JavaScript AT Internet et sélectionné le plugin depuis l’interface Tag Composer.

 

Méthodes de marquage

Le plugin JavaScript SalesTracker propose la mesure des commandes sur votre site.

Le Tracker dispose pour cela d’une méthode « order.set() » permettant de mesurer précisément vos objectifs et ventes.

Les propriétés précédées de * nécessitent l’option SalesTracker pour être prises en compte.

La méthode « order.set() » prend un objet en paramètre dont les propriétés sont les suivantes :

  • orderId : Numéro de commande / réservation (ce paramètre est obligatoire).
  • turnover : Montant indicatif (CA objectif principal).
  • * status : Etat de commande / réservation (1/2/3/4) (voir Annexes pour plus de détails).
  • * newCustomer : Nouveau client (true/false).
  • * paymentMethod : Moyen de paiement (voir Annexes pour plus de détails).
  • * amount : Montants de la commande (TTC, HT, TVA).
  • * delivery : Livraison (Frais TTC et HT, Mode).
  • * discount : Remises (TTC, HT, Code Promo).
  • * orderCustomVariables : Indicateur de commande / réservation.
  • * confirmationRequired : Indicateur de page de type PRE1 (true/false).

Vous devez associer votre marqueur de commande avec un marqueur de Page « tag.page.set() » pour qu’il soit traité, voir Mesure de pages pour plus d’informations.

 

Marquer les commandes

 

Sans l’option SalesTracker

La mesure des commandes sans l’option SalesTracker est limitée à la mesure du numéro de commande et du montant associé à celle-ci.

var tag = new ATInternet.Tracker.Tag();
// set page name
tag.page.set({
    name:'pageName'
});
// set order
tag.order.set({
    orderId: 8235, //order ID
    turnover: 2049 //Sales Turnover indicator
});
tag.dispatch();
 

Avec l’option SalesTracker

Le marqueur posé sur votre site doit faire remonter sur nos serveurs l’ensemble des informations liées à la commande/réservation (numéro de commande/réservation, moyen de paiement, montant total, etc.).

Ce marqueur est pris en compte uniquement sur des pages à objectif principal.

var tag = new ATInternet.Tracker.Tag();
// set page name
tag.page.set({
    name:'pageName'
});
// set order
tag.order.set({
    orderId: 8235, //order ID
    turnover: 2049, //Sales Turnover indicator
    status: 1, //order status
    newCustomer: true, //is this a new customer ? true/false
    paymentMethod: 1 //payment method
});
// set order amount
tag.order.set({
    amount: {
        amountTaxIncluded: 2049, //order amount (all taxes included)
        amountTaxFree: 1649.36, //order amount (tax free)
        taxAmount: 339.64 //tax
    }
});
// set order delivery
tag.order.set({
    delivery: {
        shippingFeesTaxIncluded: 19.9, //shipping cost (all taxes included)
        shippingFeesTaxFree: 16, //shipping cost (tax free)
        deliveryMethod: '1[Colissimo]' //delivery method
    }
});
// set order discount
tag.order.set({
    discount: {
        discountTaxIncluded: 9.9, //discount amount (all taxes included)
        discountTaxFree: 7.96, //discount amount (tax free)                
        promotionalCode: 'CDPR15485Q' //promo code
    }
});
// custom order variables
tag.order.set({ orderCustomVariables: [5, 30 ,14, '[contact tel]', 1]});
tag.dispatch();

Explications

Une commande a été effectuée pour un montant total de 2049€ TTC (soit 1649,36 HT) avec 9,9€ de remise (soit 7,96 € HT) dont 19,9€ de frais de port (soit 16€ HT), payé en « CB ». De plus, la commande est en attente, et un code promotionnel « CDPR15485Q » a été utilisé. Cette commande a été expédiée via « colissimo ».

La variable « turnover » 

La variable « turnover » représente l’indicateur principal de chiffre d’affaires.

Dans l’exemple précédent, la valeur renseignée dans la variable « turnover » correspond au montant TTC. Rien ne vous empêche, par exemple, de récupérer un montant HT sans frais de port. C’est à vous qu’il revient de définir l’indicateur principal de chiffre d’affaires, en fonction de votre activité et/ou de vos attentes.

Les variables spécifiques à la commande

Les montants de commande (« amountTaxIncluded » et « amountTaxFree ») sont dissociés du montant utilisé notamment dans les analyses de sources (« turnover »). Nous distinguons donc des variables comptables (HT et TTC) pour le module « SalesTracker » et une variable de montant personnalisable et invariable pour les analyses dans l’interface.

 

Les remises de commandes

Les variables « discountTaxIncluded » et « discountTaxFree » représentent une remise globale appliquée à la commande.

Des remises peuvent également s’appliquer au produit (= contenu de la commande) (voir la rubrique Panier / Contenu de commande pour plus d’informations concernant les remises produits).

De ce fait :

  • Si les 2 remises sont renseignées (commande + produit), la remise de commande doit être supérieure ou égale à la remise de produit. Dans ce cas, la remise de produit est incluse dans la remise commande.
  • Si la remise de commande n’est pas renseignée, un cumul des remises de produit est affecté au niveau de la commande.
 

Indicateurs de commandes/réservation

En plus de la sélection d’un profil global en fonction de votre activité (e-Commerce, e-Travel, e-Ads), vous avez la possibilité d’aller encore plus loin dans la personnalisation de votre mesure via l’utilisation d’indicateurs spécifiques dans votre code source.

Vous devez intégrer le marqueur suivant dans votre code source en renseignant au préalable toutes les valeurs de l’objet « orderCustomVariables » :

var tag = new ATInternet.Tracker.Tag();
// set page
tag.page.set({
    name:'pageName'
});
// set order
tag.order.set({
...
    orderCustomVariables: [5, 30 ,14, '[contact tel]', 1] //custom variables
...      
});
tag.dispatch();

L’objet « orderCustomVariables » est un tableau. La position de chaque variable a donc son importance. Dans cet exemple, la valeur 5 occupe la première position du tableau, elle correspondra donc à la variable custom n° 1 dans le hit généré (paramètre &o1= dans le hit). Dans le cas où vous ne souhaitez pas envoyer une custom variable mais souhaitez conserver la position des variables suivantes, il suffit de laisser le champs vide (ex: orderCustomVariables: [‘, 30 ,14, ‘[contact tel]’, 1]).

Types d’indicateur

Les indicateurs peuvent prendre différents formats (texte, numérique, date, pays, durée).

L’intégration des valeurs de certains indicateurs passe obligatoirement par l’import (par vos soins) d’un fichier Excel (xls) ou CSV, via une table de correspondance. Cette opération doit être réalisée directement depuis la zone Configuration de l’interface.

  • Identifiant/date
    L’indicateur de type « Identifiant » se caractérise par une information pouvant elle-même regrouper plusieurs valeurs.
  • Texte
    A l’instar des indicateurs de type ID/Date, vous pouvez ajouter des indicateurs personnalisés de type « Texte » en complétant le tableau correspondant. Le principal avantage est de pouvoir récupérer des valeurs lisibles immédiatement dans vos analyses.
  • Valeur
    Les indicateurs de ce type ont la particularité de pouvoir recueillir des informations sommables. Aussi, une moyenne peut être calculée.
  • Durée
    Ce type d’indicateur vous permet notamment d’introduire des informations étroitement liées à votre activité. Il peut également donner lieu à des indicateurs sommables (ou avec moyenne) dans vos analyses.
  • Pays
    De la même manière, l’indicateur de type pays permet d’adapter parfaitement la mesure à votre métier.

Les indicateurs de type « Texte » et « Pays » doivent obligatoirement être saisis entre crochets. La norme ISO est utilisée pour le marquage des pays. Vous devez donc récupérer la liste des codes ISO via la zone Configuration de votre interface.

 

Contenu de la commande

Le marquage du contenu de commande se fait par l’intermédiaire des méthodes « cart.set() » et « cart.add() ». Voir la rubrique Panier / Contenu de commande pour plus de détails.

 

Mesurer des pages de confirmation sur site extérieur (banque)

L’objectif est ici de pouvoir mesurer les validations de commandes et réservations, malgré le fait que la page de confirmation soit hébergée par un site extérieur (plateformes bancaires de paiement).

Nous proposons de simuler un marqueur lorsque votre site reçoit la confirmation de paiement de la part du site externe :
Etape 1 : l’internaute quitte votre site pour procéder au paiement sur le site extérieur (banque).
Etape 2 : l’internaute a validé son paiement, qui est accepté. La banque envoie alors la validation à votre site.
Etape 3 : votre site, en toute transparence pour l’internaute, valide la commande et en même temps appelle l’URL du marqueur.

Marqueur Server-side

Le cas de figure évoqué précédemment implique la mise en place de tags spécifiques :

  • tag à placer sur la page précédant le départ vers la banque (contenant toutes les informations de commandes/réservations et de contenu de commande/réservation) et nécessitant une confirmation (« confirmationRequired »: true).
var tag = new ATInternet.Tracker.Tag();
// set page
tag.page.set({
    name:'pageName'
});
// set order
tag.order.set({
...
    confirmationRequired: true //is confirmation required ? true/false
...
});
// set order content
tag.cart.set({
    cartId: 123456 //cart ID
});
tag.cart.add({...})
tag.dispatch();

« cartId » contient le numéro de contenu de commande/réservation, ou le numéro de commande/réservation s’il est connu à cette étape.Voir la rubrique Panier / Contenu de commande pour plus de détails.

  • tag à placer dans un appel de type ASP/HTTP, qui doit reprendre quelques variables précises (permettant le lien avec le tag évoqué précédemment).

Concrètement, une fois le paiement effectué, vous recevez la confirmation/l’annulation du paiement. Une synchronisation s’opère (via le site web ou un traitement à part) entre le processus de paiement chez votre prestataire et votre base de données pour obtenir les informations sur le paiement des commandes/réservations.

C’est à ce moment qu’un 2ème marqueur permettant de considérer la commande comme valide doit être mis en place.

Intégration dans un appel ASP / HTTP

Un tag classique est un code JavaScript appelé directement depuis le poste client, c’est-à-dire celui de l’internaute. Vous constatez ici que c’est le serveur hébergeant le site qui appelle directement le marqueur. Dans la mesure où le JavaScript nécessite la génération de code HTML (code non généré par le serveur à ce moment) le marqueur est appelé directement via son URL, sans JavaScript, comme suit :

http://logxxxx.xxx.com/hit.xiti?s=&s2=&p=&tp=conf1&idcart=&cmd=&st=

Voici les différents paramètres de ce marqueur :

  • s= : identifiant du site de niveau 1.
  • s2= : site de niveau 2 dans lequel la « page » devra être rangée.
  • p= : le nom de la « page » telle qu’elle doit apparaître dans les analyses. C’est cette page qui sera déclarée en page de conversion à objectif principal.
  • tp=conf1 : variable permettant de reconnaître ce hit comme une confirmation de commande/réservation.
  • idcart= : numéro de contenu de commande/réservation.
  • cmd= : numéro de la commande/réservation.
  • st= : valeur de l’état de la commande (voir Annexes)
    • « 1 » pour une commande en attente

– Le paramètre « idcart » de cet appel doit contenir la même valeur que le paramètre « cartId » vu précédemment. En effet, cette correspondance permet de rattacher ce hit à la bonne visite.
– Le paramètre « p » doit obligatoirement être renseigné, sinon ce hit est ignoré.

Certaines variables peuvent être modifiées lors de l’envoi du hit de conf1 ; si tel est le cas ce sont les valeurs des variables passées dans le hit conf1 qui priment sur celles présentes dans le hit pre1 (hit précédent). Seules ces variables peuvent être modifiées sur le hit conf1 : « cmd » (numéro de commande), « roimt » (montant), « mtht » (montant HT), « mttc » (montant TTC), « mp » (mode de paiement), « st » (état de la commande).

Exemple en ASP

<% 
'Code corresponding to the database update 
'Example with the ASPHTTP component 
Set HttpObj = Server.CreateObject("AspHTTP.Conn") 
HTTPObj.Url = "http://logxxxx.xxx.com/hit.xiti?s=999999&s2=&p=payment_validated&tp=conf1&idcart=123&cmd=AZ234BG67&st=1" 
strResult = HTTPObj.GetURL 
'Remainder of page code 
%>

– st=1 permet ici, par exemple, d’indiquer que la commande est en statut « En attente ».

Exemple en JSP

try{ 
java.net.URL url = new java.net.URL("http://logxxxx.xxx.com/hit.xiti?s=999999&s2=&p=payment_validated&tp=conf1&idcart=123&cmd=AZ234BG67&st=1"); 
((java.net.HttpURLConnection)url.openConnection()).getResponseMessage(); 
} 
catch(Exception ex){ }

Exemple en PHP

<?php 
$url = "http://logxxxx.xxx.com/hit.xiti?s=999999&s2=&p=payment_validated&tp=conf1&idcart=123&cmd=AZ234BG67&st=1"; 
$fd = fopen($url, "r"); 
fclose($fd); 
?>
 

Mettre à jour les commandes

Le marqueur de mise à jour permet d’ajuster votre chiffre d’affaires et de prendre en compte les changements d’états et de montants de commande effectués après le processus d’achat sur votre site web (commandes effectuées par chèque, retour commandes, modification d’un prix ou d’un montant de promesse de dons, etc.).

Contrairement au marqueur Server-side, une commande peut être mise à jour 60 jours après la remontée de la commande. Au-delà de ce délai, la demande de mise à jour sera ignorée.

Voici le marqueur :

http://[LOG].xiti.com/hit.xiti?typehit=updateorder&s=[NUMSITE]&guid=[GUID]&cmd=[NUMCD]&st=[ETAT]&roimt=[MONTANT]&mtht=[MONTANTHT]&mtttc=[MONTANTTTC]

Voici les différents paramètres de ce marqueur :

  • s= : identifiant du site de niveau 1.
  • s2= : site de niveau 2 dans lequel la « page » devra être rangée.
  • cmd= : valeur du numéro de commande.
  • st= : valeur du nouvel état de la commande (voir Annexes)
    • « 2 » pour une commande annulée
    • « 3 » pour une commande validée
    • « 4 » pour un retour de commande
  • guid= : numéro unique défini par site et disponible dans la configuration du marqueur via le Digital WorkSpace
  • roimt= : nouveau montant de la commande (roimt)
  • mtht= : nouveau montant ht de la commande
  • mtttc= : nouveau montant ttc de la commande

Les paramètres « s », « log » et « typehit » ne doivent pas être changés.

L’état et le montant peuvent être modifiés indépendamment l’un de l’autre. Ainsi il est possible de corriger un montant sans que cela n’influe sur l’état de la commande et réciproquement.

Par ailleurs, si un des 3 champs de montants a été renseigné, alors les 3 montants seront mis à jour dans les données disponibles sur votre interface.

Le marqueur de mise à jour s’applique uniquement sur les objectifs principaux avec numéro de commande.

 

Annexes

 

Annexe : règles de marquage

  • Eviter absolument les caractères spéciaux de type « espace » et lettres avec accents.
  • Si un des champs texte contient un espace, le hit est ignoré. Par conséquent, la commande n’est pas remontée.
  • Les libellés des champs ne doivent pas contenir de caractères spéciaux. Si un libellé existe déjà pour un identifiant donné, les libellés rencontrés par la suite ne seront pas conservés.
  • Taille des libellés :
    • Référence de la commande : 50 caractères.
    • Tous les montants renseignés dans le marquage sont tronqués à 2 chiffres après la virgule et considérés comme valides si inférieurs à 999 999 999,99. Au-delà le montant renseigné sera considéré égal à 0.
 

Annexe : identifiants des moyens de paiement et états des commandes

Ci-dessous les correspondances libellés/identifiants pour les moyens de paiement.
Il est possible d’enrichir cette liste avec vos propres moyens de paiement dans la partie Configuration de votre interface.

IdentifiantLibelléCatégorie
1CBCartes bancaires
2VisaCartes bancaires
3MasterCardCartes bancaires
4ChèqueChèques
5Carte magasinCartes de crédit
6FinancementCartes de crédit
7VirementVirements
8PrélèvementPrélèvement
9PayPalMonnaie électronique

Ci-dessous les correspondances libellés/identifiants pour les statuts des commandes.

IdentifiantLibellé
0Non renseigné
1En attente
2Annulée
3Validée
4Retour
Dernière mise à jour : 03/03/2020