## 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
Parameter | Data type | Description |
`product ` <span style="color:red">required</span> | _object_ | The product that the customer clicks on. |
#### Example


## trackProductViewed ([Product](🔗))
#### Parameters
Parameter | Data type | Description |
`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
Parameter | Data type | Description |
`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
Parameter | Data type | Description |
`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
Parameter | Data type | Description |
`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.
Parameter | Column 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.
Parameter | Data type | Description |
`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. |