Product
    • 4 Minutes to read
    • Dark
      Light

    Product

    • Dark
      Light

    Article summary

    1 Overview

    Mapp Intelligence enables tracking of different product statuses to analyze user interaction across the full shopping funnel. The product status defines the context in which a product is viewed or interacted with.

    The following product statuses are available:

    Product Status

    Description

    list

    Viewed in a catalog or product overview page

    view

    Viewed on a product detail page

    addToWishlist

    Added to a wishlist

    deleteFromWishlist

    Removed from a wishlist

    addToCart

    Added to a shopping cart

    deleteFromCart

    Removed from a shopping cart

    checkout

    Moved to checkout

    confirmation

    Purchased

    For details on implementing each product status, see section 3 Objects and Methods.


    2 Configurable Properties

    The following properties are available for product tracking:

    Property

    Description

    Data type

    Request Parameter

    id

    A unique product identifier. Use a SKU or article number to support catalog imports.

    string

    ba

    cost

    Product price. For multiple quantities, send the total price. "0" values are allowed.

    number

    co

    quantity

    Quantity of the product.

    number

    qn

    soldOut

    Indicates if the product is sold out (true) or in stock (false).

    boolean

    cb760

    parameter

    Optional e-commerce parameters. Can enrich product data with attributes like color or size.

    object

    cb[ID]

    category

    Defines the product category. Each product can only have one category per category ID.

    object

    ca[ID]

    2.1 Parameters

    Parameters allow you to enrich product data with website-specific values (e.g., product size, color). You must configure parameters in Mapp Q3 > Configuration > Custom Parameters > E-Commerce Parameters. Values appear in E-Commerce > E-Commerce Parameters for type "Text" or as metrics for type "Number".

    For setup instructions: How to Set Up Custom Parameters

    2.2 Categories (Product Categories)

    Categories group products into structured hierarchies (e.g., category, brand). Each product can only have one value per category ID. Categories must be set up under Mapp Q3 > Configuration > Categorisation > Product Categories.

    Tracked categories of type "Text" appear under E-Commerce > Product Categories. Categories of type "Number" are available as metrics.

    For setup instructions: How to Set Up Categories


    3 Objects and Methods

    Tracking Objects

    Mapp Intelligence provides two main tracking objects for product tracking:

    • data: Contains all product details including price, quantity, parameters, and categories.

    • parameter: Allows custom attributes to be assigned to each product separately.

    In addition, the following product status objects are available:

    Object

    Description

    list

    Product viewed in a catalog

    view

    Product detail view

    addToWishlist

    Product added to wishlist

    deleteFromWishlist

    Product removed from wishlist

    addToCart

    Product added to shopping cart

    deleteFromCart

    Product removed from shopping cart

    checkout

    Product moved to checkout

    confirmation

    Product purchased

    The following examples use the confirmation object, which supports multiple products.

    Methods

    Each object supports the following methods:

    Method

    Description

    set()

    Overwrites all existing values

    add()

    Adds or updates values. Existing values remain unchanged

    get()

    Returns the current configuration

    remove()

    Deletes the entire configuration or selected values

    3.1 data – Full Product Configuration

    The data object includes all relevant product attributes, such as ID, cost, and quantity, as well as nested parameter and category objects.

    This example uses the confirmation status. Other product status objects are structured identically.

    /**
     * @param {{
     *      id: string,
     *      [cost=0]: number,
     *      [quantity=0]: number,
     *      [soldOut=false]: boolean,
     *      [parameter={}]: {[number]: string},
     *      [category={}]: {[number]: string}
     * }[]} data
     *
     * @returns {wtSmart.product.confirmation.data}
     */
    wtSmart.product.confirmation.data.set(data);
    /**
     * @returns {{
     *      id: string,
     *      cost: number,
     *      quantity: number,
     *      soldOut: boolean,
     *      parameter: {[number]: string},
     *      category: {[number]: string}
     * }[]}
     */
    wtSmart.product.confirmation.data.get();
    /**
     * @param {{
     *      id: string,
     *      [cost=0]: number,
     *      [quantity=0]: number,
     *      [soldOut=false]: boolean,
     *      [parameter={}]: {[number]: string},
     *      [category={}]: {[number]: string}
     * }[]} data
     *
     * @returns {wtSmart.product.confirmation.data}
     */
    wtSmart.product.confirmation.data.add(data);
    /**
     * @param {number[]} [removeconfirmation]
     *
     * @returns {wtSmart.product.confirmation.data}
     */
    wtSmart.product.confirmation.data.remove(removeconfirmation);

    Example

    var product = {
        id: 'SKU-12345',
        cost: 99.90,
        quantity: 2,
        soldOut: false,
        parameter: {
            1: 'L'
        },
        category: {
            1: 'Blue Denim Jeans',
            2: 'Men'
        }
    };
    
    // set product confirmation data
    wtSmart.product.confirmation.data.set([product, product2]);
    
    // add product confirmation data
    wtSmart.product.confirmation.data.add([product3, product4]);
    
    // get product confirmation data
    var data = wtSmart.product.confirmation.data.get();
      
    // remove all product confirmation data
    wtSmart.product.confirmation.data.remove();
    
    // remove only the first (product) product confirmation data
    wtSmart.product.confirmation.data.remove([1]);

    3.2 parameter – Custom Product Values

    The parameter object allows the independent assignment of custom values to product calls.

    This example uses the confirmation status. Other product status objects are structured identically.

    /**
     * @param {{[number]: string}} data
     *
     * @returns {wtSmart.product.confirmation.parameter}
     */
    wtSmart.product.confirmation.parameter.set(data);
    /**
     * @param {{[number]: string}} data
     *
     * @returns {wtSmart.product.confirmation.parameter}
     */
    wtSmart.product.confirmation.parameter.add(data);

    /**
     * @returns {{
     *      id: string,
     *      cost: number,
     *      quantity: number,
     *      soldOut: boolean,
     *      parameter: {[number]: string},
     *      category: {[number]: string}
     * }[]}
     */
    wtSmart.product.confirmation.data.get();
    /**
     * @param {number[]} [removeconfirmation]
     *
     * @returns {wtSmart.product.confirmation.parameter}
     */
    wtSmart.product.confirmation.parameter.remove(removeconfirmation);

    Example

    // set product confirmation parameter
    wtSmart.product.confirmation.parameter.set({
        1: 'bar'
    });
    
    // add product confirmation parameter
    wtSmart.product.confirmation.parameter.add({
        7: 'foo.bar'
    });
    
    // get product confirmation parameter
    var data = wtSmart.product.confirmation.parameter.get();
      
    // remove all product confirmation parameter
    wtSmart.product.confirmation.parameter.remove();
    
    // remove only product confirmation parameter 7
    wtSmart.product.confirmation.parameter.remove([7]);

    4 Code Generator

    Use the code generator to create tracking code for product-related data that you can directly integrate into your website.


    Was this article helpful?

    What's Next
    ESC

    AI Assistant, facilitating knowledge discovery through conversational intelligence