# Products — Open Product List

The LiSA Player dispatches a message when a user opens the product list.

This message is sent by the LiSA Player to the host app / environment.

### Properties

Along with all standard [Message properties](https://docs.hello-lisa.com/developers/guides/player-communication/message-api-reference/..#properties), a **Open Product List** message includes the following additional properties:

<table><thead><tr><th width="220" valign="top">Name</th><th width="175" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>auxiliaryData</code></td><td valign="top"><pre><code>AuxiliaryData
</code></pre><p>Required.</p></td><td valign="top">The <code>auxiliaryData</code> property is an object that holds additional metadata related to the open product list event. <br><br>Please refer to <a href="#productlisauxiliarydata"><code>AuxiliaryData</code></a> for detailed information.</td></tr><tr><td valign="top"><code>mediaItemId</code></td><td valign="top"><pre><code>string
</code></pre><p>Required.</p></td><td valign="top">The <code>mediaItemId</code> property uniquely identifies the Media Item from which this message originates.</td></tr><tr><td valign="top"><code>mediaItemType</code></td><td valign="top"><pre><code>MediaItemType
</code></pre><p>Required.</p></td><td valign="top">The <code>mediaItemType</code> property specifies the type of Media Item from which this message originates.<br><br>Refer to <a href="../../media-item#media-item-type"><code>MediaItemType</code></a> for detailed information.</td></tr><tr><td valign="top"><code>messageType</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>lsc:products:open</code></td></tr></tbody></table>

***

### Type Definition

```typescript
interface ProductListOpenMessage extends Omit<
  Message,
  'messageType' | 'sender'
> {
  auxiliaryData: ProductListAuxiliaryData;
  mediaItemId: string;
  mediaItemType: MediaItemType;
  messageType: 'lsc:products:open';
  sender: 'LiSA';
}
```

#### `ProductListAuxiliaryData`

<table><thead><tr><th width="196" valign="top">Name</th><th width="192" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>products</code></td><td valign="top"><pre><code>Object
</code></pre><p>Required.</p></td><td valign="top">The <code>products</code> field specifies a map of product identifiers, where each <code>key</code> represents the external or merchant-specific identifier for the product and its corresponding value represents the LiSA internal product identifier.</td></tr></tbody></table>

```typescript
interface ProductListAuxiliaryData {
  products: Record<string, string>;
}
```

***

### Examples

```json
{
  "auxiliaryData": {
    "products": {
      "9caf4704-ec2f-438b-8b18-128a9ba22fda": "6052b475-b887-4d84-8f83-7797c7790dbd"
    }   
  },
  "clockDriftInMs": 0,
  "mediaItemId": "9f333331-45cb-4289-8bcd-9023c1871111",
  "mediaItemType": "live",
  "messageType": "lsc:product:open",
  "progress": {
    "bufferedTimeInMs": 648036,
    "currentTimeInMs": 628008,
    "durationInMs": 4616000,
    "elapsedTimeInMs": 28784,
    "skipTimeInMs": 600000,
    "isLive": true,
    "visitorDwellTimeInMs": 29135,
    "isPlaying": true
  },
  "sender": "LiSA"
}
```
