productReviewPhotoUpload
A signed URL to upload one photo of a review to, which the buyer's browser PUTs the file to before naming its photoId in productReviewCreate. The contentType is an image type the shop takes.
Arguments
| Argument | Type | Description |
|---|---|---|
filename | String! | |
contentType | String! |
Returns
ProductReviewPhotoUploadResponse!
| Field | Type | Description |
|---|---|---|
upload | ProductReviewPhotoUpload | |
reviewErrors | [ProductReviewPhotoUploadError!] | Such as a content type the shop does not take, or a shop that takes no photos |
Example
mutation ProductReviewPhotoUpload($filename: String!, $contentType: String!) { productReviewPhotoUpload(filename: $filename, contentType: $contentType) { upload { photoId uploadUrl expiresAt } reviewErrors { __typename ... on ValidationError { message } } }}{ "filename": "Example", "contentType": "Example"}{ "data": { "productReviewPhotoUpload": { "upload": { "photoId": "id-1", "uploadUrl": "https://example.com/", "expiresAt": "2026-10-01T09:30:00Z" }, "reviewErrors": [ { "__typename": "ValidationError", "message": "Example" } ] } }}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:
ProductReviewPhotoUpload

