@lambdacurry/medusa-product-reviews
v1.3.0
Published
Product Reviews Plugin for Medusa
Downloads
1,610
Readme
@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 (
approved/pending/flagged) - Admin response management
- SDK for Store and Admin operations
Prerequisites
Installation and Configuration
- 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- Add to
medusa-config.ts:
module.exports = defineConfig({
plugins: [
{
resolve: '@lambdacurry/medusa-product-reviews',
options: {
defaultReviewStatus: 'pending', // OPTIONAL, default is 'approved'
},
},
],
});- Run migrations:
yarn medusa db:migrateUsing 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
);
await sdk.admin.productReviews.deleteResponse(
productReviewId: string
);Review Workflow
Creation: Reviews are set to:
approvedstatus by defaultpendingstatus ifdefaultReviewStatus: 'pending'is set in plugin options
Moderation: Admins can:
- List and filter reviews
- Update review status (approve/flag)
- Manage responses (create/update/delete)
Available Endpoints
Admin Endpoints
GET /admin/product-reviews- List all reviewsPOST /admin/product-reviews/:id/response- Add a responsePUT /admin/product-reviews/:id/response- Update responseDELETE /admin/product-reviews/:id/response- Delete responsePUT /admin/product-reviews/:id/status- Update status
Store Endpoints
GET /store/product-reviews- List reviewsPOST /store/product-reviews- Create/Update reviewGET /store/product-review-stats- Get statistics
Local Development
IMPORTANT: A running PostgreSQL instance is required. The plugin expects
DB_USERNAMEandDB_PASSWORDenvironment 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:generateInstalling 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 installCompatibility
This plugin is compatible with versions >= 2.5.0 of @medusajs/medusa.
License
MIT License
