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

# ProductMessage

[Wapi.js Docs](../README.mdx) / ProductMessage

# Class: ProductMessage

Represents a product interaction message.

## Implements

## Extends

* [`InteractiveMessage`](InteractiveMessage.mdx)

## Implements

* [`ProductMessageMessageInterface`](../interfaces/ProductMessageMessageInterface.mdx)

## Constructors

### new ProductMessage()

> **new ProductMessage**(`params`): [`ProductMessage`](ProductMessage.mdx)

Creates an instance of ProductInteractionMessage.

#### Parameters

• **params**

The parameters for creating the product interaction message.

• **params.bodyText**: `string`

The body text of the message.

• **params.buttonText**: `string`

The button text of the message.

• **params.catalogId**: `string`

The catalog ID of the product.

• **params.footerText?**: `string`

The footer text of the message.

• **params.productRetailerId**: `string`

The product retailer ID of the product.

#### Returns

[`ProductMessage`](ProductMessage.mdx)

#### Overrides

[`InteractiveMessage`](InteractiveMessage.mdx).[`constructor`](InteractiveMessage.mdx#constructors)

#### Memberof

ProductInteractionMessage

#### Source

[packages/wapi.js/src/structures/product/index.ts:38](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/product/index.ts#L38)

## Properties

### data

> **data**: `object`

#### catalogId

> **catalogId**: `string`

#### productRetailerId

> **productRetailerId**: `string`

#### Implementation of

[`ProductMessageMessageInterface`](../interfaces/ProductMessageMessageInterface.mdx).[`data`](../interfaces/ProductMessageMessageInterface.mdx#data)

#### Source

[packages/wapi.js/src/structures/product/index.ts:22](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/product/index.ts#L22)

***

### interactiveMessageData

> `readonly` **interactiveMessageData**: `object`

#### bodyText

> **bodyText**: `string`

#### footerText?

> `optional` **footerText**: `string`

#### header?

> `optional` **header**: `object` | `object` | `object` | `object`

#### type

> **type**: [`InteractiveMessageTypeEnum`](../enumerations/InteractiveMessageTypeEnum.mdx)

#### Implementation of

[`ProductMessageMessageInterface`](../interfaces/ProductMessageMessageInterface.mdx).[`interactiveMessageData`](../interfaces/ProductMessageMessageInterface.mdx#interactivemessagedata)

#### Inherited from

[`InteractiveMessage`](InteractiveMessage.mdx).[`interactiveMessageData`](InteractiveMessage.mdx#interactivemessagedata)

#### Source

[packages/wapi.js/src/structures/interaction/index.ts:31](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/interaction/index.ts#L31)

***

### messaging\_product

> **messaging\_product**: `"whatsapp"`

The messaging product.

#### Implementation of

[`ProductMessageMessageInterface`](../interfaces/ProductMessageMessageInterface.mdx).[`messaging_product`](../interfaces/ProductMessageMessageInterface.mdx#messaging_product)

#### Inherited from

[`InteractiveMessage`](InteractiveMessage.mdx).[`messaging_product`](InteractiveMessage.mdx#messaging_product)

#### Source

[packages/wapi.js/src/structures/message/index.ts:17](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/message/index.ts#L17)

***

### recipient\_type

> **recipient\_type**: `"individual"`

The recipient type.

#### Implementation of

[`ProductMessageMessageInterface`](../interfaces/ProductMessageMessageInterface.mdx).[`recipient_type`](../interfaces/ProductMessageMessageInterface.mdx#recipient_type)

#### Inherited from

[`InteractiveMessage`](InteractiveMessage.mdx).[`recipient_type`](InteractiveMessage.mdx#recipient_type)

#### Source

[packages/wapi.js/src/structures/message/index.ts:18](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/message/index.ts#L18)

***

### type

> **type**: `MessageTypeEnum`

The type of the message.

#### Implementation of

[`ProductMessageMessageInterface`](../interfaces/ProductMessageMessageInterface.mdx).[`type`](../interfaces/ProductMessageMessageInterface.mdx#type-1)

#### Inherited from

[`InteractiveMessage`](InteractiveMessage.mdx).[`type`](InteractiveMessage.mdx#type-1)

#### Source

[packages/wapi.js/src/structures/message/index.ts:16](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/message/index.ts#L16)

## Methods

### addFooter()

> **addFooter**(`footerText`): `void`

Adds a footer to the message.

#### Parameters

• **footerText**: `string`

The footer text to be added.

#### Returns

`void`

#### Source

[packages/wapi.js/src/structures/product/index.ts:65](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/product/index.ts#L65)

***

### addHeader()

> **addHeader**(): `void`

Adds a header to the message.

#### Returns

`void`

#### Source

[packages/wapi.js/src/structures/product/index.ts:59](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/product/index.ts#L59)

***

### parseConstructorPayload()

> `protected` **parseConstructorPayload**(`schema`, `payload`): `any`

Parses the constructor payload using the provided schema.

#### Parameters

• **schema**: `ZodType`\<`any`, `ZodTypeDef`, `any`>

The Zod schema used for parsing the payload.

• **payload**: `any`

The payload to be parsed.

#### Returns

`any`

The parsed data.

#### Inherited from

[`InteractiveMessage`](InteractiveMessage.mdx).[`parseConstructorPayload`](InteractiveMessage.mdx#parseconstructorpayload)

#### Throws

An error if the parsing fails.

#### Source

[packages/wapi.js/src/structures/message/index.ts:42](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/message/index.ts#L42)

***

### toJson()

> **toJson**(`params`): `object` & `object`

Converts the message to JSON format.

#### Parameters

• **params**

The parameters for converting the message to JSON.

• **params.replyToMessageId?**: `string`

The ID of the message to reply to.

• **params.to**: `string`

The recipient of the message.

#### Returns

`object` & `object`

The JSON representation of the message.

#### Overrides

[`InteractiveMessage`](InteractiveMessage.mdx).[`toJson`](InteractiveMessage.mdx#tojson)

#### Memberof

ProductInteractionMessage

#### Source

[packages/wapi.js/src/structures/product/index.ts:77](https://github.com/sarthakjdev/wapi.js/blob/1b066ed4efaf997a4bb012da51514dfcb4165da6/packages/wapi.js/src/structures/product/index.ts#L77)
