Developers » AS2 tagging » Apple » Ecommerce » SalesTracker » Commandes
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 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é orders. Cette propriété expose une méthode add permettant de renseigner les informations de commandes et dajouter 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
- Marquage d’une commande et d’un écran à objectif principal
Sans l’option SalesTrackerMême sans loption SalesTracker, vous avez la possibilité de mesurer l’écran de finalisation de commande (objectif principal) en y insérant le montant de lachat (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
- 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
- Marquage d’écran de confirmation sur app ou site extérieur
Lobjectif 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
- 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
Nom | Type | Valeur par défaut | Description |
---|---|---|---|
orderId | String | Chaîne vide | Obtient ou définit l’identifiant de la commande |
turnover | Double | 0.0 | Obtient ou définit le chiffre d’affaire de la commande |
status | Int | 0 | Obtient ou définit le status de la commande |
discount | OrderDiscount | nil | Obtient ou définit les informations de remise |
amount | OrderAmount | nil | Obtient ou définit les informations de montant |
delivery | OrderDelivery | nil | Obtient ou définit les informations de livraison |
customVariables | OrderCustomVars | nil | Obtient ou définit les variables personnalisées |
isNewCustomer | Bool | -1 | Obtient ou définit si l’utilisateur est un nouveau client ou non |
paymentMethod | Int | -1 | Obtient ou définit le moyen de paiement |
isConfirmationRequired | Bool | false | Obtient ou définit si la commande est en attente de validation par un site extérieur (banque, paypal …) |
Classe OrderAmount
Propriétés
Nom | Type | Valeur par défaut | Description |
---|---|---|---|
amountTaxFree | Double? | -1 | Obtient ou définit le montant HT de la commande |
amountTaxIncluded | Double? | -1 | Obtient ou définit le montant TTC de la commande |
taxAmount | Double? | -1 | Obtient ou définit le montant de la taxe |
Méthodes
Nom | Type de retour | Description |
---|---|---|
set | Order | Renseigne les informations de montant de la commande |
Classe OrderDiscount
Propriétés
Nom | Type | Valeur par défaut | Description |
---|---|---|---|
discountTaxFree | Double? | -1 | Obtient ou définit le montant HT de la remise |
discountTaxIncluded | Double? | -1 | Obtient ou définit le montant TTC de la remise |
promotionalCode | String? | nil | Obtient ou définit le code promotionnel utilisé par l’utilisateur |
Méthodes
Nom | Type de retour | Description |
---|---|---|
set | Order | Renseigne les informations de montant de remise |
Classe OrderDelivery
Propriétés
Nom | Type | Valeur par défaut | Description |
---|---|---|---|
shippingFeesTaxFree | Double? | -1 | Obtient ou définit le montant HT de la livraison |
shippingFeesTaxIncluded | Double? | -1 | Obtient ou définit le montant TTC de la livraison |
deliveryMethod | String? | nil | Obtient ou définit la méthode de livraison |
Méthodes
Nom | Type de retour | Description |
---|---|---|
set | Order | Renseigne les informations de livraison |
Classe OrderCustomVar
Propriétés
Nom | Type | Valeur par défaut | Description |
---|---|---|---|
varId | Int | 0 | Obtient ou définit l’identifiant de la variable |
value | String | Chaîne vide | Obtient 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.
Identifiant | Libellé | Catégorie |
---|---|---|
1 | CB | Cartes bancaires |
2 | Visa | Cartes bancaires |
3 | MasterCard | Cartes bancaires |
4 | Chèque | Chèques |
5 | Carte magasin | Cartes de crédit |
6 | Financement | Cartes de crédit |
7 | Virement | Virements |
8 | Prélèvement | Prélèvement |
9 | PayPal | Monnaie électronique |
Ci-dessous les correspondances libellés/identifiants pour les statuts des commandes.
Identifiant | Libellé |
---|---|
0 | Non renseigné |
1 | En attente |
2 | Annulée |
3 | Validée |
4 | Retour |