## Overview

_Product_ events represent the customer's journey as they choose and decide the product to order.

## trackProductClicked ([Product](🔗))

An event triggered when a customer clicks on a product link to view more details.

#### Parameters

ParameterData typeDescription
`product` <span style="color:red">required</span>_object_The product that the customer clicks on.

#### Example





## trackProductViewed ([Product](🔗))

#### Parameters

ParameterData typeDescription
`product` <span style="color:red">required</span>_object_The product the customer viewed.

#### Example





## trackProductAdded ([Product](🔗), Optional\[[Cart](🔗)])

An event triggered when a customer adds a product to their cart.

#### Parameters

ParameterData typeDescription
`product` <span style="color:red">required</span>_object_The product that the customer adds to their cart.
`cart` _optional__object_The cart the customer adds the product to. An undefined argument implies that customers may only have one cart at all times.

#### Example





## trackProductRemoved ([Product](🔗), Optional\[[Cart](🔗)])

An event triggered when a customer removes a product from their cart.

#### Parameters

ParameterData typeDescription
`product` <span style="color:red">required</span>_object_The product that the customer removes from their cart.
`cart` _optional__object_The cart the customer removes the product from. An undefined argument implies that customers may only have one cart at all times.

#### Example





## trackCartViewed: ([Product](🔗), Optional\[[Cart](🔗)])

An event triggered when a customer views their cart.

#### Parameters

ParameterData typeDescription
`product` <span style="color:red">required</span>_array_The products in the cart when the customer viewed it.
`cart` _optional__object_The cart the customer viewed. An undefined argument implies that customers may only have one cart at all times.

#### Example



## Objects

### Product

Represents any offered product or service.

ParameterColumn Title
Description
**brand** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `prbr`The brand of the product (e.g., Affirm).
**category** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `prca`The category the product belongs to (e.g., Apparel).
**coupon** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `prcc`Any coupon code associated with the particular instance of this product.
**name** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `osn`The full name of the product (e.g., Affirm T-Shirt).
**price** _optional__integer_ **Protocol parameter**: `prpr`The price of the product. The value must be non-negative and represented as cents instead of dollars.
**productID ** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `prid`A unique identifier representing the product, such as the SKU or an internal database identifier used by the merchant.
**quantity** _optional__integer_ **Protocol parameter**: `prqt`The quantity of the product. The value must be non-negative.
**variant** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `prva`The variant of the product (e.g., black).
**currency** _optional__string_ **Protocol parameter**: `prcu`A [currency code](🔗) associated with this product (USD).



### Cart

Represents a user’s cart. This is an optional argument for most of the functions in the Enhanced Analytics API. It is intended to support analytics for eCommerce websites that allow customers to have multiple carts.

ParameterData typeDescription
`cartID` <span style="color:red">required</span>_string_ **Maximum length**: 500 **Protocol parameter**: `ctid`A unique identifier representing the user’s cart.
`name` _optional__string_ **Maximum length**: 500 **Protocol parameter**: `ctnm`The name of the cart.