Back to Medusa

{metadata.title}

www/apps/book/app/learn/fundamentals/events-and-subscribers/data-payload/page.mdx

2.14.21.9 KB
Original Source

import { TypeList } from "docs-ui"

export const metadata = { title: ${pageNumber} Event Data Payload, }

{metadata.title}

In this chapter, you'll learn how subscribers receive an event's data payload.

Access Event's Data Payload

When events are emitted, they’re emitted with a data payload.

The object that the subscriber function receives as a parameter has an event property, which is an object holding the event payload in a data property with additional context.

For example:

export const highlights = [ ["7", "event", "The event details."], ["8", "{ id: string }", "The type of expected data payloads."], ]

ts
import type {
  SubscriberArgs,
  SubscriberConfig,
} from "@medusajs/framework"

export default async function productCreateHandler({
  event,
}: SubscriberArgs<{ id: string }>) {
  const productId = event.data.id
  console.log(`The product ${productId} was created`)
}

export const config: SubscriberConfig = {
  event: "product.created",
}

The event object has the following properties:

<TypeList types={[ { name: "data", type: "object", description: "The data payload of the event. Its properties are different for each event." }, { name: "name", type: "string", description: "The name of the triggered event." }, { name: "metadata", type: "object", description: "Additional data and context of the emitted event.", optional: true }, ]} sectionTitle="Access Event's Data Payload" />

This logs the product ID received in the product.created event’s data payload to the console.

{/* ---

List of Events with Data Payload

Refer to this reference for a full list of events emitted by Medusa and their data payloads. */}