--- title: "Products" slug: "intelligence-smart-pixel-product" tags: ["Product Tracking", "Mapp Intelligence"] updated: 2026-09-24T10:08:38Z published: 2026-09-24T10:08:38Z canonical: "docs.mapp.com/intelligence-smart-pixel-product" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # Products ## 1 Overview Mapp Intelligence tracks products along the whole shopping funnel. Every product call carries a status that records in which context the product was seen or used. The status is what makes funnel, drop-off and conversion analyses possible. Four groups of statuses are supported: - **Browsing**: a product listed in a catalog or on an overview page, and a product opened on its own detail page. - **Wishlist**: a product added to a wishlist and removed from it again. - **Cart and order**: a product added to the cart, removed from the cart, moved to checkout, and finally purchased. - **Recommendations**: a product loaded into a recommendation widget, becoming viewable on screen, and being clicked. These three are sent by the [Recommendation Tracking](/v1/docs/recommendation-tracking-plugin-intelligence) extension and do not have to be set manually. For the technical names and how to set each status, see **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 | | variant | Identifier of the product’s variant or style context (not SKU-level). | string | cb767 | | fashionProductId | Product ID — groups all variants of a product, regardless of color or size. Not specific to Mapp Fashion despite the name: the Recommendation Tracking extension uses it to match recommended products to an order. It is not sent to Mapp Intelligence or Mapp Fashion. Set it in addition to id whenever the value is available. | string | — | | 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] | ### Product identifiers in tracking Mapp Intelligence uses the same product identifier model as the Mapp Cloud Product Catalog. Each tracking field maps to one catalog identifier: | Smart Pixel field | Catalog identifier | Example | | --- | --- | --- | | `id` | Variant ID | `DRESS-5892-BLK-36` | | `fashionProductId` | Product ID | `DRESS-5892` | | `fashionStyleId` | Style ID | `DRESS-5892-BLK` | The `id` references a single purchasable item including color and size. `fashionProductId` is optional and groups all variants of a product. Setting it lets Mapp match a tracked product to its product group even when variant identifiers change, which is relevant for recommendation tracking. Set it in addition to `id` whenever the value is available, including in non-Fashion setups. For the full identifier model, see [How Product Catalogs Work](/v1/docs/connect-product-catalog-concepts-structure). ### Fashion-specific properties The following properties are only relevant if Mapp Fashion is in use. All three are optional. | Property | Description | Type | | --- | --- | --- | | `fashionStyleId` | Style ID — groups variants that share the same color but differ in size. Corresponds to the Style ID in the Mapp Cloud Product Catalog, see *Product identifiers in tracking* above. | string | | `fashionItemTitle` | Product name. | string | | `fashionItemCategory` | Product category. | string | > [!NOTE] > Note > > These properties are sent to the Mapp Fashion extension only. They are not transferred to Mapp Intelligence and are not shown as request parameters. For product name and category, the authoritative source is the Mapp Fashion product feed, where both are mandatory fields. Sending them in tracking is optional and does not replace the feed. See [Product Feed](/v1/docs/product-feed-mapp-fashion). --- ### 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](/v1/docs/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](/v1/docs/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 | Products inside recommendation widgets are not set through these objects. They are tracked by the [Recommendation Tracking](/v1/docs/recommendation-tracking-plugin-intelligence) extension, which sends the loaded, viewable and clicked statuses on its own. 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. > [!NOTE] > This example uses the **confirmation** status. Other product status objects are structured identically. SetAddGetRemove ```javascript /** * @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); ``` ```javascript /** * @returns {{ *      id: string, *      cost: number, *      quantity: number, *      soldOut: boolean, *      parameter: {[number]: string}, *      category: {[number]: string} * }[]} */ wtSmart.product.confirmation.data.get(); ``` ```javascript /** * @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); ``` ```javascript /** * @param {number[]} [removeconfirmation] * * @returns {wtSmart.product.confirmation.data} */ wtSmart.product.confirmation.data.remove(removeconfirmation); ``` **Example** ```javascript var product = {    id: 'SKU-12345',    cost: 99.90,    quantity: 2,    soldOut: false,    parameter: {        1: 'L'    },    category: {        1: '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. > [!NOTE] > This example uses the **confirmation** status. Other product status objects are structured identically. SetAddGetRemove ```javascript /** * @param {{[number]: string}} data * * @returns {wtSmart.product.confirmation.parameter} */ wtSmart.product.confirmation.parameter.set(data); ``` ```javascript /** * @param {{[number]: string}} data * * @returns {wtSmart.product.confirmation.parameter} */ wtSmart.product.confirmation.parameter.add(data); ``` ```javascript /** * @returns {{[number]: string}} */ wtSmart.product.confirmation.parameter.get(); ``` ```javascript /** * @param {number[]} [removeconfirmation] * * @returns {wtSmart.product.confirmation.parameter} */ wtSmart.product.confirmation.parameter.remove(removeconfirmation); ``` **Example** ```javascript // set product confirmation parameter wtSmart.product.confirmation.parameter.set({    1: 'M'       // size }); // add product confirmation parameter wtSmart.product.confirmation.parameter.add({    7: 'blue'    // color }); // 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. [Embedded content](https://static.webtrekk.com/pixel/wtsmart-gui/data/product/view/?nohelp=1)