## Overview

The Checkout event represents the customer journey as they navigate through the checkout process.




## trackCheckoutStarted: ([Order](🔗), Optional\[[Product](🔗)], Optional\[[Strict](🔗)])

An event triggered once the checkout process begins for the customer, typically on the page, the customer navigates to after pressing the checkout button.

#### Parameters

ParameterData typeDescription
`order` <span style="color:red">required</span>_object_The order associated with this checkout.
'product\` _optional__array_Products that are a part of the order.
`strict` _optional__boolean_True/False flag for ensuring the `currency`, `orderID`, `paymentMethod`, and total are sent in the `Order` object. This value must be true in order to use the new Enhanced Analytics implementation.

#### Example





## trackCheckoutStepViewed (Integer, [Order](🔗), Optional\[[Strict](🔗)])

An event triggered when the customer views a distinct checkout step that is part of the checkout process.

#### Parameters

ParameterData typeDescription
`step` <span style="color:red">required</span>_integer_An incrementing number representing the current step in the checkout process.
`order` <span style="color:red">required</span>_object_The order associated with this checkout.
<a name="strict"></a> `strict` _optional__boolean_True/False flag for ensuring the `currency`, `orderID`, `paymentMethod`, and total are sent in the `Order` object. This value must be true in order to use the new Enhanced Analytics implementation.

#### Example





## trackCheckoutStepCompleted (Integer, [Order](🔗), Optional\[[Strict](🔗)])

An event triggered when the customer completes a distinct checkout step that is part of the checkout process.

#### Parameters

ParameterData typeDescription
`step` <span style="color:red">required</span>_integer_An incrementing number representing the current step in the checkout process.
`order` <span style="color:red">required</span>_object_The order associated with this checkout.
`strict` _optional__boolean_True/False flag for ensuring the `currency`, `orderID`, `paymentMethod`, and total are sent in the `Order` object. This value must be true in order to use the new Enhanced Analytics implementation.

#### Example





## trackCheckoutPaymentOrdered (Integer, [Order](🔗), Optional\[[Strict](🔗)])

An event triggered when the customer completes a distinct checkout step that is part of the checkout process.

#### Parameters

ParameterData typeDescription
`step` <span style="color:red">required</span>_integer_An incrementing number representing the current step in the checkout process.
`order` <span style="color:red">required</span>_object_The order associated with this checkout.
`strict` _optional__boolean_True/False flag for ensuring the `currency`, `orderID`, `paymentMethod`, and total are sent in the `Order` object. This value must be true in order to use the new Enhanced Analytics implementation.



## Objects

### Order 

Represents a single customer's checkout transaction. This includes parameters related to the transaction once the customer completes their checkout.

ParameterColumn Title
Description
**storeName** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `osn`The name of the store responsible for this transaction. (e.g., Affirm Store).
checkoutId _optional__string_ **Maximum length**: 500 **Protocol parameter**: `oci`A unique identifier representing the checkout, if it is conceptually distinct from an order. Otherwise only the `orderId` is necessary.
**couponCode** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `occ`The coupon code applied to the order (e.g., SUMMER2018).
**currency ** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `occ`The local currency for all transaction currency values. Value should be a [valid subset](🔗) of [ISO 4217](🔗) currency code.
**discount ** _optional__integer_ **Protocol parameter**: `od`The total discount associated with the transaction. The value must be non-negative and represented in minor units, such as cents instead of dollars.
**orderID ** _optional__string_ **Maximum length**: 500 **Protocol parameter**: `ooi`A unique identifier representing the order/transaction.
**paymentMethod** _optional__string_ **Maximum length**: 150 **Protocol parameter**: `opm`The payment method chosen by the customer for the transaction (e.g., Visa).
**revenue** _optional__integer_ **Protocol parameter**: `or`Revenue associated with transaction, excluding shipping, total tax and discounts. The value must be non-negative and represented as cents instead of dollars.
**shipping** _optional__integer_ **Protocol parameter**: `os`The shipping cost associated with the transaction.
**shippingMethod** _optional__string_ **Maximum length**: 150 **Protocol parameter**: `osm`The shipping method chosen by the customer for the transaction (e.g., Fedex).
**tax** _optional__integer_ **Protocol parameter**: `otx`The total tax associated with the transaction. The value must be non-negative and represented as cents instead of dollars.
**total** _optional__integer_ **Protocol parameter**: `ot`The total value of the transaction, including tax and shipping. If not sent, this value will be automatically calculated using the product quantity and price fields of all products in the same hit. The value must be non-negative and represented as cents instead of dollars.



### 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`[currency code](🔗) associated with this product (USD).