Product

Prev Next

Mapp Intelligence enables detailed tracking of product interactions across the entire shopping journey.

Each product event is assigned a product status that defines the context in which a product is viewed or interacted with. This allows you to analyze user behavior from the first product impression to the final purchase.


Product Status

The following product statuses are supported in Mapp Intelligence:

Product Status

Description

VIEW

Product viewed on a product detail page.

BASKET

Product added to a shopping cart.

ADD_TO_WISHLIST

Product added to a wishlist.

DELETE_FROM_WISHLIST

Product removed from a wishlist.

ADD_TO_CART

Product added to a shopping cart.

DELETE_FROM_CART

Product removed from a shopping cart.

CHECKOUT

Product moved to checkout.

CONFIRMATION

Product purchased.

Mapp Intelligence can automatically detect abandoned shopping carts when products are tracked with the relevant statuses, but no purchase confirmation follows.


Categories

Product categories define fixed classifications for products and enable structured analysis.

These groups must be configured in Mapp Q3 before being tracked via the library. Find more information here.

When implementing, include the ID number and the respective value as a string. The value should not exceed 255 characters; additional characters are truncated.

Note

Categories are assigned once to a product. If a product is tracked with a category, all subsequent product calls will also be assigned to this category. Only the first tracked value will be shown. Mapp therefore recommends implementing products and categories while embedding the library. See also How can I replace missing values ("-") in categories?


Parameters

E-Commerce Parameters enrich tracked product data with additional website-specific information or metrics.

They must be configured in Mapp Q3 before they can be tracked via the library. During setup, you define the data type (text or number) and other attributes for each parameter.

Mapp Intelligence provides a range of predefined E-Commerce Parameters for common product-related use cases, such as Product Sold Out, Product on Sale, and Category. Alternatively, you can create custom E-Commerce Parameters to capture completely individual product information — for example, product size, color, brand, or campaign-specific attributes.

For detailed setup instructions and a full overview of predefined parameters, see How to set up custom parameters.



Method

Description

Where to configure *

constructor

Initializes a product object. A product ID is required and may not exceed 110 characters.

–

setId

Defines the unique product identifier (e.g. SKU or article number). Required for all product measurements.

–

setCost

Sets the total price of the product. “0” values are allowed. For multiple quantities, use the total price, not the unit price.

–

setQuantity

Defines the quantity of the product.

–

setStatus

Defines the product status. The following values are supported:

  • VIEW

  • BASKET

  • ADD_TO_CART

  • DELETE_FROM_CART

  • CHECKOUT

  • CONFIRMATION

  • ADD_TO_WISHLIST

  • DELETE_FROM_WISHLIST

–

setVariant

Transmits the variant of the product, for example color or size.

EP > Product variant

setSoldOut

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

EP > Product sold out

setParameter

Adds product-specific parameters to enrich tracking data.

EP > Own Configuration

setCategory

Assigns a product category for structured grouping and analysis.

PC > New Category

* Configuration Path Abbreviations:

  • EP = Mapp Q3 > Configuration > Custom Parameters > E-Commerce Parameters > Preconfigured > …

  • PC = Mapp Q3 > Configuration > Categorization > Product Categories > …

Generated request parameters

Method

Request parameter

Constant

constructor / setId

ba

PRODUCT_ID

setCost

co

PRODUCT_COST

setQuantity

qn

PRODUCT_QUANTITY

setStatus

st

PRODUCT_STATUS

setVariant

cb767

PRODUCT_VARIANT

setSoldOut

cb760 (1 = sold out, 0 = in stock)

PRODUCT_SOLD_OUT

setParameter

cb<ID>

CUSTOM_PRODUCT_PARAMETER

setCategory

ca<ID>

CUSTOM_PRODUCT_CATEGORY

constructor

/**
 * MappIntelligenceProduct constructor.
 * @param string $id
 */
$productData = new MappIntelligenceProduct($id);

setId

 /**
  * @param string $id
  * @return $this
  */
$productData->setId($id);

setCost

/**
 * @param float $cost
 * @return $this
 */
$productData->setCost($cost);

setQuantity

/**
 * @param int $quantity
 * @return $this
 */
$productData->setQuantity($quantity);

setStatus

/**
 * @param string $status
 * @return $this
 */
$productData->setStatus($status);

Use the constants of MappIntelligenceProduct (for example MappIntelligenceProduct::CONFIRMATION). Other values are ignored and the status stays unchanged (default: VIEW).

setVariant

/**
 * @param string $variant Variant of the product (E-Commerce Parameter 767)
 * @return $this
 */
$productData->setVariant($variant);

setSoldOut

/**
 * @param bool $soldOut
 * @return $this
 */
$productData->setSoldOut($soldOut);

setParameter

/**
 * @param int $id
 * @param string $value
 * @return $this
 */
$productData->setParameter($id, $value);

Product parameters are E-Commerce Parameters (cb<ID>) and share their IDs with order parameters and with page and event goals: if several of them use the same ID in one request, only one value is sent. The IDs 760 and 767 are used by setSoldOut and setVariant. Do not use them with setParameter.

setCategory

/**
 * @param int $id
 * @param string $value
 * @return $this
 */
$productData->setCategory($id, $value);
$productData = new MappIntelligenceProduct();
$productData
	->setId('id of a product')
	->setCost(19.95)
	->setQuantity(5)
	->setStatus(MappIntelligenceProduct::VIEW)
	->setSoldOut(true)
	->setParameter(2, 'parameter 2')
	->setParameter(15, 'parameter 15')
	->setCategory(2, 'category 2')
	->setCategory(15, 'category 15');

$mappProductCollection = new MappIntelligenceProductCollection();
$mappProductCollection->add($productData);

$mappIntelligence = MappIntelligence::getInstance();
$mappIntelligence->track((new MappIntelligenceDataMap())->product($mappProductCollection));