Product Details Data & Events
The Product Details drop-in uses the event bus to emit and listen to events for communication between drop-ins and external integrations.
Version: 3.0.1
Events reference
Section titled “Events reference”| Event | Direction | Description |
|---|---|---|
| pdp/valid | Emits | Emitted when validation state changes. |
| pdp/setValues | Listens | Fired by Pdp (pdp) when values are set programmatically. |
| pdp/data | Emits and listens | Triggered when data is available or changes. |
| pdp/values | Emits and listens | Triggered when form or configuration values change. |
Event details
Section titled “Event details”The following sections provide detailed information about each event, including its direction, event payload, and usage examples.
pdp/data (emits and listens)
Section titled “pdp/data (emits and listens)”Triggered when data is available or changes.
Event payload
Section titled “Event payload”ProductModel | nullSee ProductModel for full type definition.
Example
Section titled “Example”import { events } from '@dropins/tools/event-bus.js';
events.on('pdp/data', (payload) => { console.log('pdp/data event received:', payload); // Add your custom logic here});pdp/setValues (listens)
Section titled “pdp/setValues (listens)”Fired by Pdp (pdp) when values are set programmatically.
Event payload
Section titled “Event payload”Example
Section titled “Example”import { events } from '@dropins/tools/event-bus.js';
events.on('pdp/setValues', (payload) => { console.log('pdp/setValues event received:', payload); // Add your custom logic here});pdp/valid (emits)
Section titled “pdp/valid (emits)”Emitted when validation state changes.
Event payload
Section titled “Event payload”booleanExample
Section titled “Example”import { events } from '@dropins/tools/event-bus.js';
events.on('pdp/valid', (payload) => { console.log('pdp/valid event received:', payload); // Add your custom logic here});pdp/values (emits and listens)
Section titled “pdp/values (emits and listens)”Triggered when form or configuration values change.
Event payload
Section titled “Event payload”ValuesModelSee ValuesModel for full type definition.
Example
Section titled “Example”import { events } from '@dropins/tools/event-bus.js';
events.on('pdp/values', (payload) => { console.log('pdp/values event received:', payload); // Add your custom logic here});Data Models
Section titled “Data Models”The following data models are used in event payloads for this drop-in.
ProductModel
Section titled “ProductModel”Used in: pdp/data.
interface ProductModel { name: string; sku: string; isBundle: boolean; addToCartAllowed: boolean; inStock: boolean | null; shortDescription?: string; metaDescription?: string; metaKeyword?: string; metaTitle?: string; description?: string; images?: Image[]; prices: Prices; attributes?: Attribute[]; options?: Option[]; optionUIDs?: string[]; url?: string; urlKey?: string; externalId?: string; externalParentId?: string; variantSku?: string; productType?: ProductType | undefined;}ValuesModel
Section titled “ValuesModel”Used in: pdp/values.
interface ValuesModel { sku: string; quantity: number; optionsUIDs?: string[]; enteredOptions?: Array<{ uid: string; value: string }>;}