# Checkout Tracking

## Checkout Tracking

Track each step of the checkout process using the `checkout` interaction type. This tracking allows you to understand user progress and potential drop-offs in multi-step checkout flows.

### Tracking Commands

* `product`
* `checkout`
* `submit`

### Example

```javascript
_jts.push({
  track: "product",
  type: "checkout",
  id: "12345567",
  name: "Product Name"
});

_jts.push({
  track: "checkout",
  step: 2,
  brutto: 199.99,
  netto: 179.99,
  shipping: 20.00,
  tax: 40.00,
  paytype: "creditcard"
});

_jts.push({
  track: "submit"
});
```

### Properties for `checkout`

| Name       | Description                         | Type    | Mandatory | Example      |
| ---------- | ----------------------------------- | ------- | --------- | ------------ |
| `step`     | Current checkout step number        | int     | yes       | `2`          |
| `brutto`   | Total price incl. VAT of cart items | decimal | no        | `199.99`     |
| `netto`    | Total price excl. VAT               | decimal | no        | `179.99`     |
| `shipping` | Shipping cost                       | decimal | no        | `20.00`      |
| `tax`      | Total taxes                         | decimal | no        | `40.00`      |
| `paytype`  | Selected payment method             | string  | no        | `creditcard` |

Ensure that the associated product objects use `type: "checkout"` and are pushed before the `checkout` interaction and `submit` command.
