Medusa Recommend Product Plugin
The Medusa Recommend Product Plugin is a powerful tool for managing product recommendations within your Medusa e-commerce platform. This plugin allows you to add, view, and manage product recommendations easily, enhancing the user experience by suggesting related or popular products to your customers.
Table of Contents
Installation
To install the plugin, use the following command:
1npm install medusa-recommend-product-plugin
Usage
Register the Plugin
To activate the plugin, you need to add it to the list of plugins in your Medusa configuration file (Copy to clipboard
medusa-config.js
).- Open Copy to clipboard
medusa-config.js
. - Locate the Copy to clipboard
plugins
array. - Add the plugin configuration as shown below:
123456789const plugins = [// other plugins{resolve: "medusa-recommend-product-plugin",options: {enableUI: true, // Enables the admin UI for managing recommendations},},];
Run Migrations
After registering the plugin, run the migrations to set up the necessary database tables:
1npx medusa migrations run
Admin Panel Features
Once the plugin is set up and migrations are run, you can manage product recommendations directly from the Medusa admin panel:
- View Recommendations: On the product details page, you can view the list of current recommendations.
- Add New Recommendations: Easily add new product recommendations through a simple interface.
API Reference
Store API
The Store API provides endpoints for retrieving product recommendations for customers.
Get Product Recommendations
Retrieve the list of recommendations for a specific product.
- URL: Copy to clipboard
/api/store/products/{productId}/recommendations
- Method: Copy to clipboard
GET
- Content-Type: Copy to clipboard
application/json
Query Parameters
Name | Type | Description |
---|---|---|
Copy to clipboardproductId | string | The ID of the product for which to retrieve recommendations. |
Response
Name | Type | Description |
---|---|---|
Array of Recommendations | object | List of recommended products. |
Example Request
1curl -X GET "https://your-medusa-url.com/api/store/products/123/recommendations"
Example Response
1234567891011121314[[{"id": "recommendation_.....","recommendedProduct": [{"id": "prod1","name": "Product 1","description": "This is product 1",...}],"forProductId":"product_1"},]]
Admin API
The Admin API provides endpoints for managing product recommendations from the admin panel.
Create Product Recommendations
Create new recommendations for a specific product.
- URL: Copy to clipboard
/api/admin/recommendations
- Method: Copy to clipboard
POST
- Content-Type: Copy to clipboard
application/json
Request Body
Name | Type | Description |
---|---|---|
Copy to clipboardforProductId | string | The ID of the product to add recommendations for. |
Copy to clipboardrecommendedProducts | string[] | A list of product IDs to recommend. |
Example Request
123456curl -X POST "https://your-medusa-url.com/api/admin/recommendations" \-H "Content-Type: application/json" \-d '{"forProductId": "prod1","recommendedProducts": ["prod2", "prod3"]}'
Example Response
1234567891011121314{"data": [{"id": "recommendation_.....","recommendedProduct": [{"id": "prod1","name": "Product 1","description": "This is product 1",...}],"forProductId":"product_1"},]}
Delete Product Recommendations
Delete specific recommendations for a product.
- URL: Copy to clipboard
/api/admin/recommendations
- Method: Copy to clipboard
DELETE
- Content-Type: Copy to clipboard
application/json
Request Body
Name | Type | Description |
---|---|---|
Copy to clipboardrecommendationIds | string[] | The list of recommendation IDs to delete. |
Example Request
12345curl -X DELETE "https://your-medusa-url.com/api/admin/recommendations" \-H "Content-Type: application/json" \-d '{"recommendationIds": ["rec1", "rec2"]}'
Example Response
123{"success": true}
Error Handling
All API responses include standardized error handling to help you debug and handle errors effectively.
Error Response Format
Error responses are structured in the following format:
12345678910111213{"message": "Error message describing the issue.","code": "Error code","errors": [{"field": "Field that caused the error","message": "Detailed message about the error"}],"payload": {// Additional error-related data, if applicable}}
Common Error Codes
- Copy to clipboard
INTERNAL_SERVER_ERROR
: An unexpected error occurred on the server. - Copy to clipboard
VALIDATION_ERROR
: Input data failed validation. - Copy to clipboard
BAD_REQUEST
: The request was malformed or invalid. - Copy to clipboard
NOT_FOUND
: The requested resource was not found. - Copy to clipboard
UNPROCESSABLE_ENTITY_ERROR
: The server understood the request but could not process it.
Example Error Messages
- Copy to clipboard
recommendationAlreadyExist
: "This product already has a recommendation associated with the recommended product." - Copy to clipboard
recommendationNotFound
: "Recommendation not found for the provided ID." - Copy to clipboard
noDuplicateProdRecommendation
: "You cannot create multiple recommendations for the same product with the same recommended product."
License
This plugin is licensed under the MIT License. For more details, refer to the LICENSE file.