Developers » AS2 tagging » Apple » Ecommerce » SalesTracker » Panier
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 dun 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 dun 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
- 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
- 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
- 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]; }
- 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"]; }
- 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; }
- 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]"]; }
- 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 |