medusa-plugin-reviews
Copy to clipboardWork in progress!!
Product reviews plugin for Medusa ecommerce server.
Configuration
Enable in your medusa-config.js file similar to other plugins:
1234const plugins = [// ... other plugins`medusa-plugin-product-reviews`,]
Usage
In your MedusaJS backend you can add a new API endpoint to handle reviews.
A small example how this could be done.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import express, { Router } from "express"import cors from "cors"// @ts-ignoreimport { projectConfig } from "../../medusa-config"export default () => {const router = Router()const storeCorsOptions = {origin: projectConfig.store_cors.split(","),credentials: false,}router.use(express.json())router.use(express.urlencoded({ extended: true }))router.get("/store/products/:id/reviews", cors(storeCorsOptions), (req, res) => {const productReviewService = req.scope.resolve("reviewService")productReviewService.getProductReviews(req.params.id).then((product_reviews) => {return res.json({product_reviews})})})router.options("/store/products/:id/reviews", cors(storeCorsOptions))router.post("/store/products/:id/reviews", cors(storeCorsOptions), (req, res) => {const productReviewService = req.scope.resolve("reviewService")productReviewService.addProductReview(req.params.id, req.body.data).then((product_review) => {return res.json({product_review})})})// This is an example of how to add a new endpoint for the admin to gather reviews and display them in on the product page.const corsOptions = {origin: projectConfig.admin_cors.split(","),credentials: true,}router.options("/admin/products/:id/reviews", cors(corsOptions))router.get("/admin/products/:id/reviews", cors(corsOptions), async (req, res) => {const productReviewService = req.scope.resolve("reviewService")productReviewService.getProductReviews(req.params.id).then((product_reviews) => {return res.json({product_reviews})})})return router;}