- 4 Minutes to read
- Print
- DarkLight
Product
- 4 Minutes to read
- Print
- DarkLight
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 ( | 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.