1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var page_type_1 = require("../../commons/types/page-type");
|
5 | var event_runner_1 = require("../../event/core/event-runner");
|
6 | var confirmation_1 = require("../../event/types/page/confirmation");
|
7 | var cart_1 = require("../types/page/cart");
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | var AnaCapriRunner = (function (_super) {
|
15 | tslib_1.__extends(AnaCapriRunner, _super);
|
16 | function AnaCapriRunner() {
|
17 | return _super !== null && _super.apply(this, arguments) || this;
|
18 | }
|
19 | |
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | AnaCapriRunner.prototype.processItem = function (item) {
|
27 | var info = this.getPageInfo(item);
|
28 | if (info) {
|
29 | if (info.pageType === page_type_1.PageType.Confirmation) {
|
30 | this.sendOrderEvent(info.item);
|
31 | }
|
32 | else if (info.pageType === page_type_1.PageType.Cart) {
|
33 | this.sendCartEvent(info.item);
|
34 | }
|
35 | }
|
36 | };
|
37 | |
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 | AnaCapriRunner.prototype.getPageInfo = function (item) {
|
46 | if (item) {
|
47 | if (item.ecommerce && item.ecommerce.purchase) {
|
48 | return {
|
49 | item: item,
|
50 | pageType: page_type_1.PageType.Confirmation,
|
51 | };
|
52 | }
|
53 | else if (item.event && item.event.toUpperCase() === "CART") {
|
54 | return {
|
55 | item: item,
|
56 | pageType: page_type_1.PageType.Cart,
|
57 | };
|
58 | }
|
59 | }
|
60 | return undefined;
|
61 | };
|
62 | |
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 | AnaCapriRunner.prototype.sendOrderEvent = function (orderItem) {
|
70 | var item = orderItem.ecommerce.purchase;
|
71 | var orderId = item.actionField.id;
|
72 | var products = [];
|
73 | if (item.products) {
|
74 | for (var _i = 0, _a = item.products; _i < _a.length; _i++) {
|
75 | var transactionProduct = _a[_i];
|
76 |
|
77 | var price = transactionProduct.price;
|
78 | products.push({
|
79 | product: transactionProduct.id,
|
80 | quantity: transactionProduct.quantity,
|
81 | price: price,
|
82 | });
|
83 | }
|
84 | }
|
85 | var event = new confirmation_1.PageConfirmationEvent(orderId).withProducts(products);
|
86 | event.push();
|
87 | };
|
88 | |
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 | AnaCapriRunner.prototype.sendCartEvent = function (cartItem) {
|
96 |
|
97 | var event = this.createCartEvent(cartItem.event);
|
98 |
|
99 | var layerProducts = cartItem.products;
|
100 | if (layerProducts && layerProducts instanceof Array && layerProducts.length > 0) {
|
101 | for (var _i = 0, layerProducts_1 = layerProducts; _i < layerProducts_1.length; _i++) {
|
102 | var product = layerProducts_1[_i];
|
103 | event.withProduct(product.product.baseProduct, product.quantity);
|
104 | }
|
105 | }
|
106 | event.push();
|
107 | };
|
108 | |
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 |
|
116 | AnaCapriRunner.prototype.createCartEvent = function (_event) {
|
117 | return new cart_1.PageCartEvent();
|
118 | };
|
119 | return AnaCapriRunner;
|
120 | }(event_runner_1.EventRunner));
|
121 | exports.AnaCapriRunner = AnaCapriRunner;
|
122 |
|
\ | No newline at end of file |