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];
    }