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

# CrossmintCheckoutLineItem

> Flutter Sealed Class

**Sealed Class**

A single asset to purchase in a checkout order.

```dart theme={null}
sealed class CrossmintCheckoutLineItem
```

Use the named factory constructors to create line items:

* `CrossmintCheckoutLineItem.collection` — primary sale from a managed or
  imported collection. Supports optional `callData` for contract mint args.
* `CrossmintCheckoutLineItem.token` — secondary sale of a specific token,
  with optional `callData` for contract arguments.
* `CrossmintCheckoutLineItem.tokenWithExecutionParameters` — secondary sale
  (e.g. memecoin swap) with execution parameters controlling amount, mode,
  and slippage. Mutually exclusive with `callData`.
* `CrossmintCheckoutLineItem.product` — product-based purchase using a
  Crossmint product locator.
* `CrossmintCheckoutLineItem.raw` — forward-compatible escape hatch for
  line-item shapes not yet modeled by the SDK.

## Constructors

### CrossmintCheckoutLineItem

```dart theme={null}
const CrossmintCheckoutLineItem()
```

### CrossmintCheckoutLineItem.collection

```dart theme={null}
factory CrossmintCheckoutLineItem.collection({
  required String collectionLocator,
  Map<String, Object?>? callData,
  Map<String, Object?> additionalFields,
}) = CrossmintCheckoutCollectionLineItem
```

Creates a collection line item for primary sales.

### CrossmintCheckoutLineItem.token

```dart theme={null}
factory CrossmintCheckoutLineItem.token({
  required String tokenLocator,
  Map<String, Object?>? callData,
  Map<String, Object?> additionalFields,
}) = CrossmintCheckoutTokenLineItem
```

Creates a token line item for secondary sales with optional `callData`.

### CrossmintCheckoutLineItem.tokenWithExecutionParameters

```dart theme={null}
factory CrossmintCheckoutLineItem.tokenWithExecutionParameters({
  required String tokenLocator,
  required Map<String, Object?> executionParameters,
  Map<String, Object?> additionalFields,
}) = CrossmintCheckoutTokenExecutionLineItem
```

Creates a token line item with execution parameters for secondary sales (e.g. memecoins with slippage and amount control).

### CrossmintCheckoutLineItem.product

```dart theme={null}
factory CrossmintCheckoutLineItem.product({
  required String productLocator,
  Map<String, Object?> additionalFields,
}) = CrossmintCheckoutProductLineItem
```

Creates a product line item identified by a Crossmint `productLocator`. Use this for catalog-managed product purchases where the price and SKU are resolved server-side from the locator.

### CrossmintCheckoutLineItem.raw

```dart theme={null}
factory CrossmintCheckoutLineItem.raw({required Map<String, Object?> value}) =
CrossmintCheckoutRawLineItem
```

Forward-compatible escape hatch — passes `value` verbatim to the Crossmint orders API as the line item shape. Use when a new line-item field is not yet modeled by the typed factories above.
