Overview
Icon for Product Reviews

Product Reviews

Add ratings, reviews, and moderation to products

@lambdacurry/medusa-product-reviews

A plugin that adds product review and moderation capabilities to your Medusa application, with built-in admin responses and review statistics.

This plugin is part of the Medusa Plugins Collection.

Features

See a demo in our Medusa Starter
  • Product reviews with ratings
  • Review statistics and analytics
  • Review moderation workflow (Copy to clipboardapproved/Copy to clipboardpending/Copy to clipboardflagged)
  • Admin response management
  • SDK for Store and Admin operations

Prerequisites

Installation and Configuration

  1. Install the plugin:
yarn add @lambdacurry/medusa-product-reviews
# or, if you're using yarn workspaces
yarn workspace my-app add @lambdacurry/medusa-product-reviews
  1. Add to Copy to clipboardmedusa-config.ts:
module.exports = defineConfig({
plugins: [
{
resolve: '@lambdacurry/medusa-product-reviews',
options: {
defaultReviewStatus: 'pending', // OPTIONAL, default is 'approved'
},
},
],
});
  1. Run migrations:
yarn medusa db:migrate

Using the Plugin SDK

For detailed SDK setup and configuration, refer to the @lambdacurry/medusa-plugins-sdk README.

Store Operations

// List product reviews
const { reviews, count } = await sdk.store.productReviews.list(
query: StoreListProductReviewsQuery,
headers?: ClientHeaders
);
// Create/Update a review
const review = await sdk.store.productReviews.upsert(
data: StoreUpsertProductReviewsDTO,
headers?: ClientHeaders
);
// Get review statistics
const stats = await sdk.store.productReviews.listStats(
query: StoreListProductReviewStatsQuery,
headers?: ClientHeaders
);

Admin Operations

// List reviews
const { reviews, count } = await sdk.admin.productReviews.list(
query: AdminListProductReviewsQuery
);
// Update review status
const review = await sdk.admin.productReviews.updateStatus(
productReviewId: string,
status: 'pending' | 'approved' | 'flagged'
);
// Manage review responses
const review = await sdk.admin.productReviews.createResponse(
productReviewId: string,
data: AdminCreateProductReviewResponseDTO
);
await sdk.admin.productReviews.updateResponse(
productReviewId: string,
data: AdminUpdateProductReviewResponseDTO

Review Workflow

  1. Creation: Reviews are set to:
    • Copy to clipboardapproved status by default
    • Copy to clipboardpending status if Copy to clipboarddefaultReviewStatus: 'pending' is set in plugin options
  2. Moderation: Admins can:
    • List and filter reviews
    • Update review status (approve/flag)
    • Manage responses (create/update/delete)

Available Endpoints

Admin Endpoints

  • Copy to clipboardGET /admin/product-reviews - List all reviews
  • Copy to clipboardPOST /admin/product-reviews/:id/response - Add a response
  • Copy to clipboardPUT /admin/product-reviews/:id/response - Update response
  • Copy to clipboardDELETE /admin/product-reviews/:id/response - Delete response
  • Copy to clipboardPUT /admin/product-reviews/:id/status - Update status

Store Endpoints

  • Copy to clipboardGET /store/product-reviews - List reviews
  • Copy to clipboardPOST /store/product-reviews - Create/Update review
  • Copy to clipboardGET /store/product-review-stats - Get statistics

Local Development

IMPORTANT: A running PostgreSQL instance is required. The plugin expects Copy to clipboardDB_USERNAME and Copy to clipboardDB_PASSWORD environment variables to be set. If not provided, both default to "postgres".

Available scripts:

# Build the plugin
yarn build
# Development mode with hot-reload
yarn dev
# Publish to local registry for testing
yarn dev:publish
# Generate database migrations
yarn db:generate

Installing the plugin in your Medusa project for local development

After publishing the plugin locally by running yarn dev:publish, go to the root of your Medusa project and run the following commands:

cd path/to/your/medusa-application
yarn medusa plugin:add @lambdacurry/medusa-product-reviews
# If you are yarn with a monorepo, you may also need to run
yarn install

Compatibility

This plugin is compatible with versions Copy to clipboard>= 2.5.0 of Copy to clipboard@medusajs/medusa.

License

MIT License

You may also like

Browse all integrations

Build your own

Develop your own custom integraiton

Build your own integration with our API to speed up your processes. Make your integration available via npm for it to be shared in our Library with the broader Medusa community.

gift card interface

Ready to build your custom commerce setup?