Panier

  • iOS
  • watchOS
  • tvOS
 

Avant-propos

Le SDK AT Internet vous permet de marquer le panier de votre application ainsi que son contenu.

Vous pouvez, comme pour un panier réel, ajouter ou retirer des produits du panier et envoyer ces informations dans votre hit d’écran.

 

Pour bien débuter

Une fois votre marqueur initialisé, vous pouvez ajouter les informations de panier à 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é cart. Cette propriété expose les méthodes suivantes :

  • set : Permet de définir un identifiant de panier pour pouvoir ensuite y ajouter des produits

    Pour que les informations de panier soient bien prises en compte, l’identifiant doit être supérieur à zéro

  • unset : Permet de supprimer les produits du panier et de réinitialiser l’identifiant de ce dernier

La propriété cart expose également une propriété products permettant d’ajouter ou retirer des produits au panier.

La propriété products expose les méthodes suivantes :

  • add : Ajoute un produit au panier et retourne un objet Product
  • remove : Supprime un produit du panier
  • removeAll Supprime tous les produits contenus dans le panier

Pour envoyer les informations du panier dans un hit d’écran, il suffit d’assigner la propriété cart du tracker à votre écran.

 

Exemples de marquage

  1. Marquage d’un écran résumant le contenu d’un panier avec 2 articles

    L’identifiant du panier doit être identique à celui présent dans le marqueur de contenu de la commande ; dans le cas contraire le panier sera considéré comme abandonné. Nous attirons également votre attention sur le fait que l’identifiant utilisé pour le panier doit être unique et jamais réutilisé au risque d’obtenir des analyses incohérentes

    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
        override func viewWillAppear(_ animated: Bool) {
            // Enable cart and set an identifier
            tracker.cart.set("1")
            
            let p1 = tracker.cart.products.add("ID[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]", category1: "20[Socks]")
            p2.quantity = 2
            p2.unitPriceTaxFree = 5
            p2.unitPriceTaxIncluded = 7
            
            let cartScreen = tracker.screens.add("Cart resume")
            // Adding Cart info to Screen hit
            cartScreen.cart = tracker.cart.set("1")
            cartScreen.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];
        // Enable cart and set an identifier
        [self.tracker.cart set:@"1"];
        
        Product *p1 = [self.tracker.cart.products add:@"ID[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 add:@"ID[p2]" category1:@"20[Socks]"];
        p2.quantity = 2;
        p2.unitPriceTaxFree = 5;
        p2.unitPriceTaxIncluded = 7;
        
        Screen* cartScreen = [self.tracker.screens add:@"Cart resume"];
        // Adding Cart info to Screen hit
        cartScreen.isBasketScreen = YES;
        [cartScreen sendView];
    }
    
    @end
  2. Marquage d’une commande avec les informations de panier

    Pour plus d’informations sur le marquage de vos commandes, rendez-vous sur cette page : Commandes (SalesTracker)

    import UIKit
    import Tracker
    
    class ViewController: UIViewController {
        let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
        
        override func viewDidLoad() {
            super.viewDidLoad()
            
            tracker.debugger = self
        }
        
        override func viewWillAppear(_ animated: Bool) {
            tracker.cart.set("1")
            
            let p1 = tracker.cart.products.add("ID[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]", 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 customer
            order.isNewCustomer = 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 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;
        self.tracker.debugger = self;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
    
        [self.tracker.cart set:@"1"];
        
        Product *p1 = [self.tracker.cart.products add:@"ID[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 add:@"ID[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 customer
        order.isNewCustomer = 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 *confirmOrderScreen = [self.tracker.screens add:@"Order confirmation"];
        [confirmOrderScreen sendView];
        
        [self.tracker.cart unset];
    }
    
    @end
  3. Réinitialisation du panier après avoir validé une commande

    @IBAction func finishOrder(_ sender: Any) {
        // Reset cart ID and remove all products
        tracker.cart.unset()
    }
    
    - (IBAction)finishOrder:(UIButton *)sender {
        [self.tracker.cart unset];
    }
  4. Remplacement d’un panier existant

    @IBAction func reinitCart(_ sender: Any) {
        // Set a new identifier for cart
        tracker.cart.set("2)
    }
    - (IBAction)reinitCart:(UIButton *)sender {
        [self.tracker.cart set:@"2"];
    }
  5. Ajout de produits au panier

    @IBAction func addProduct2Cart(_ sender: Any) {
        let p1 = tracker.cart.products.add("ID[p1]", category1: "10[Shoes]")
        p1.quantity = 1
        p1.unitPriceTaxFree = 60
        p1.unitPriceTaxIncluded = 75
        p1.promotionalCode = "SUMMER"
        p1.discountTaxFree = 5
        p1.discountTaxIncluded = 7.5
    }
    - (IBAction)addProductToCart:(UIButton *)sender {
        Product *p1 = [self.tracker.cart.products add:@"ID[p1]" category1: @"20[Shoes]"];
        p1.quantity = 1;
        p1.unitPriceTaxFree = 60;
        p1.unitPriceTaxIncluded = 75;
        p1.promotionalCode = @"SUMMER";
        p1.discountTaxFree = 5;
        p1.discountTaxIncluded = 7.5;
    }
  6. Suppression d’un produit du panier

    @IBAction func removeProductFromCart(_ sender: Any) {
       tracker.cart.products.remove("ID[p1]")
    }
    - (IBAction)removeProductFromCart:(UIButton *)sender {
        [self.tracker.cart.products remove:@"ID[p1]"];
    }
  7. Suppression de tous les produits du panier

    @IBAction func emptyCart(_ sender: Any) {
       tracker.cart.products.removeAll()
    }
    - (IBAction)emptyCart:(UIButton *)sender {
        [self.tracker.cart.products removeAll];
    }
 

Classe Cart

 

Propriétés

Nom Type Valeur par défaut Description
cartId String «  » Obtient ou définit l’identifiant du panier
products CartProducts nil Obtient ou définit les produits du panier
 

Méthodes

Nom Type de retour Description
set Cart Active le panier et définit un identifiant
unset void Réinitialise le panier et supprime les produits
 

Classe Product

 

Propriétés

Nom Type Valeur par défaut Description
productId String Chaîne vide Obtient ou définit l’identifiant du produit
category1 String? nil Obtient ou définit la 1ère catégorie du produit
category2 String? nil Obtient ou définit la 2nde catégorie du produit
category3 String? nil Obtient ou définit la 3ème catégorie du produit
category4 String? nil Obtient ou définit la 4ème catégorie du produit
category5 String? nil Obtient ou définit la 5ème catégorie du produit
category6 String? nil Obtient ou définit la 6ème catégorie du produit
quantity Int? nil Obtient ou définit la quantité de produit
unitPriceTaxIncluded Double? nil Obtient ou définit le prix unitaire TTC
unitPriceTaxFree Double? nil Obtient ou définit le prix unitaire HT
discountTaxIncluded Double? nil Obtient ou définit le montant de remise TTC
discountTaxFree Double? nil Obtient ou définit le montant de remise HT
promotionalCode String? nil Obtient ou définit le code promotionnel pour le produit
Cet article vous a-t-il été utile ?
Oui
Non
Dernière mise à jour : 15/12/2016