Skip to main content
In this guide, you’ll learn how to review a submitted product from your own server code. Each transition has a dedicated workflow so the audit trail, events, and side effects run consistently. A product enters review as proposed. From there you can publish it, reject it, or ask the submitter for a revision. Every workflow validates that the product is currently proposed before it runs.

Publish a product

Move one or more proposed products to published with confirmProductsWorkflow:
src/api/custom/publish/route.ts

Reject a product

Request a revision

To send the submission back for changes without rejecting it, use requestProductChangeWorkflow. The product stays proposed and a CHANGE_REQUESTED action is recorded for the submitter to act on:
These workflows require the product to be proposed. Running them against a draft, published, or rejected product fails validation rather than forcing the transition.

React to review outcomes

To run your own side effects when a product is published or rejected, subscribe to the events these workflows emit rather than polling. See the Event reference for the event names.