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

# Checkout Initiated

## Checkout Initiated (`checkout_initiated`)

**Purpose:**
Track when a user begins the checkout process by viewing the checkout page or proceeding to the payment step.

**When to Fire:**
Immediately upon rendering the checkout page or opening the checkout modal.

**Payload Schema:**

| Field                     | Type             | Description                                                                                     |
| ------------------------- | ---------------- | ----------------------------------------------------------------------------------------------- |
| `total_value`             | number           | Total cart value (`totalValue`, typically `cart_amount`).                                       |
| `total_quantity`          | number           | Total number of items in the cart.                                                              |
| `cart_id`                 | string           | Unique identifier for the cart session.                                                         |
| `products`                | array of objects | List of cart items, each with detailed fields:                                                  |
|   – `sku`                 | string           | Product SKU.                                                                                    |
|   – `variant_sku`         | string           | Selected variant SKU.                                                                           |
|   – `product_category`    | array of objects | Category hierarchy, each `{ id, name, provider_id }`.                                           |
|   – `mode`                | string           | Origin of the item addition (`"widget"`, `"search"`, `"category"`, `"collection"`, `"direct"`). |
|   – `search_term`         | string           | User search input if applicable.                                                                |
|   – `search_location`     | string           | `"quick"` or `"page"` if from search.                                                           |
|   – `category`            | string           | Category ID or name if from category.                                                           |
|   – `collection`          | string           | Collection ID or name if from collection.                                                       |
|   – `total_value`         | number           | Extended sale price (`quantity * sale_price`).                                                  |
|   – `quantity`            | number           | Units of this SKU in the cart.                                                                  |
|   – `widget_rule`         | string           | Rule ID that applied.                                                                           |
|   – `widget_rule_type`    | string           | Type of rule.                                                                                   |
|   – `widget_id`           | string           | Widget instance ID if relevant.                                                                 |
|   – `widget_context_type` | string           | Context entity type.                                                                            |
|   – `widget_context_data` | string           | Additional context payload.                                                                     |
|   – `facets`              | array            | Active filters on the cart page.                                                                |
|   – `product_option`      | array of objects | Selected product options per item, each `{ name, value }`.                                      |
|  – `request_id`           | string           | Unique identifier                                                                               |
|  – `page_depth`           | string           | Current page number (1, 2, 3, etc.).                                                            |

**Example:**

```js theme={null}
// After loading checkout data:
const cart = {
  id: 'CART-789',
  cart_amount: 180.00,
  total_quantity: 1,
  items: [
    {
      sku: 'PROD-001',
      variant_sku: 'PROD-001-BLUE',
      product_category: [{ id: 'apparel', name: 'Apparel', provider_id: 'prov1' }],
      total_value: 129.99,
      quantity: 1,
      mode: 'direct',
      mode_details: {
       search_term: 'jack',
       search_location: 'page',
       search_source: 'search_suggestion',
       used_suggestion: 'jacket',
       category: null,
       collection: null,
       widget_rule: null,
       widget_rule_type: null,
       widget_id: null,
       widget_context_type: 'direct',
       widget_context_data: '',
       request_id: requestId,
       page_depth: currentPage,
       facets: [],
      },
      product_option: [{ name: 'Size', value: 'M' }]
    }
  ]
};


ExpAnalyticsService.trackCheckoutInitiated({
    total_value: cart.cart_amount,
    total_quantity: cart.total_quantity,
    cart_id: cart.id,
    products: cart.items || [],
});
```
