productReviewCreate
Review a delivered line of one of the signed-in buyer's orders, once per line. The review is PENDING and is shown on the product only once a moderator approves it. A rating outside 1 to 5 is a ValidationError on input.rating.
Arguments
| Argument | Type | Description |
|---|---|---|
input | ProductReviewCreateInput! |
Returns
| Field | Type | Description |
|---|---|---|
review | ProductReview | The review, PENDING until a moderator approves it |
reviewErrors | [ProductReviewCreateError!] |
Example
mutation ProductReviewCreate($input: ProductReviewCreateInput!) { productReviewCreate(input: $input) { review { id rating title text authorName createdAt verifiedPurchase fit status } reviewErrors { __typename ... on ProductReviewError { message code } ... on ValidationError { message } } }}{ "input": { "orderId": "id-1", "lineItemId": "id-1", "rating": 1 }}{ "data": { "productReviewCreate": { "review": { "id": "id-1", "rating": 1, "title": "Example", "text": "Example", "authorName": "Example", "createdAt": "2026-10-01T09:30:00Z", "verifiedPurchase": true, "fit": "RUNS_SMALL", "status": "PENDING" }, "reviewErrors": [ { "__typename": "ProductReviewError", "message": "Example", "code": "ORDER_NOT_FOUND" } ] } }}The query selects the return type's fields two levels deep; pick the ones you need. The response shows its shape with placeholder values.
Served by
| @evolve-framework/commercetools | Resolved |
Used by
The storefront packages that send it, in these GraphQL documents:
- @evolve-storefront/feature-order:
ProductReviewCreate

