The reviews plugin add product reviews to Vendure.
This plugin demonstrates many capabilities of the Vendure plugin system:
- Creation of new database entities (see ./entities)
- Extension of the GraphQL APIs with new types, extensions of existing types, new queries and new mutations (see ./api/api-extensions.ts)
- Implementation of custom resolvers for those GraphQL extensions (e.g. ./api/product-entity.resolver.ts)
- Modifying the VendureConfig to add CustomFields (see ./reviews-plugin.ts)
- Extending the Admin UI with custom UI components for those CustomFields as well as list and details views for managing reviews.
- Adding a custom widget to the Admin UI dashboard
- End-to-end testing of the GraphQL extensions & business logic with Vitest & the
@vendure/testing
package.
Start the Vendure server and then in the Shop API (http://localhost:3000/shop-api) try the following mutation:
mutation {
submitProductReview(input: {
productId: 2
summary: "Good tablet"
body: "The screen is clear, bright and sharp!"
rating: 5
authorName: "Joe Smith"
authorLocation: "London"
}) {
id
state
}
}
You should then be able to log into the Admin UI (http://localhost:3000/admin) and see the new "Product Reviews" menu item on the left. Clicking this takes you to a brand new extension module listing all product reviews. You can approve the review that was just submitted.
When viewing the Tablet product (http://localhost:3000/admin/catalog/inventory/2) you'll now see the review rating and count which make use of the custom UI controls defined in the ui extension.