1 | import { EventRunner, PageInfo, PageItem } from "../../event/core/event-runner";
|
2 | import { CartEvent } from "../types/base/cart-event";
|
3 | /**
|
4 | * Specific runner used by VTEX stores.
|
5 | *
|
6 | * @class VTEXRunner
|
7 | * @implements {Runner}
|
8 | */
|
9 | export declare class VTEXRunner extends EventRunner {
|
10 | /**
|
11 | * Process DataLayer item.
|
12 | *
|
13 | * @protected
|
14 | * @param {*} item Current item.
|
15 | * @memberof VTEXRunner
|
16 | */
|
17 | protected processItem(item: PageItem): void;
|
18 | /**
|
19 | * Get current page info based on DataLayer.
|
20 | *
|
21 | * @protected
|
22 | * @param {PageItem} item Current item.
|
23 | * @return {PageInfo} Current page info.
|
24 | * @memberof VTEXRunner
|
25 | */
|
26 | protected getPageInfo(item: PageItem): PageInfo;
|
27 | /**
|
28 | * Send order event, based on a order item.
|
29 | *
|
30 | * @protected
|
31 | * @param {*} orderItem Order item from the DataLayer.
|
32 | * @memberof VTEXRunner
|
33 | */
|
34 | protected sendOrderEvent(orderItem: PageItem): void;
|
35 | /**
|
36 | * Send cart event, based on a cart item.
|
37 | *
|
38 | * @protected
|
39 | * @param {*} cartItem Cart item from the DataLayer.
|
40 | * @memberof VTEXRunner
|
41 | */
|
42 | protected sendCartEvent(cartItem: PageItem): void;
|
43 | /**
|
44 | * Get layer products from specific event key.
|
45 | *
|
46 | * VTEX has 3 specific keys when working with cart items on
|
47 | * the dataLayer.
|
48 | *
|
49 | * When products are added, they send the `ADDTOCART` event,
|
50 | * when they are removed `REMOVEFROMCART` and when they are
|
51 | * sending the full basket, they use the `CART` event.
|
52 | *
|
53 | * Whenever this events are sent, they come with an `ecommerce`
|
54 | * object, inside it, there is a key with the products array,
|
55 | * the key name follows the following rule:
|
56 | *
|
57 | * - When event is `ADDTOCART`, the key is `add`.
|
58 | * - When event is `REMOVEFROMCART`, the key is `remove`.
|
59 | * - When event is `CART`, the key is `checkout`.
|
60 | *
|
61 | * @protected
|
62 | * @param {string} event Current event name.
|
63 | * @return {string} Event related key.
|
64 | * @memberof VTEXRunner
|
65 | */
|
66 | protected getCartProductsKeyFromEvent(event: string): string;
|
67 | /**
|
68 | * Create a generic cart event.
|
69 | *
|
70 | * @protected
|
71 | * @param {string} event Current event name.
|
72 | * @return {CartEvent} Relevant cart event.
|
73 | * @memberof VTEXRunner
|
74 | */
|
75 | protected createCartEvent(event: string): CartEvent;
|
76 | }
|