Commandes

  • iOS
  • watchOS
  • tvOS
 

Avant-propos

Le SDK AT Internet vous permet de marquer les commandes effectuées par vos utilisateurs durant l’utilisation de votre application.

 

Pour bien débuter

Une fois votre marqueur initialisé, vous pouvez ajouter les informations de commandes à votre hit d’écran.

Dans le cas d’un projet Swift, veillez à importer le module SmartTracker (ou tvOSTracker / watchOSTracker si votre target est une Apple TV / Apple watch) dans votre ViewController. Dans le cas d’un projet Objective-C, veillez à importer SmartTracker-Swift.h

 

Marquage

Le tracker met à disposition une propriété orders. Cette propriété expose une méthode add permettant de renseigner les informations de commandes et d’ajouter ces dernières à votre marquage d’écran. Cette méthode renvoie un objet de type Order.

Il faut ajouter votre commande au tracker avant de déclarer un nouvel écran sinon 2 hits séparés seront envoyés.

Vous pouvez aussi déclarer une commande en tant que propriété de votre écran.

 

Exemples de marquage

  1. Marquage d’une commande et d’un écran à objectif principal
    Sans l’option SalesTracker

    Même sans l’option SalesTracker, vous avez la possibilité de mesurer l’écran de finalisation de commande (objectif principal) en y insérant le montant de l’achat (turnOver) ainsi que le numéro de la commande (orderId).


    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(animated: Bool) {
            tracker.orders.add("8235", turnover: 2049.30)
            tracker.screens.add("Main goal screen").sendView()
        }
    }

    #import "ViewController.h"
    #import "SmartTracker/SmartTracker-Swift.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) Tracker* tracker;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.tracker = [ATInternet sharedInstance].defaultTracker;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self.tracker.orders add:@"8235" turnover:2049.30];
        [[self.tracker.screens add:@"Main goal screen"] sendView];
    }
    
    @end


    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(_ animated: Bool) {
            let screen = tracker.screens.add("Main goal screen")
            screen.order = Order(orderId: "8235", turnover: 2049.30)
            screen.sendView()
        }
    }

    #import "ViewController.h"
    #import "SmartTracker/SmartTracker-Swift.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) Tracker* tracker;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.tracker = [ATInternet sharedInstance].defaultTracker;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self.tracker.orders add:@"8235" turnover:2049.30];
        [[self.tracker.screens add:@"Main goal screen"] sendView];
    }
    
    @end

    Avec l’option SalesTracker

    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(_ animated: Bool) {            
            let order = tracker.orders.add("cmd1", turnover: 94.30, status: 1)
            // First order from that customer
            order.isNewCustomer = true
            // Payment Method
            order.paymentMethod = 1
            // Order Status
            order.status = 1
            // Order amount
            order.amount.set(80, amountTaxIncluded: 94.30, taxAmount: 14)
            // Order delivery info
            order.delivery.set(5, shippingFeesTaxIncluded: 7.5, deliveryMethod: "1[UPS]")
            // Discount info
            order.discount.set(5, discountTaxIncluded: 7.5, promotionalCode: "SUMMER")
            
            let confirmOrderScreen = tracker.screens.add("Order confirmation")
            confirmOrderScreen.sendView()
        }
    }
    #import "ViewController.h"
    #import "SmartTracker/SmartTracker-Swift.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) Tracker* tracker;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.tracker = [ATInternet sharedInstance].defaultTracker;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
       
        Order* order = [self.tracker.orders add:@"cmd1" turnover: 94.30 status: 1];
        // First order from that custom
        order.isNewCustomer = YES;
        // Payment Method
        order.paymentMethod = 1;
        // Order Status
        order.status = 1;
        // Order amount
        [order.amount set:80 amountTaxIncluded:94.30 taxAmount: 14];
        // Order delivery info
        [order.delivery set:5 shippingFeesTaxIncluded: 7.5 deliveryMethod: @"1[UPS]"];
        // Discount info
        [order.discount set:5 discountTaxIncluded: 7.5 promotionalCode: @"SUMMER"];
        
        Screen *confirmOrderScreen = [self.tracker.screens add:@"Order confirmation"];
        [confirmOrderScreen sendView];
    }
    
    @end
  2. Marquage d’une commande avec les informations de panier
    Pour plus d’informations sur le marquage de votre panier, rendez-vous sur cette page : Panier (SalesTracker)

    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(_ animated: Bool) {
            tracker.cart.set("1")
            
            let p1 = tracker.cart.products.add("ID[p1]")
            p1.category1 = "10[Shoes]"
            p1.quantity = 1
            p1.unitPriceTaxFree = 70
            p1.unitPriceTaxIncluded = 85
            p1.promotionalCode = "ATInternet"
            p1.discountTaxFree = 0
            p1.discountTaxIncluded = 0
            
            let p2 = tracker.cart.products.add("ID[p2]")
            p2.category1 = "20[Socks]"
            p2.quantity = 2
            p2.unitPriceTaxFree = 5
            p2.unitPriceTaxIncluded = 7
            
            let order = tracker.orders.add("cmd1", turnover: 94.30, status: 1)
            // First order from that custom
            order.isNewCustomer = true
            // Payment Method
            order.paymentMethod = 1
            // Order Status
            order.status = 1
            // Order amount
            order.amount.set(80, amountTaxIncluded: 94.30, taxAmount: 14)
            // Order delivery info
            order.delivery.set(5, shippingFeesTaxIncluded: 7.5, deliveryMethod: "1[UPS]")
            // Discount info
            order.discount.set(5, discountTaxIncluded: 7.5, promotionalCode: "SUMMER")
            
            let confirmOrderScreen = tracker.screens.add("Order confirmation")
            confirmOrderScreen.sendView()
            
            tracker.cart.unset()
        }
    }
    #import "ViewController.h"
    #import "SmartTracker/SmartTracker-Swift.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) Tracker* tracker;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.tracker = [ATInternet sharedInstance].defaultTracker;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
    
        [self.tracker.cart set:@"1"];
        
        Product *p1 = [self.tracker.cart.products addString:@"ID[p1]"];
        p1.category1 = @"10[Shoes]";
        p1.quantity = 1;
        p1.unitPriceTaxFree = 70;
        p1.unitPriceTaxIncluded = 85;
        p1.promotionalCode = @"ATInternet";
        p1.discountTaxFree = 0;
        p1.discountTaxIncluded = 0;
        
        Product *p2 = [self.tracker.cart.products addString:@"ID[p2]"];
        p2.category1 = @"20[Socks]";
        p2.quantity = 2;
        p2.unitPriceTaxFree = 5;
        p2.unitPriceTaxIncluded = 7;
        
        Order* order = [self.tracker.orders add:@"cmd1" turnover:94.30 status: 1];
        // First order from that custom
        order.isNewCustomer = YES;
        // Payment Method
        order.paymentMethod = 1;
        // Order Status
        order.status = 1;
        // Order amount
        [order.amount set:80 amountTaxIncluded: 94.30 taxAmount: 14];
        // Order delivery info
        [order.delivery set:5 shippingFeesTaxIncluded: 7.5 deliveryMethod: @"1[UPS]"];
        // Discount info
        [order.discount set:5 discountTaxIncluded: 7.5 promotionalCode: @"SUMMER"];
        
        Screen *confirmOrderScreen = [self.tracker.screens add:@"Order confirmation"];
        [confirmOrderScreen sendView];
        
        [self.tracker.cart unset];
    }
    
    @end
  3. Marquage d’écran de confirmation sur app ou site extérieur
    L’objectif est ici de pouvoir mesurer les validations de commandes et réservations, malgré le fait que l’écran de confirmation soit hébergé par une app ou site extérieur (plateformes bancaires, paypal …). Le marqueur doit être placé sur l’écran précédant le départ vers la banque (contenant toutes les informations de commandes/réservations et de contenu de commande/réservation)

    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(_ animated: Bool) {        
            let order = tracker.orders.add("cmd1", turnover: 94.30, status: 1)
            // First order from that custom
            order.isNewCustomer = true
            // Payment Method
            order.paymentMethod = 1
            // Order Status
            order.status = 1
            // Order needs confirmation (bank validation)
            order.isConfirmationRequired = true
            // Order amount
            order.amount.set(80, amountTaxIncluded: 94.30, taxAmount: 14)
            // Order delivery info
            order.delivery.set(5, shippingFeesTaxIncluded: 7.5, deliveryMethod: "1[UPS]")
            // Discount info
            order.discount.set(5, discountTaxIncluded: 7.5, promotionalCode: "SUMMER")
            
            let myScreen = tracker.screens.add("Order info before payment")
            myScreen.sendView()
        }
    }
    #import "ViewController.h"
    #import "SmartTracker/SmartTracker-Swift.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) Tracker* tracker;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.tracker = [ATInternet sharedInstance].defaultTracker;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
    
        Order* order = [self.tracker.orders add:@"cmd1" turnover:94.30 status: 1];
        // First order from that custom
        order.isNewCustomer = YES;
        // Payment Method
        order.paymentMethod = 1;
        // Order Status
        order.status = 1;
        // Order needs confirmation (bank validation)
        order.isConfirmationRequired = YES;
        // Order amount
        [order.amount set:80 amountTaxIncluded: 94.30 taxAmount: 14];
        // Order delivery info
        [order.delivery set:5 shippingFeesTaxIncluded: 7.5 deliveryMethod: @"1[UPS]"];
        // Discount info
        [order.discount set:5 discountTaxIncluded: 7.5 promotionalCode: @"SUMMER"];
        
        Screen *myScreen = [self.tracker.screens add:@"Order info before payment"];
        [myScreen sendView];
    }
    
    @end
  4. Marquage d’une commande avec ajout de variables personnalisées

    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(_ animated: Bool) {        
            let order = tracker.orders.add("cmd1", turnover: 94.30, status: 1)
            // First order from that custom
            order.isNewCustomer = true
            // Payment Method
            order.paymentMethod = 1
            // Order Status
            order.status = 1
            // Order amount
            order.amount.set(80, amountTaxIncluded: 94.30, taxAmount: 14)
            // Order delivery info
            order.delivery.set(5, shippingFeesTaxIncluded: 7.5, deliveryMethod: "1[UPS]")
            // Discount info
            order.discount.set(5, discountTaxIncluded: 7.5, promotionalCode: "SUMMER")
            // Custom variables
            order.customVariables.add(1, value: "fr")
            order.customVariables.add(2, value: "fr_FR")
            
            let myScreen = tracker.screens.add("Order info before payment")
            myScreen.sendView()
        }
    }
    #import "ViewController.h"
    #import "SmartTracker/SmartTracker-Swift.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) Tracker* tracker;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.tracker = [ATInternet sharedInstance].defaultTracker;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
    
        Order* order = [self.tracker.orders add:@"cmd1" turnover: 94.30 status: 1];
        // First order from that custom
        order.isNewCustomer = YES;
        // Payment Method
        order.paymentMethod = 1;
        // Order Status
        order.status = 1;
        // Order amount
        [order.amount set:80 amountTaxIncluded: 94.30 taxAmount: 14];
        // Order delivery info
        [order.delivery set:5 shippingFeesTaxIncluded: 7.5 deliveryMethod: @"1[UPS]"];
        // Discount info
        [order.discount set:5 discountTaxIncluded: 7.5 promotionalCode: @"SUMMER"];
        // Custom variables
        [order.customVariables add:1 value:@"fr"];
        [order.customVariables add:2 value:@"fr_FR"];
        
        Screen *myScreen = [self.tracker.screens add:@"Order info before payment"];
        [myScreen sendView];
    }
    
    @end
 

Classe Order

 

Propriétés

NomTypeValeur par défautDescription
orderIdStringChaîne videObtient ou définit l’identifiant de la commande
turnoverDouble0.0Obtient ou définit le chiffre d’affaire de la commande
statusInt0Obtient ou définit le status de la commande
discountOrderDiscountnilObtient ou définit les informations de remise
amountOrderAmountnilObtient ou définit les informations de montant
deliveryOrderDeliverynilObtient ou définit les informations de livraison
customVariablesOrderCustomVarsnilObtient ou définit les variables personnalisées
isNewCustomerBool-1Obtient ou définit si l’utilisateur est un nouveau client ou non
paymentMethodInt-1Obtient ou définit le moyen de paiement
isConfirmationRequiredBoolfalseObtient ou définit si la commande est en attente de validation par un site extérieur (banque, paypal …)
 

Classe OrderAmount

 

Propriétés

NomTypeValeur par défautDescription
amountTaxFreeDouble?-1Obtient ou définit le montant HT de la commande
amountTaxIncludedDouble?-1Obtient ou définit le montant TTC de la commande
taxAmountDouble?-1Obtient ou définit le montant de la taxe
 

Méthodes

NomType de retourDescription
setOrderRenseigne les informations de montant de la commande
 

Classe OrderDiscount

 

Propriétés

NomTypeValeur par défautDescription
discountTaxFreeDouble?-1Obtient ou définit le montant HT de la remise
discountTaxIncludedDouble?-1Obtient ou définit le montant TTC de la remise
promotionalCodeString?nilObtient ou définit le code promotionnel utilisé par l’utilisateur
 

Méthodes

NomType de retourDescription
setOrderRenseigne les informations de montant de remise
 

Classe OrderDelivery

 

Propriétés

NomTypeValeur par défautDescription

shippingFeesTaxFree

Double?-1Obtient ou définit le montant HT de la livraison

shippingFeesTaxIncluded

Double?-1Obtient ou définit le montant TTC de la livraison

deliveryMethod

String?nilObtient ou définit la méthode de livraison
 

Méthodes

NomType de retourDescription
setOrderRenseigne les informations de livraison
 

Classe OrderCustomVar

 

Propriétés

NomTypeValeur par défautDescription

varId

Int0Obtient ou définit l’identifiant de la variable

value

StringChaîne videObtient ou définit la valeur de la variable
 

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 : 04/03/2020