December 3, 2025·Product
Integrate Strapi with Medusa
Shahed Nasser
Shahed Nasser
Learn how to connect Medusa with Strapi, sync data between the systems, and show data from Strapi on the storefront.

Medusa provides businesses with powerful commerce features and a robust framework that facilitates orchestration across systems. With Medusa, developers can build complex and sophisticated commerce ecosystems tailored to specific business use cases.
Strapi is an open-source content management system (CMS) that provides features like internationalization, custom content types, and content history. By integrating Medusa with Strapi, you benefit from rich commerce and CMS capabilities for your business.
Integrate Strapi with Medusa
Follow this step-by-step guide
Sync Data Between Systems
Medusa’s events and workflows architecture allows developers to reliably automate data syncing between systems. When products are created in Medusa, you can handle the relevant product events to create the corresponding data using Strapi’s APIs.

Similarly, you can use Strapi’s webhooks feature to push updates from Strapi to Medusa. This ensures your data remains consistent across systems while leveraging each system’s powerful features. On the storefront, you can display data from both systems with a single query to Medusa.
Optimized Data Retrieval Across Systems
Medusa’s linking and query features streamline retrieving data across systems. Instead of retrieving data from Medusa, then retrieving data from Strapi, and finally joining these datasets manually, Medusa allows you to retrieve the combined data in a single query.
Create a virtual link from Medusa’s Product data model to Strapi’s custom Product content type. Then, you can query a product’s Strapi details in your customizations or API calls to the Medusa server. Medusa will handle querying data from Strapi and joining it into the Medusa response.
1234567891011121314151617181920export default defineLink({linkable: ProductModule.linkable.product,field: "id",},{linkable: {serviceName: STRAPI_MODULE,alias: "strapi_product",primaryKey: "product_id",},},{readOnly: true,},);// in API routeconst { data: products } = await query.graph({entity: "product",
Tutorial: Integrate Strapi with Medusa
In this new tutorial in our documentation, learn how to integrate Strapi with Medusa:
- Set up a Strapi module that connects to Strapi’s APIs.
- Handle product events in Medusa to sync data to Strapi.
- Handle webhook requests from Strapi to sync data to Medusa.
- Customize the Next.js Starter Storefront to show product content data from Strapi.



