UNPKG

2.79 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var page_type_1 = require("../../commons/types/page-type");
5var vtex_runner_1 = require("../../event/runners/vtex-runner");
6var confirmation_1 = require("../../event/types/page/confirmation");
7var cart_1 = require("../types/page/cart");
8/**
9 * Specific runner used by Sidewalk.
10 *
11 * @class SidewalkRunner
12 * @implements {Runner}
13 */
14var SantilRunner = /** @class */ (function (_super) {
15 tslib_1.__extends(SantilRunner, _super);
16 function SantilRunner() {
17 return _super !== null && _super.apply(this, arguments) || this;
18 }
19 /**
20 * Get current page info based on DataLayer.
21 *
22 * @protected
23 * @param {PageItem} item Current item.
24 * @return {IPageInfo} Current page info.
25 * @memberof SantilRunner
26 */
27 SantilRunner.prototype.getPageInfo = function (item) {
28 if (item && item.event) {
29 if (item.event.toUpperCase() === "PEDIDOREALIZADO") {
30 return {
31 item: item,
32 pageType: page_type_1.PageType.Confirmation,
33 };
34 }
35 else if (item.event.toUpperCase() === "CART") {
36 return {
37 item: item,
38 pageType: page_type_1.PageType.Cart,
39 };
40 }
41 }
42 return undefined;
43 };
44 /**
45 * Create a generic cart event.
46 *
47 * @protected
48 * @param {string} _event Current event name.
49 * @return {CartEvent} Relevant cart event.
50 * @memberof SantilRunner
51 */
52 SantilRunner.prototype.createCartEvent = function (_event) {
53 return new cart_1.PageCartEvent();
54 };
55 /**
56 * Send order event, based on a order item.
57 *
58 * @protected
59 * @param {*} orderItem Order item from the DataLayer.
60 * @memberof VTEXRunner
61 */
62 SantilRunner.prototype.sendOrderEvent = function (orderItem) {
63 orderItem = orderItem.ecommerce.purchase;
64 var orderId = orderItem.actionField.id;
65 var products = [];
66 if (orderItem.products) {
67 for (var _i = 0, _a = orderItem.products; _i < _a.length; _i++) {
68 var transactionProduct = _a[_i];
69 products.push({
70 product: transactionProduct.id,
71 quantity: Number(transactionProduct.quantity),
72 price: Number(transactionProduct.price),
73 });
74 }
75 }
76 var event = new confirmation_1.PageConfirmationEvent(orderId).withProducts(products);
77 event.push();
78 };
79 return SantilRunner;
80}(vtex_runner_1.VTEXRunner));
81exports.SantilRunner = SantilRunner;
82//# sourceMappingURL=santil-runner.js.map
\No newline at end of file