> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Goal, segment, trigger, and product objects

> Reference for the Goal, Segment, Trigger, Product, Category, Param, Fashion, Color, Auto, and Compatible objects.

These objects describe goals, segments, and triggers, and the catalog items that product methods use.

## Goal

A `Goal` object represents a Key Performance Indicator (KPI) defined in the Kameleoon app.

**Properties**

| Name | Type | Description |
| - | - | - |
| id | Number | ID of the goal. |
| name | String | Name of the goal. |
| type | String | Type of the goal. Possible values are: **CLICK**, **SCROLL**, **URL**, **ENGAGEMENT** and **CUSTOM**. |

## Segment

A `Segment` object contains criteria that a visit must fulfill to belong to the segment. On the Kameleoon platform, segments include constant conditions (such as age or location) and triggering conditions (such as time on page or cart contents).

**Properties**

| Name | Type | Description |
| - | - | - |
| id | Number | ID of the segment. |
| name | String | Name of the segment. |

## Trigger

A Trigger object contains criteria that a visit must fulfill to fire the trigger. On the Kameleoon platform, triggers include constant conditions (such as age or location) and triggering conditions (such as time on page or cart contents).

**Properties**

| Name | Type | Description |
| - | - | - |
| id | Number | ID of the trigger. |
| name | String | Name of the trigger. |

## Product

A `Product` object describes items in a catalog. Most properties are optional and might be **null**.

**Properties**

| Name | Type | Required | Description |
| - | - | - | - |
| id | String | True | Unique ID of the product. |
| name | String | False | Name of the product. |
| sku | String | False | Stock Keeping Unit (SKU) of the product. |
| categories | Array | False | List of [Category objects](#category) |
| imageURL | String | False | The URL of the main image for this product. |
| price | Number | False | The current price of the product. |
| oldPrice | Number | False | The original price of the product, usually before discounts or promotions. |
| brand | String | False | Name of the product's brand. |
| description | String | False | Textual description of the product. |
| available | Boolean | False | Indication whether the product is in stock. |
| availableQuantity | Number | False | Current stock of the product. |
| rating | Number | False | Rating (usually from 0 to 5, but can be any number) attributed to the product. |
| tags | Array | False | List of tags (as Strings) for this product. |
| typePrefix | String | False | Product type, such as `mobile phone` or `washing machine`. Used by search algorithms. |
| merchantID | String | False | Seller / merchant ID of this product if your website operates a marketplace. |
| groupId | String | False | Use this field to combine product variants into one group. |
| model | String | False | Model of the product. |
| leftovers | String | False | Inventory for a particular product. Use one of the following values: `one` (one copy available), `few` (limited quantities, up to 10 units), or `lot` (10 or more units available). |
| priceMargin | Number | False | A weighting factor of the product price margin, between 0 and 100. |
| isFashion | Boolean | False | Set to `true` for clothing products. |
| isChild | Boolean | False | Use this field if child product. |
| isNew | Boolean | False | Use this field if new product. |
| accessories | Array | False | Array of product IDs that can be complementary or equivalent to the current product. |
| seasonality | Array | False | Array of integers (months: 1-12). |
| params | Array | False | List of [Param objects](#param) |
| fashion | Object | False | [Fashion object](#fashion) |
| auto | Object | False | [Auto object](#auto) |

## Category

**Properties**

| Name | Type | Required | Description |
| - | - | - | - |
| id | String | True | Unique ID of the category. |
| name | String | False | Name of the category. |
| parent | String | False | Unique ID of the parent category. |
| url | String | False | The URL of the category. |

## Param

An optional generic field that allows you to upload custom information about a product that doesn't fit in other fields.
For example, this information could be the membership status required to buy a product or departure and return dates for a travel circuit.

**Properties**

| Name | Type | Required | Description |
| - | - | - | - |
| name | String | True | Name of the param. |
| value | Array | True | List of value (as Strings). |
| unit | String | False | Use two-character abbreviations for SI units, such as cm (centimeters), wt (watts), or gr (grams). |

## Fashion

An optional generic field that allows you to upload custom information about the product.

**Properties**

| Name | Type | Description |
| - | - | - |
| gender | String | Must be “f” (Female) or “m” (Male). |
| type | String | Product type. Possible values: `shoe`, `shirt`, `tshirt`, `underwear`, `trouser`, `jacket`, `blazer`, `sock`, `belt`, `hat`, `glove`. |
| feature | String | Use this field to indicate if the product is for adults or kids only. Must take the value “child” or “adult”. |
| colors | Array | List of [Color objects](#color). |

## Color

**Properties**

| Name | Type | Description |
| - | - | - |
| color | String | Product colors. |
| picture | String | The URL of the picture. |

## Auto

An optional generic field that allows you to upload custom information about the product.

**Properties**

| Name | Type | Description |
| - | - | - |
| vds | Array | Array that contains the Vehicle Identification Numbers (VIN) that serves as the car’s fingerprint. |
| compatibility | Array | Contains a list of [Compatible objects](#compatible) |

## Compatible

**Properties**

| Name | Type | Required | Description |
| - | - | - | - |
| brand | String | True | Car brand name. |
| model | String | False | Car model name. |
