UNPKG

2.39 kBTypeScriptView Raw
1import { EventRunner, PageInfo, PageItem } from "../../event/core/event-runner";
2import { CartEvent } from "../types/base/cart-event";
3/**
4 * Specific runner used by VTEX stores.
5 *
6 * @class VTEXRunner
7 * @implements {Runner}
8 */
9export 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}