# Line Item Data

A line item is used to describe a single, specific instance of a purchasable item as it appears within a transaction, such as a shopping cart, an order, or a return.

Line items are only used within transactional interactions, specifically:

- [Cart interactions](/docs/data/salesforce-interactions-sdk/guide/c360a-api-cart-interaction.md)
- [Order interactions](/docs/data/salesforce-interactions-sdk/guide/c360a-api-order-interaction.md)

## Line Item Object Structure

Line item objects are typically passed as an array (even if only one item is present) under the `lineItems` property of the main event payload.

| Field               | Type   | Description                                                                                    |
| ------------------- | ------ | ---------------------------------------------------------------------------------------------- |
| `catalogObjectType` | string | **Required**. The type of catalog object being referenced (for example, `Product`, `Service`). |
| `catalogObjectId`   | string | **Required**. The unique identifier for the specific item (such as, `SKU`).                    |
| `quantity`          | number | **Required**. The number of units of this item in the transaction.                             |
| `price`             | number | The unit price of the item.                                                                    |
| `currency`          | string | The currency code for the price field (for example, `USD`, `EUR`).                             |
| `attributes`        | object | An object for any custom data specific to this line item.                                      |

| Field               | Type   | Description                                                                                    |
| ------------------- | ------ | ---------------------------------------------------------------------------------------------- |
| `attributes`        | object | An object for any custom data specific to this line item.                                      |
| `catalogObjectId`   | string | **Required**. A unique identifier representing the catalog object referenced in the line item. |
| `catalogObjectType` | string | **Required**. A name representing the catalog object referenced in the line item.              |
| `currency`          | string | The currency of the price field.                                                               |
| `price`             | number | The price of the catalog object referenced in the line item.                                   |
| `quantity`          | number | **Required**. The number of catalog objects in this line item.                                 |

## Example: Line Item in a Cart Interaction

This example shows how a line item is structured when used within a Cart View interaction, typically defined within a Sitemap to collect cart details on the cart page.

```javascript
// This data would be collected and sent via SalesforceInteractions.sendEvent()
{
   interaction: {
        name: 'View Cart',
        lineItems: [
            // First Line Item
            {
                catalogObjectType: "Product",
                catalogObjectId: "product-1",
                quantity: 1,
                price: 9.99,
                currency: "USD",
                attributes: {
                    giftWrapping: true // Custom attribute for this specific item
                }
            },
            // Second Line Item
            {
                catalogObjectType: "Product",
                catalogObjectId: "product-x",
                quantity: 2,
                price: 15.00,
                currency: "USD"
            }
        ]
   }
}
```

**See Also**

- [Translation of SDK Events to Web Connector Schemas](/docs/data/salesforce-interactions-sdk/guide/c360a-api-translating-sdk-events-to-web-connector-schemas.md)
- [Custom Events](/docs/data/salesforce-interactions-sdk/guide/c360a-api-custom-events.md)
