@lambdacurry/medusa-product-reviews

1.2.0 • Public • Published

@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

  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 medusa-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
);

await sdk.admin.productReviews.deleteResponse(
  productReviewId: string
);

Review Workflow

  1. Creation: Reviews are set to:

    • approved status by default
    • pending status if defaultReviewStatus: '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

  • GET /admin/product-reviews - List all reviews
  • POST /admin/product-reviews/:id/response - Add a response
  • PUT /admin/product-reviews/:id/response - Update response
  • DELETE /admin/product-reviews/:id/response - Delete response
  • PUT /admin/product-reviews/:id/status - Update status

Store Endpoints

  • GET /store/product-reviews - List reviews
  • POST /store/product-reviews - Create/Update review
  • GET /store/product-review-stats - Get statistics

Local Development

IMPORTANT: A running PostgreSQL instance is required. The plugin expects DB_USERNAME and DB_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 >= 2.5.0 of @medusajs/medusa.

License

MIT License

Package Sidebar

Install

npm i @lambdacurry/medusa-product-reviews

Weekly Downloads

181

Version

1.2.0

License

MIT

Unpacked Size

222 kB

Total Files

96

Last publish

Collaborators

  • jaruesink
  • dwene
  • cyberdude
  • bfunk54
  • antony-lambdacurry